线性回归

一、线性模型

(一)概述


 

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 北京

相关推荐

8月20号投的,8月28号一面【秋招面的第三家,面试官很好,感觉是在和你讨论,并在过程中会表示肯定】,9月6号二面,二面后一个礼拜感谢信;二面代码面第二题虽然也大致写出来了,但面试官表示还是存在一些问题,听说是每一面后都会进行排序,估计排序挂了,不过代码功底也确实还是不够,需要加强,之前图论相关得题目还是写的太少了;正式批又重新开始面了 刚刚一面完08.28一面:1.  处理数据不平衡有什么方法2.  从评测角度去看类别不平衡3.  数据分布偏移:训练数据里面高速场景比较多的话,他会无法泛化到速度比较低的问题;模型里面有去解决吗?4.  元学习相关问题5.  地图的向量化编码相比原来的栅格的地图编码的区别,优劣6.  模型部署相关问题7.  如何做learning-based的决策规划的?整体架构8.  训练数据的来源是什么?可靠吗?如何评价数据的好坏9.  相较于传统规划,模型的优点是什么?能解决什么问题?10. cost的设计和优化相关问题11. 评测是如何的?12. 虚函数讲解一下13. 类里都有构造函数和析构函数,析构函数都需要声明成virtual,为什么需要这么做手撕:leetcode 149 Hard 线上最多的点数09.06二面:1. hot100 二分查找 求target第一个和最后一个的位置2. leetcode 365 水壶问题变种 改成求最小操作次数#你都收到了哪些公司的感谢信?##提前批简历挂麻了怎么办##深度学习##自动驾驶##小米#
点赞 评论 收藏
分享
评论
1
2
分享
牛客网
牛客企业服务