机器学习算法之线性回归

Editor:闫玉良

机器学习中最常见的一类问题:线性回归问题。

更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』

1.应用场景

  • 房价预测

通过以往房屋面积与房屋价格对应情况,推断出现有房屋的价格。

  • 销售额度预测

销售额度受影响因素很多,比如广告,市场环境等等。我们可以分析出其中的关系,从而预测销售额度。

  • 贷款额度预测

银行对于每个人的贷款额度参考,预测出某人的贷款额度。

……

2.线性回归

在说线性回归之前,需要先搞清楚『分类』和『回归』这两个概念,这也是机器学习中很重要的概念。简单来讲,『分类』和『回归』都是预测目标值的过程,但是『分类』预测的是离散型变量,而『回归』预测的是连续型变量。下面开始介绍线性回归:

线性回归(Linear regression)是利用回归方程(函数)一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式。下面即对应公式:

只有一个自变量的情况称为单变量回归,多于一个自变量情况的叫做多元回归

线性回归公式

那么怎么理解呢?我们来看几个例子

1
期末成绩 = 0.7 × 考试成绩 + 0.3 × 平时成绩
1
房子价格 = 0.02 × 中心区域的距离 + 0.04 × 城市一氧化氮浓度 + (-0.12 × 自住房平均房价) + 0.254 × 城镇犯罪率

上面两个例子,我们看到特征值与目标值之间建立了一个关系,这个关系可以理解为线性模型

如果还是难以理解的话,那么再通俗易懂的解释一下:

假设有很多小点点在屏幕上,他们看似杂乱,但貌似又有些关系。线性回归就是找出一条直线,尽可能的让给定的特征值点(屏幕上的小点点)都落到线上或均匀分布于两侧并靠近于这条线。

当然这些点分布的不能过于散乱,他们的整体趋势必须是线性的,否则拟合结果就是非线性。

这样看来,像不像给定几个点,然后求直线方程呢?(无限趋于完美情况,所有点都在直线上)这个直线方程就是「线性回归方程」,要求的参数就是「回归参数」

3.特征值与目标值关系分析

线性回归当中线性模型有两种:一种是线性关系,另一种是非线性关系。在这里我们只能画一个平面更好去理解,所以都用单个特征或两个特征举例子。

3.1 线性关系

3.1.1 单变量线性关系

单变量线性关系

3.1.2 多变量线性关系

多变量线性关系

注释:单特征与目标值的关系呈直线关系,或者两个特征与目标值呈现平面的关系。

更高维度的我们不用自己去想,记住这种关系即可

3.2 非线性关系

非线性关系

4.线性回归api初步使用

4.1 api

1
2
sklearn.linear_model.LinearRegression()
# LinearRegression.coef_:回归系数

4.2 举例

示例表格

4.2.1 步骤分析

  • 1.获取数据集
  • 2.数据基本处理(该案例中省略)
  • 3.特征工程(该案例中省略)
  • 4.机器学习
  • 5.模型评估(该案例中省略)

4.2.2 代码过程

  • 导入模块
1
from sklearn.linear_model import LinearRegression
  • 构造数据集
1
2
3
4
5
6
7
8
9
x = [[80, 86],
[82, 80],
[85, 78],
[90, 90],
[86, 82],
[82, 90],
[78, 80],
[92, 94]]
y = [84.2, 80.6, 80.1, 90, 83.2, 87.6, 79.4, 93.4]
  • 机器学习– 模型训练
1
2
3
4
5
6
7
8
# 实例化API
estimator = LinearRegression()
# 使用fit方法进行训练
estimator.fit(x,y)
# 回归系数
estimator.coef_
# 预测
estimator.predict([[100, 80]])

更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』

打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • 页面访问量: 独立访客访问数:
  • 更多精彩文章请关注微信公众号『全栈技术精选』,id 为『Pythonnote』

请我喝杯咖啡吧~

支付宝
微信