线性回归算法
一、机器学习的基本概念
-
监督学习
在监督学习中,给定一组学习数据,我们能够明确的知道输出结果是什么,并且知道输入和输出之间的关系。常用算法:K近邻算法,Logistic回归、支持向量机、朴素贝叶斯、决策树
例子:使用K近邻算法对手写字进行识别,输入的数据为经过人为标定的手写字图片,我们会将算法得出的结果与标签进行对比,以检测算法的准确率。
-
无监督学习
在无监督学习中,我们输入的数据是没有经过人为标定的。我们可以通过聚类的方式从数据中提取相应的特征,对数据进行分类。常用算法:K均值聚类、分层聚类
例子:新闻分类,通过对某个关键字的提取,实现新闻的统一分类。
-
泛化能力
指一个机器学习算法对于没有见过的算法的识别能力
-
过拟合
过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。
过拟合一般由以下几方面导致:
1、训练样本选择错误;
2、样本数据噪音太大;
3、整体算法逻辑不符合现实应用场景;
4、参数太多,复杂度高;
解决方法:
1、加大数据量;
2、使用正则化;
-
欠拟合
欠拟合是指模型拟合程度不高,数据距离拟合曲线较远,或指模型没有很好地捕捉到数据特征,不能够很好地拟合数据。
解决方法:
1、增加新的特征;
2、添加多项式;
3、减少正则化参数;
4、使用非线性模型。
-
交叉验证
交叉验证是用来验证分类器性能的一种统计分析方法,基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train set),另一部分做为验证集(test set),首先用训练集对分类器进行训练,再利用验证集来测试训练得到的模型(model),以此来做为评价分类器的性能指标。
- 偏差:
偏差度量了学习算法的期望预测与真实结果的偏离程序,
- 误差:
方差度量了同样大小的训练集的变动所导致的学习性能的变化,
二、线性回归原理
这里直接进行公式推导,如我在下面这篇博文中提到的
https://blog.****.net/Smile_Smilling/article/details/82817277
对西瓜书中第三章公式的推导,以及对3.3习题的解题过程
https://blog.****.net/Smile_Smilling/article/details/82830953
三、线性回归函数
-
损失函数
线性回归的损失函数被称为均方误差或者平方损失,具体公式如下所示
均方误差的几何意义:在线性回归中,试图寻找一条直线,使所有样本到直线上的距离之和最小。
-
代价函数
代价函数是定义在整个训练集上的,是所有样本误差的平均,也就是损失函数的平均。
-
目标函数
目标函数等于损失函数加正则化项
四、优化方法
-
梯度下降:
基本思想:要找到某函数的最小值,最好的方法是沿着该函数的梯度方向探寻。
公式:
例子:
假设目标函数为
假设学习率为
假设初始位置为
梯度函数为
-
牛顿法
牛顿法是一种在实数域和复数域上近似求解方程的方法。
经过t+1次迭代之后的公式
步骤如下:
1、随机选取起始点;
2、计算一阶导和二阶导;
3、根据以上公式更新值。
具体推导流程可以参考“机器学习第三章”这篇博文。
-
拟牛顿法
五、评估指标
-
平均绝对值误差
平均绝对误差(MAE)就是指预测值与真实值之间平均相差多大。
公式:
为真实值,
为预测值
-
均方误差
-
R平方值
六、sklearn.linear_model.LinearRegression
参考链接:https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html