线性回归

一、线性模型

(一)概述


 

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模型、主动加 入噪声数据样本。
欠拟合:提高模型复杂度、增加样本特征、减小正则化系数

(三)岭回归ridge和拉索回归lasso




















#机器学习#
全部评论
9.12
点赞 回复 分享
发布于 2022-09-12 18:44 北京

相关推荐

落叶随风呀:学校不好就放两栏,专业能力往前移, 政治面貌不是党员不如不写,籍贯湖南衡阳,或者湖南,浅尝辄止 基本信息排版不够美观,没有对齐 简历上花里胡哨的东西去掉 项目我不评价,因为我能力有限,且对mcu了解不足 但是这份简历掌握的水平,你可以海投试试,工作没问题但是工资应该不会高,因为搞mcu的小公司多
点赞 评论 收藏
分享
野猪不是猪🐗:可以考虑加个业务项目来体现你的技术浅度,我有个70字的业务项目话术可以狠狠速成一个低质量业务项目,不需要的可以交流。
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

更多
牛客网
牛客企业服务