线性回归
一、线性模型
(一)概述
1.损失函数
基于均方误差最小化来进行模型求解的方法称为“最小二乘法”。(试图找到一条直线,是所有样本到直线的欧式距离之和最小)
2.梯度下降法
①原因
最小二乘法需要逆矩阵,有可能逆矩阵不存在
当样本数量特征较多时,计算逆矩阵非常耗时甚至不可行
②步骤
损失值是否足够小?如果不是,计算损失函数的梯度
按梯度的反方向走一小步,以缩小损失
循环到第一步
③参数更新法则
二、实现线性回归 (LinearRegression)
(一)步骤
使用sklearn库提供的API实现线性回归 LinearRegression ① 导入包 Import numpy as np Import sklearn.linear_model as lm 线性模型 Import sklearn.metrics as sm 模块性能评价模块 ② 数据预处理 1 提取输入和输出 iloc进行切片 2划分训练集和测试集 train_test_split (测试集占比和随机种子需要自己设) ③创建线性模型 Model=lm.LinearRegression() ④ 训练模型 Model.fit ⑤ 预测输出y Model.predict ⑥ 模型评估 Sm.r2_score() Sm.classification_report() ⑦绘制曲线 Plt.plot(x,pred_y,c=’red=) x 轴 y轴 Plt.scatter(x,y) 散点图 Plt.show()
(二)模型评价指标
平均绝对误差:单个观测值与预测值的偏差的绝对值的平均 均方误差:单个样本到预测值的平方平均值
MAD(中位数绝对偏差):与数据中值绝对偏差的中值
R2决定系数:趋向于1,模型越好,趋向于0,模型越差。
三、多项式回归 (基于线性回归 sp.PolynomialFeatures(项次数),lm.LinearRegression(),用pl进行连接两个模型)
(一)过拟合、欠拟合
过拟合:模型对于训练数据拟合过当的情况,训练集准确率较高,测试集准确率较低,以至模型泛化能力变差。
欠拟合:模型没有学习到数据分布规律,模型拟合程度不够,预测准确率过低。
(二)如何处理过拟合、欠拟合
过拟合:降低模型复杂、扩大样本数据、正则化(L1范数、L2范数)、集成学习(多个模型集成在一起)、
树结构中对树进行枝剪、减少训练的迭代次数、神经网络中加入dropout模型、主动加 入噪声数据样本。
欠拟合:提高模型复杂度、增加样本特征、减小正则化系数