实验背景
『WedO实验君』今天继续之前的主题,【一句话解读机器学习】。今天的主题是回归。
所谓回归分析:
回归(regression)是一个监督学习
回归用于预测输入和输出变量的关系,回归问题等价于函数拟合
回归分为学习和预测过程,学习样本规律构建model,预测系统验证学习的model
回归的起源:
出自高尔顿种豆子的实验,通过大量数据统计,他发现个体小的豆子往往倾向于产生比其更大的子代,而个体大的豆子则倾向于产生比其小的子代,然后高尔顿认为这是由于新个体在向这种豆子的平均尺寸“回归”,大概的意思就是事物总是倾向于朝着某种“平均”发展,也可以说是回归于事物本来的面目。
实验器材
● python
● sklearn
● pandas
实验内容
1. 线性回归
对于数据集(x,y), x为自变量,y为因变量。拟合线性方程
计算截距,系数,使得
最优的求解方法有梯度下降法和最小二乘法。
import matplotlib.pyplot as pltimport numpy as npfrom sklearn import datasets, linear_modelfrom sklearn.metrics import mean_squared_error, r2_score# 加载数据集合diabetes = datasets.load_diabetes()# 回归数据diabetes_X = diabetes.data[:, np.newaxis, 2]# 区分训练集合和测试集合(自变量)diabetes_X_train = diabetes_X[:-20]diabetes_X_test = diabetes_X[-20:]# 区分训练集合和测试集合(因变量)diabetes_y_train = diabetes.target[:-20]diabetes_y_test = diabetes.target[-20:]# 线性规划模型regr = linear_model.LinearRegression()regr.fit(diabetes_X_train, diabetes_y_train)# 预测diabetes_y_pred = regr.predict(diabetes_X_test)# 回归系数print('Coefficients: \n', regr.coef_)# 平方误差(模型评估)print("Mean squared error: %.2f" % mean_squared_error(diabetes_y_test, diabetes_y_pred))
2.岭回归
对于有n个数据量p个特征的数据集来说,线性回归模型准确性和 数据量n的大小,以及参与回归的特征相关。
如果参与回归的特征存在相关性,模型的精确性就会下降。系数变更很不稳定,模型偏差比较大。主要是因为系数矩阵X与它的转置矩阵相乘得到的矩阵不能求得其逆矩阵
如果特征数p的数量很大时候。回归模型就会出现过拟合的现象
岭回归(Ridge)就是为了解决这个问题。
岭回归的思路就是在原始回归基础上增加惩罚项(正则化)。通过引入该惩罚项,能够减少不重要的参数。这个技术在统计学上也叫作缩减(shrinkage)。简单的说就是对回归系数做约束,不会使得系数波动太大。
重要参数说明:alpha 正则项系数,大于0。不同alpha,有不同的回归系数。http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html#sklearn.linear_model.Ridge
3.Lasso回归
Ridge regression,对w系数做L2范式约束,就是把解约束在一个球半径里面,放缩是对球的半径放缩,因此w的每一个维度都在以同一个系数放缩,通过放缩不会产生稀疏的解——即某些w的维度是0。而实际应用中,数据的维度中是存在噪音和冗余的,稀疏的解可以找到有用的维度并且减少冗余,提高回归预测的准确性和鲁棒性(减少了overfitting)。
Lasso回归加入L1正则项,允许某些系数为0,可以起到特征选择的作用,同时解决了过拟合的情况。
from sklearn import linear_modelclf = linear_model.Lasso(alpha=0.1)clf.fit([[0,0], [1, 1], [2, 2]], [0, 1, 2])print(clf.coef_)print(clf.intercept_)
重要参数说明:alpha 正则项系数,大于0。不同alpha,有不同的回归系数。http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Lasso.html#sklearn.linear_model.Lasso
实验结语
本实验和大家一起梳理了三种回归方式:一般回归,Ridge回归和lasso回归。
总结一下:Ridge回归和lasso回归是在一般回归基础上加上L2正则项和L1正则项。 同时lasso与Ridge的不同是,lasso可以进行特征选择,进行特征稀疏。
领取专属 10元无门槛券
私享最新 技术干货