- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
机器学习;伟大的思想能变成巨大的财富。——塞内加
躯体总是以惹人厌烦告终。除思想以外,没有什么优美和有意思的东西留下来,因为思想就是生命。——萧伯纳
人类的全部历史都告诫有智慧的人,不要笃信时运,而应坚信思想。——爱献生
你可以从别人那里得来思想,你的思想方法,即熔铸思想的模子却必须是你自己的。——拉姆;目录;函数在这里表示
预测的线性函数;代价函数;线性回归的实现类,
通过梯度下降来更新权重;结合公式来对代码进行讲解;w_用来存储特征值的权重,通过随机梯度下降法的优化方法求出。w_是一个向量,长度是特征个数加1,因为每个特征对应一个权重,还有一个特殊的权重,表示偏移的常量b,一般用w0表示,对应的x0是常数1。根据上面描述,有m个特征,所以w_的shape是m+1,这个值是在fit函数中初始化,待会的fit函数中会讲解。;np.dot用于向量点乘或矩阵乘法(矩阵乘法的本质也是行与列的点乘)
所以代码的意思就是输入n个样本特征,并根据线性公式计算出对应的y值,
即线性回归的预测值。
举例:如果X=[x2,x1],w=[w2,w1,w0]
则输出结果是:x2*w2+x1*w1+x0*w0,x0=1
如果是两个样本,两个特征,就是一个2行2列矩阵
X=[x11,x12]
[x21,x22]
则结果是一个2行1列的预测结果,一共2个样本,表示每个样本的预测结果
[x11*w2+x12*w1+w0]
[x21*w2+x22*w1+w0];fit拟合就是训练的意思,输入的是样本特征数据X,和每个样本特征对应的真实标签值y。
self.w_=np.zeros(1+X.shape[1])
根据刚才讲的,w_用来存储特征值的权重,是一个向量,长度是特征个数加1,因为每个特征对应一个权重,还有一个特殊的权重,表示偏移的常量,一般用w0表示X.shape为(n,m),n是样本数,m是特征数,所以X.shape[1]就是特征数,1+X.shape[1]就是特征数加1.全部初始化为0.
self.cost_=[]
用来保存每一次的预测误差,就是代价函数J(w)的结果,很明显,这个cost的值是越小越好;一般来说,都要训练多次来找到最佳的w值,使得cost最小或接近最小。
n_iter是训练的次数,也是循环的次数。
output=self.net_input(X)
根据刚才讲的内容,output是线性函数的预测结果
errors=(y-output)
y是X特征??真实标签结果,所以真实值减去预测值就是误差errors;self.w_[1:]+=self.eta*X.T.dot(errors)
对每个特征值对应的权重w进行更新操作,不包括偏移值w0,与权重更新公式对应理解
根据权重更新公式,wj的变化delta为:学习率eta乘以
每个样本的误差(y-output)乘以对应特征值xj的和,再对比更新公式。
这个公式就是与self.eta*X.T.dot(errors)对应,
这里T表示转置的意思。
给大家留个作业,把X,X.T,X.T.dot(errors)
以及self.eta*X.T.dot(errors)的值都打印出来观察,看是否与更新公式相对应。
只是使用矩阵操作的方式一次性的完成了所有w的更新。;self.w_[0]+=self.eta*errors.sum()
对w0偏移量单独更新,因为特殊,
w0对应的特征值x0是一个常数1,所以对应w的更新公式,更新结果就是eta乘以
所有样本y-output=errors的和,直接用sum函数求和。
公式中的xj就是x0,为常数1值。
cost=(errors**2).sum()/2.0
完全对应代价函数,error误差的平方后求和除以2
self.cost_.append(cost)
记录每一次训练后的代价值;线性回归的预测函数,输入需要得到预测结果的特征值(一个或多个)
这个函数必须在fit即训练后进行使用,
因为训练后,如果理想的话,w就是达到最佳或接近最佳,
此时的预测结果就是使用训练后w的计算输出结果。;具体使用该类进行训练和预测见代码分析
文档评论(0)