机器学习之线性回归

本文是学习机器学习线性回归的笔记,介绍了线性回归的理论、数学公式到程序的转化,以及迭代求解过程。通过实例展示了如何用C#实现线性回归,并探讨了步长选择和迭代方向的重要性。
摘要由CSDN通过智能技术生成

这个系列是我学习coursera上《机器学习》课程的笔记,边学边练。上面有一些习题,课程要求用Octave(或Matlab)完成,但是这两个软件太强大,掩盖了很多细节,而且我写Octave代码的时候,总有种支离破碎的感觉,最后还是用C#去实现了,果然不适合当科学家,还是老老实实作码农吧。

界面使用WPF,我还自己写了个做图表的库,本来准备好好写写的,但是真的是太烦,特别是API的设计,因为是第一次设计,各种问题,自己用着都觉得翔气逼人。。不过作为演示还是可以的,勿喷。。。

一、线性回归

1.理论说明:

线性回归:Wiki上说:在统计学中,线性回归是利用称为线性回归方程的最小二乘函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。

说白了,就是给你一大堆点,点由两个变量(先只考虑一元线性回归)决定;观察后,认为这两个变量应该是线性关系,于是就根据这堆点找出这个线性关系。

对于线性回归,有公式可以直接套,这里换种思路。

 

假设回归的函数为h(x) = a*x + b,这个是假设函数;回归的目的就是使假设函数靠谱,即对于测试数据(x1y1),把x1代入假设函数,算出h(y1),然后h(x1)y1越接近越好,两者的差距可以用( h(x1) - y1 )2来衡量。对于所有测试数据,就是求个和:

                             

这个求和的式子就是一元线性回归的cost function(不知要怎么翻译),θ代指参数(这里是θ0aθ1b)cost函数是与参数有关的函数,和xy无关(这话要好好理解一下)。前面的1/2是为了以后求导方便,对结果没有影响(也可以接着除以测试数据的个数m,即前面的系数为1/2m);上标i表示第i个测试数据。cost函数表征了假设的函数与实际数据的偏差。要使偏差最小,问题最终转化为最小化cost函数

看到这里,如

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值