本博主博客ζั͡ั͡雾ั͡狼ั͡✾的博客
专栏机器学习
专栏爬虫
专栏OpenCV图像识别处理
专栏Unity2D
⭐本节课理论视频P23-P25正规方程
⭐本节课推荐其他人笔记正规方程Normalequations推导过程_momentum_的博客
机器学习通过文字描述是难以教学学会的每一节课我会推荐这个理论的网课一定要看上面的理论视频一定要看上面的理论视频一定要看上面的理论视频所以我只是通过代码实现并通过注释形式来详细讲述每一步的原因最后通过画图对比的新式来看结果比较。
⭐机器学习推荐博主GoAI的博客_CSDN博客-深度学习,机器学习,大数据笔记领域博主
如果你什么都不懂机器学习那我推荐GoAI的入门文章机器学习知识点全面总结_GoAI的博客-CSDN博客_机器学习笔记
在线性回归中实际就是求代价函数对系数变量求导导数为0的时候即代价函数最小的时候系数矩阵的值。以多元一次函数为例
使用前提1.X特征数量小于样本数量
2.X矩阵中不存在线性相关的量
缺点n很大时候n10000比起梯度下降法运行远远慢
importnumpyasnp#全局变量#生成数据#X中每一行代表一条数据i代表着一个等式其中列数代表着变量数每个变量的系数是不知道的#每一行数据是yk0x0k1x1k2x2k3x3k4x4,#k是我们要回归的系数向量x1x2,x3,x4是每一行数据其中#k0代表常数x0恒为1Xnp.array([[5,100,58,-3],[7,120,59,-3],[3,140,50,-5],[10,80,45,-1],[6,96,55,-7],[15,200,52,-11],[11,125,65,-5],[12,63,100,-3],[20,500,66,-10]])#假设K系数为这个咱们的算法就是逼近这个结果当然如果有自己的数据就更好了preK[12,-1,2,8]np.random.random((1,4))#Y中的数据量等于X矩阵的行数Y(np.dot(preK,X.T)np.random.random()*15).ravel()#加的一项是随机常数项,最后将矩阵转换成数组向量#X矩阵中第一列加入x01参数Xnp.insert(X,0,np.ones((1,len(X))),axis1)#数据个数mlen(X)#参数个数nlen(X[0])#输出print(f有{n}个参数就是X列数算上常数项所乘的单位1)print(f有{m}条数据就是加常数后X行数)#系数变量K矩阵就是多元参数的系数就是我们要递归的重点变量先给这个矩阵的每个值都赋予初始值1Knp.ones(n)#正规方程,固定公式详细推导见吴恩达P23defNorEq():globalX,Y,Km1np.dot(X.T,X)m2np.matrix(m1).Im3np.dot(m2,X.T)Knp.dot(m3,Y.T)if__name____main__:print(X,X)print(Y,Y)NorEq()print(K,K)print(preK,preK)可见结果完全一致