应用joblib实现模型的保存与加载
纪要
2.1 线性回归简介
1.定义
利用回归方程(函数)对一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式
2.表示方式:
h(w) = w1x1 + w2x2 + w3x3 + ... + b<br /> = W转置x + b
3.分类
线性关系<br /> 非线性关系
2.2 线性回归api初步使用
1.api
sklearn.linear_model.LinearRegression()<br /> 属性:<br /> LinearRegression.coef_:回归系数
2.4 线性回归的损失和优化[**]
1.损失
最小二乘法
2.优化
正规方程<br /> 梯度下降法
3.正规方程 — 一蹴而就
利用矩阵的逆,转置进行一步求解<br /> 只是适合样本和特征比较少的情况
4.梯度下降法 — 循序渐进
举例:<br /> 山 -- 可微分的函数<br /> 山底 -- 函数的最小值<br /> 梯度的概念<br /> 单变量 -- 切线<br /> 多变量 -- 向量<br /> 梯度下降法中关注的两个参数<br /> α -- 就是步长<br /> 步长太小 -- 下山太慢<br /> 步长太大 -- 容易跳过极小值点(*****)<br /> 为什么梯度要加一个负号<br /> 梯度方向是上升最快方向,负号就是下降最快方向
5.梯度下降法和正规方程对比:
梯度下降 正规方程<br /> 需要选择学习率 不需要<br /> 需要迭代求解 一次运算得出<br /> 特征数量较大可以使用 需要计算方程,时间复杂度高O(n3)
6.选择:
小规模数据:<br /> LinearRegression(不能解决拟合问题)<br /> 岭回归<br /> 大规模数据:<br /> SGDRegressor
2.5 梯度下降法介绍[###]
1 全梯度下降算法(FG)
在进行计算的时候,计算所有样本的误差平均值,作为我的目标函数
2 随机梯度下降算法(SG)
每次只选择一个样本进行考核
3 小批量梯度下降算法(mini-bantch)
选择一部分样本进行考核
4 随机平均梯度下降算法(SAG)
会给每个样本都维持一个平均值,后期计算的时候,参考这个平均值
2.6 api
正规方程
sklearn.linear_model.LinearRegression(fit_intercept=True)
梯度下降法
sklearn.linear_model.SGDRegressor(loss="squared_loss", fit_intercept=True, learning_rate ='invscaling', eta0=0.01)<br /> 参数:<br /> 1.loss -- 损失 (最小二乘)<br /> 2.learning_rate -- 学习率<br /> 一般时都是进行动态的更新,也可以指定成为一个常数,但是不推荐。
2.7 案例[**]
1.获取数据
# 2.数据基本处理
# 2.1 数据集划分
# 3.特征工程 —标准化
# 4.机器学习(线性回归)
# 5.模型评估
2.8 欠拟合和过拟合【**】
欠拟合
在训练集上表现不好,在测试集上表现不好<br /> 解决方法:<br /> 继续学习<br /> 1.添加其他特征项<br /> 2.添加多项式特征
过拟合
在训练集上表现好,在测试集上表现不好<br /> 解决方法:<br /> 1.重新清洗数据集<br /> 2.增大数据的训练量<br /> 3.正则化<br /> 4.减少特征维度
正则化
通过限制高次项的系数进行防止过拟合<br /> L1正则化<br /> 理解:直接把高次项前面的系数变为0<br /> Lasso回归<br /> L2正则化<br /> 理解:把高次项前面的系数变成特别小的值<br /> 岭回归
2.9 正则化线性模型【*】
1.Ridge Regression 岭回归
就是把系数添加平方项<br /> 然后限制系数值的大小<br /> α值越小,系数值越大,α越大,系数值越小
2.Lasso 回归
对系数值进行绝对值处理<br /> 由于绝对值在顶点处不可导,所以进行计算的过程中产生很多0,最后得到结果为:稀疏矩阵
3.Elastic Net 弹性网络
是前两个内容的综合<br /> 设置了一个r,如果r=0--岭回归;r=1--Lasso回归
4.Early stopping
通过限制错误率的阈值,进行停止
2.10 线性回归的改进-岭回归【**】
api
sklearn.linear_model.Ridge(alpha=1.0, fit_intercept=True,solver=”auto”, normalize=False)
具有l2正则化的线性回归
alpha — 正则化
正则化力度越大,权重系数会越小
正则化力度越小,权重系数会越大
normalize
默认封装了,对数据进行标准化处理
2.11 模型的保存和加载【*】
api:
sklearn.externals import joblib
保存:joblib.dump(estimator, ‘test.pkl’)
加载:estimator = joblib.load(‘test.pkl’)
注意:
1.保存文件,后缀名是**.pkl
2.加载模型是需要通过一个变量进行承接