线性回归是学习机器学习过程中最先接触到的一个算法,这里写一下自己在学习过程中的一些理解。
回归与梯度下降
回归在数学上来说就是给定一个点集,能够用一条曲线去拟合它,如果这条曲线是一条直线,那就称为线性回归,如果曲线是一条二次曲线,就被称为二次回归。回归还有很多变种,比如逻辑回归。
下面举一个简单的例子。现在要做一个房屋价值的评估系统,一个房屋价值来自很多地方,比如说面积、房间的数量、地段等,这些影响房屋价值的变量称为特征(feature),feature在机器学习中是一个重要的概念,这里为了简单我们假设房屋的价值是单变量影响的,就是房屋的面积。假设房屋的销售数据如下:
面积(平方米) | 销售价值(万元) |
123 | 250 |
150 | 320 |
87 | 160 |
102 | 220 |
对于这个表格我们可以做出一个图,x轴表示房屋的面积,y轴表示房屋的售价,如下:
如果来了一个新的面积,假设在销售记录中没有,我们该怎么办?
我们可以用一条曲线去尽量准的拟合这些数据,然后当有新的数据输入时,我们可以将曲线上这个点对应的值返回。
首先给出一些概念和常用的符号。
房屋销售记录表:训练集(training set或者训练数据(training data),是我们流程中输入的数据,一般记为X。
房屋销售价钱:输出数据,一般称为y
拟合函数(或者称为假设或者模型):一般写作y=h(x)
回归方法可以解决特征多维,结果是一维多离散值或者一维连续值的问题。
线性回归
线性回归假设特征和结果满足线性关系,线性关系的表达能力非常强大,每个特征对结果的影响强弱可以由前面的参数体现,而且每个特征变量可以首先映射到一个函数,然后再参与线性计算。
我们用X1,X2....Xn去描述feature里面的分量,比如x1=房间的面积,x2=房间的朝向等等,我们可以做出一个估计函数:了
在这里称为参数,在这里的意思是调整feature中每个分量的影响力,为了方便表示我们令X0=1,就可以用向量的形式表示了。