当前位置:网站首页>机器学习--线性回归(Linear Regression)
机器学习--线性回归(Linear Regression)
2022-08-09 10:15:00 【AI_孟菜菜】
线性回归:
- 最小二乘法:
- 从概率角度来看
- 线性回归正则化(L1,L2)
首先我们来看一个数据:
有这么一组样本点,线性回归就是找出一条拟合样本点的线。
样本:
一般我们说线性回归的表达式:
Y = wTX + b
最小二乘推导:
当然我们直接看结果发现有求逆的过程,但是在现实生活中我们会发现也有矩阵不可逆的情况,因此我们要引入正则化,从矩阵的角度来说,解决矩阵不可逆,从模型来说,为了防止过拟合,例如一个样本点,p维的一个数据,那么那是不是有无数条拟合的直线,因此很容易就陷入了过拟合。
解决过拟合的方法:1.增加数据,2.降维(特征选择,特征提取)3.正则化
正则化其实就是对代价函数加上一个约束:
L(w)【loss】 + λP(w)【惩罚项】
L1 :lasso :p(w)=||w||1 L1范数
L2 :ridge(岭回归) :p(w)= ||w||2 L2范数
L2正则化为什么可以防止过拟合并且矩阵求逆?
我们观察岭回归的出来的解析解,是不是多了一个λI(对角矩阵),半正定矩阵+对角矩阵就一定是一个可逆的矩阵。
中心极限定理:
给定一个任意的分布,从中抽取m次,每次抽取n个样本,然后把这些m组样本求平均值,这些平均值是接近正态分布的。
回归问题的评估方法:
MSE均方误差方法:mean_squared_error
计算每一个样本得预测值和真实值之间得差得平方,然后求和再平均
方法:mean_absolute_error
方法:r2_score()
1., , 可以准确的计算出预测结果和真实的结果的误差大小,但却无法衡量模型的好坏程度。但是这些指标可以指导我们的模型改进工作,如调参,特征选择等。
2.的结果可以很清楚的说明模型的好坏,该值越接近于1,表明模型的效果越好。该值越接近于0,表明模型的效果越差。
多项式回归:
多项式回归是线性回归的一种扩展,它可以使我们对非线性关系进行建模。线性回归使用直线来拟合数据,如一次函数y = k x + b等。而多项式回归则使用曲线来拟合数据,如二次函数y=ax^2+bx+c,三次函数y=ax^3+bx^2+cx+d。
多项式回归得作用:
有时直线难以拟合全部的数据,需要曲线来适应数据,如二次模型、三次模型等等。
次数的选择:
多项式函数有多种,一般来说,需要先观察数据的形状,再去决定选用什么形式的多项式函数来处理问题。比如,从数据的散点图观察,如果有一个“弯”,就可以考虑用二次多项式;有两个“弯”,可以考虑用三次多项式;有三个“弯”,则考虑用四次多项式,以此类推。
虽然真实的回归函数不一定是某个次数的多项式,但只要拟合的好,用适当的多项式来近似模拟真实的回归函数是可行的。
Pipline包,PolynomialFeatures包,StandardScaler包
归一化:
作用:
- 归一化后加快了梯度下降求最优解的速度;
- 归一化有可能提高精度;
标准差标准化(standardScale)使得经过处理的数据符合标准正态分布,即均值为0,标准差为1,其转化函数为:
其中μ为所有样本数据的均值,σ为所有样本数据的标准差。
边栏推荐
- 抛出一个问题? Mysql环境下进行Count操作执行的时候速度很慢_需手动给主键添加索引---MySql优化001
- xmms已经发布到v1.3了,好久没写博客了
- RTP
- 想了解API接口,这一篇就够了
- How to quickly get through the mirror release process?
- 分类预测 | MATLAB实现CNN-LSTM(卷积长短期记忆神经网络)多特征分类预测
- Redis cache update strategy actively
- xmms的歌词显示及音量控制OK
- 认识
- Demand side power load forecasting (Matlab code implementation)
猜你喜欢
随机推荐
Dream Notes 0809
OpenGL ES2.0编程三部曲(转载自MyArrow)
写一个通讯录小程序
[贴装专题] 贴装流程中涉及到的位置关系计算
StratoVirt 中的虚拟网卡是如何实现的?
多线程(基础)
[Halcon&定位] 解决Roi区域外的模板匹配成功
Loop nesting and basic operations on lists
认识
实现下拉加载更多
排序1:冒泡排序
1001 害死人不偿命的(3n+1)猜想 (15 分)
借问变量何处存,牧童笑称用指针,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang类型指针(Pointer)的使用EP05
Multi-threaded cases - timer
1002 写出这个数 (20 分)
阿里神作!吃透这份资料入厂率高达99%
函数组件和类组件和dva视图更新问题
技术分享 | 使用 cURL 发送请求
Qt 国际化翻译
在犹豫中度过了老多天,今天的工作时记录