机器学习自学笔记1——线性回归

今天把吴恩达简版的ML课程拿出来复习,看了黄海广整理版中文笔记的前两章(前两周),并把作业拿出来做,用Python来实践,参考了CSDN上Cowry5的博文:https://blog.csdn.net/Cowry5/article/details/80174130

遇到的问题与总结,在求代价函数时需要用到假设函数,讲义上写的是

hθ(x)=θTX

但实际程序中X是(n+1)*m的矩阵,n是特征值,m是实例个数

θ是行向量,y是列向量,为了正常与y相减,这块θ和X的乘积关系是X*θT,这个整体最后再和y求差,所以在实际程序中谁乘以谁的转置,不一定要死套公式,而是数据格式来构造x0θ0+x1θ1+…+xnθn的形式,构造过程中如果有点晕,就把X、y、θ是几乘几的矩阵分别列出来,看怎样转置并相乘

在执行梯度下降时,可以通过向量法直接一步完成所有θ的更新,所以表达式中不必出现np.sum

使用正规方程直接求出的θ是个列向量,而咱们自己定义并迭代出来的θ是行向量,所以如果要把正规方程求出的θ代入自定义的损失函数中去计算误差的话,需要先转置再传参

在后面使用sklearn模型直接去fit数据时,首次运行出现了程序报错现象,后来通过pip命令升级了pip、sklearn和scipy之后,程序恢复正常,但是对sklearn的库还不太了解,尽管它看上去很强大的样子。关于pip安装和升级,原版镜像不稳定网速慢动不动就超时失败了,所以可以通过固定的配置用清华镜像来代替

另外对Numpy、pandas、matplotlib.pyplot、sklearn等库不熟悉,它们的常用API还需要加强记忆和使用

今天算是基本完成了第一次练习作业,明天继续努力!

猜你喜欢

转载自www.cnblogs.com/flyingtester/p/10947324.html