top of page
Search

Machine Learning Course1 Week2

Writer: zoe zhao
zoe zhao
Feb 21, 2025
3 min read

Updated: Feb 22, 2025




Multiple features

多个变量X1 X2 X3 X4 对应的数据集为J1 J2 J3 J4

可以简单理解为 上角标i表示行数 j表示列数

i为行 j为列 箭头是向量 是一个数据集


多个权重 一个常数
多个权重 一个常数


这里的w x fw,b(x) 都是行向量 都是一个数据集


对于代码而言,也可以使用Vectorization矢量 来简化代码

f=np.dot(w,x)+b

运行速度会快很多。



矢量结构的数据做运算的时候前提是要有相同的shape,.dot是两个序列对应位置的数据相乘并对所有数据乘积求和。


numpy.dot 结果会是一个常数

一个常数的shape是空的 ()


Matrix 矩阵,有两个dimention,(2-D)index[m,n], 依然从0开始排序

shape(行,列)

numpy.zeros((1,5)) 意思是建立一1行5列的全是0的矩阵

注意:

np.array([[1],[2],[3],[4]]) 生成的是4*1的矩阵, 是4行1列的数据


X 的每个元素是一个包含单个数值的子列表,导致 numpy 识别它为 4×1 的矩阵。


一维数组的shape 逗号后面是空的,只有一个维度
一维数组的shape 逗号后面是空的,只有一个维度
2D column vector 每个元素是一个子集,子集间由逗号分隔
2D column vector 每个元素是一个子集,子集间由逗号分隔
2D row vector 逗号在[]内部
2D row vector 逗号在[]内部
reshape中 -1代表自动计算重新生成的行数或列数reshape(m,n)
reshape中 -1代表自动计算重新生成的行数或列数reshape(m,n)

a[2,0] 意思是找到a这个数据里面第2行第0列的数据,也就是[4 5]里面的 4 是一个常数

a[2] 意思是找到a这个数据里面第2行的数据,也就是[4 5], 这是一个序列


a = np.arange(20).reshape(-1, 10)

print(a)

a = 
[[ 0  1  2  3  4  5  6  7  8  9]
 [10 11 12 13 14 15 16 17 18 19]]




Jupyter note 原链接


又复习了很多python的知识,这个lab更多是巩固数据类型和结构,最关键的其实还是f=np.dot(w,x)+b


代入到梯度下降的公式里


还有一种求多个feature的方法,normal equation,只有linear regression 适合,不需要学习率,适合需要精确解且数据量小时 feature小于10000,有一些machine learning的library会把这个当做back支持。


本节Jupyternote中说明了代码如何实现计算多个变量的最优wn b


这里主要说明了实现方法,以及验证最后的通过10000次的计算后,找到的结果是否是最优解,收敛是否停止了,接下来讲解scaling



feature scaling是说,我们得到的很多个w可能量级差的比较大,这样导致的误差就会比较大,所以我们适当的缩放我们的X,来得到一个比较均衡的搭配。

比如说X1range(-1,1) X2range(300,200) 这样就差很大

有几种缩放的方法:




这里学习了“鲁棒robust”是什么,就是让模型能够对异常只有更好的抗衡能力,不受脏数据的干扰。


如何确定学习率:

观察学习曲线:



看左边这个图比较直观能观察到iteration300的时候,J几乎不怎么变了,趋向直线了,400的时候基本就converged,聚合收敛了。

选择学习率的时候可以用0.001 0.003 0.01 0.03 0.1 0.3 1这样子多去尝试,三倍叠加,观察每一个参数对应的J和iteration的图像,找到那个最合适的学习率。 J来回跳或者增加了一般是学习率太大了




这个lab讲述在实际操作过程中如何调整学习率,以及缩放数据


Feature engineering:

Using intuition to design new features, by transforming or combining original features

for the area of a restate, we know that area=frontage*depth, so that we can create a new feature X3=X1*X2, (X1 is depth, X2 is frontage)





Implement Polynomial regression


在这个lab里展示了选对了特征(对x的公式 然后对这个公式进行线性拟合看是否呈直线)




you may use different molel of X to fit the features, x squared, x cubed,

Scikit-learn _open source ML library


介绍了SGDRegressor的用法
























 
 
 

Comments


  • Facebook
  • Twitter
  • LinkedIn

© 2022 par Ziyi Zhao.

bottom of page