凌云时刻 · 技术
导读:这篇笔记主要介绍线性回归算法,对在第一篇笔记中介绍过的线性回归算法进行实现。kNN算法主要解决的是分类问题,并且它的结果不具备良好的解释性。线性回归算法主要解决回归问题,它的结果具有良好的可解释性,和kNN算法的介绍过程一样,线性回归算法也蕴含了机器学习中很多重要的思想,并且它是许多强大的非线性模型的基础。
作者 | 计缘
来源 | 凌云时刻(微信号:linuxpk)
线性回归算法的评测标准
在讲kNN算法时,我们分类问题的评测标准是基于将样本数据拆分为训练数据和测试数据的前提下的,那么在线性回归算法中也是一样的。我们使用训练数据计算出a
和b
的值,然后将测试数据代入拟合直线方程算出结果,进行比较。我们通过公式来看一下。
将训练数据代入公式算出a
和b
,然后代入拟合直线方程算出
:
此时我们的衡量标准既为:
也就是上面的公式值越小说明我们拟合的越好。
上面这个公式有一个问题,那就是最终值受 的影响,比如某个算法10个样本数据求出的值为80,另一个算法10000个样本数据求出的值为100,也不能表明第一个算法就比第二个算法好,因为样本数据量相差巨大,所以将上面公式改变一下,将值除以 :
这个衡量标准称为均方误差(MSE, Mean Squared Error)
在对量纲不敏感的情况下,使用均方误差没什么问题,但是在一些对量纲比较敏感的场景下,均方误差就会有问题,因为均方误差的量纲为XX平方,比如房屋面积售价的例子,均方误差的量纲就成了 元 ,所以就有了均方根误差(RMSE, Root Mean Squared Error)用以统一量纲:
平均绝对误差(MAE)
另外一个能统一量纲的衡量公式为平均绝对误差,既将真实值与预测值的差取绝对值而不是平方:
实现这三个指标我们使用Scikit Learn中提供的波士顿房价的数据集,我们先使用简单线性回归进行预测:
import numpy as np
from sklearn import datasets
import matplotlib.pyplot as plt
boston = datasets.load_boston()
boston.feature_names
# 结果
array(['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD',
'TAX', 'PTRATIO', 'B', 'LSTAT'],
dtype='
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?


微信扫码登录