python:一句话说机器学习算法和调参-回归分析

实验背景

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可以进行特征选择,进行特征稀疏。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180420G1YBHG00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券