【机器学习算法-线性回归】

线性回归

什么是线性回归:利用回归方程(函数)对一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式。
一个变量就是单变量回归,多个变量就是多变量回归。
(突然想到了相机校正就是找三维到二维之间的关系,这思想感觉都是一样的只是复杂程度不同)
线性回归又分为线性和非线性
API:

from sklearn.linear_model import LinearRegression
estimator=LinearRegression()
estimator.fit(x,y)
estimator.coef_#回归参数

线性回归损失函数

优化算法:如何去求W,使得损失最小
常用优化算法:正规方程、梯度下降

梯度下降:需要学习率,需要迭代求解、特征数量较大可以使用
正规方程:一次运算得出,需要计算公式时间复杂度高。

正规方程:LinearRegression(小规模数据)–不能解决拟合问题
梯度下降法:SGDRegressor(大规模数据)

模型评估

模型中的系数:estimator.coef_
模型中的偏置:estimator.intercept_

均方误差:mean_squared_error(y_test,y_predict)

欠拟合和过拟合

欠拟合:学习到数据的特征过少
解决办法:添加其他特征项、添加多项式特征

过拟合:原始特征过多,存在一些嘈杂特征,模型过于复杂是因为模型尝试去兼容各个测试数据点
解决办法:重新清晰数据,增大数据的训练量、正则化、减少特征维度防止维度灾难

正则化:通过限制高次项的系数防止过拟合。
L1:直接把高次相前面的系数变为0。
L2:把高次项前面的系数变成特别小的值2。
岭回归模型:
限制系数值的大小
sklearn.linear_model.Ridge

模型的保存和加载

from sklearn.externals import joblib
保存:joblib.dump(estimator,‘test.pkl’)
加载:estimator=joblib.load(‘test.pkl’)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值