ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

机器学习之MLR

2020-02-04 17:36:19  阅读:421  来源: 互联网

标签:学习 因变量 代码 py MLR https 拟合 机器 自变量


线性回归(Linear regression)是利用称为线性回归方程的最小二乘函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为一元回归,大于一个自变量情况的叫做多元回归。。

多元线性回归模型的一般形式
在这里插入图片描述
其中,Y为因变量,X为自变量,上式中共有k个自变量和一个常数项。如果自变量经过标准化处理,则上式没有常数项,换句话说,Y的期望值与自变量的函数关系如下:
在这里插入图片描述
上式也被称为多元总体线性回归方程。
如果有n组观测数据,
在这里插入图片描述
则可以采用方程组形式表示
在这里插入图片描述
其矩阵形式为
在这里插入图片描述
简化形式为
在这里插入图片描述
使用多元线性回归必须满足如下的几个条件:(1) 因变量Y和自变量X之间具有线性关系。(2) 各观测值Y相互独立。(3) 残差e服从均值为0,方差为δ^2的正态分布,也就是对自变量的任意一组观测值,因变量Y具有相同的方差,且服从正态分布。

本次数据集为machine.data,要求我们在给定硬件的其他相关属性的情况下预测计算机硬件的相对性能。
接下来我们开始编程吧

首先导入库
在这里插入图片描述
载入数据集
在这里插入图片描述
打印前几行看看是否载入成功了
在这里插入图片描述
结果如下

在这里插入图片描述

接下来就是选择特征,我们需要选择适合模型拟合的数值字段
怎么看字段是否适合呢?使用data.info就可以了
完整代码在2.py
结果如下
在这里插入图片描述
我们可以看到,除了前两个变量之外,其余的都是数字。 我们只选择数字字段。
所以使用下面的代码进行过滤
在这里插入图片描述
同样打印出来看看是否合适了
完整代码在3.py
结果如下
在这里插入图片描述
然后我们来选择预测值和目标变量
在这里插入图片描述
切割训练集,测试集
在这里插入图片描述
在我们进行拟合之前,让我们对数据进行标准化,使数据以均值为中心并具有单位标准差。
在这里插入图片描述
接下来该进行拟合了
在这里插入图片描述
下面代码中系数R ^ 2定义为(1-u / v),其中u是残差平方和((y_true-y_pred)** 2).sum()和v是平方和的总和((y_true - y_true.mean())** 2).sum()。
在这里插入图片描述
完整代码在4.py
打印出系数的预测值、均方误差、方差分
在这里插入图片描述
可以看到R^2和MSE的结果都很好。
MSE在前面的实验中有提到,这里解释下R^2
决定系数R^2,取值范围为[0,1],代表自变量能够解释因变量的比例,其值越接近1,说明模型对数据的拟合程度越好。

我在最开始使用了matplotlib库,现在就可以绘出通过预测得出的一条线,我们可视化拟合的好处。
完整代码在MLR.py
运行结果如下
在这里插入图片描述
这条线是由模型根据数据集训练后得出的,而蓝色的点是测试集,可以看到蓝色的点基本分布在线上或者左右,比较好地拟合了我们的训练结果。
参考:
1.《机器学习》(西瓜书)
2. https://zh.wikipedia.org/wiki/%E7%B7%9A%E6%80%A7%E5%9B%9E%E6%AD%B8
3. https://acadgild.com/blog/multiple-linear-regression
4. https://www.jianshu.com/p/2ce27e88d78c
5. https://blog.csdn.net/wx_blue_pig/article/details/79791906

Neil-Yale 发布了336 篇原创文章 · 获赞 98 · 访问量 41万+ 他的留言板 关注

标签:学习,因变量,代码,py,MLR,https,拟合,机器,自变量
来源: https://blog.csdn.net/yalecaltech/article/details/104172266

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有