所谓简单线性回归,其实就是自变量只有一个条件情况下的线性回归问题,是线性回归问题中最简单的一种了,这种问题在生活中也经常能简单,本文就用一个简单的例子来讲解简单线性回归。

以下有一组数据集,关于工作年限和薪水之间的联系(篇幅问题只给一部分):

YearsExperience,Salary
1.1,39343.00
1.3,46205.00
1.5,37731.00
2.0,43525.00
2.2,39891.00
2.9,56642.00
3.0,60150.00
3.2,54445.00
3.2,64445.00
3.7,57189.00
3.9,63218.00

正常情况下薪水都是会随着工作年限的增长而增长,因此这两者之间是有着很明显的线性关系的,且这里只有工作年限一个自变量,因此是个简单线性回归问题。我们现在要做的,就是用数学公式来表示这两者之间的关系,并能预测不同工作年限下可能的薪水值。

首先要对数据进行预处理,这里只需要导入数据集,切分成训练集和测试集两步即可。对于特征缩放这个点特别提一下,由于很多数据科学的包中其实已经包含了特征缩放的相关功能,因此某些情况下是不需要进行特征缩放的,但对于没有特征缩放的要注意下自己手动进行特征缩放,本文是不需要的。因此代码可以直接使用之前使用过的代码,如下所示(后面需要的包这里先导入了):

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as pltdata_path = '../simple_regression/data/Salary_Data.csv'dataset = pd.read_csv(data_path)
X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, 1].valuesX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=1/3, random_state=0)

拆分完测试集和训练集后就要进行线性回归处理了,这里同样适用的是sklearn包,首先构造回归器:

# Fitting Simple Linear Regression to the Training Set
regressor = LinearRegression()
regressor.fit(X_train, y_train)

这里使用的是LinearRegression这个类,然后传入训练集让其训练的出一个线性回归器。然后再用得出的回归器来预测测试集的结果:

# Predicting the Test set results
y_pred = regressor.predict(X_test)

得出预测结果后我们来看看这次训练得到的结果是否足够准确,这里通过matplotlib包来将测试集和训练集的点以及得出的线性回归方程画到图像上来观察:

#Visualising the Training set results
plt.scatter(X_train, y_train, c='red')
plt.plot(X_train, regressor.predict(X_train), c='blue')
plt.title('Salary VS Experience (training set)')
plt.xlabel('Years of Experience')
plt.ylabel('Salary')
plt.show()#Visualising the test set results
plt.scatter(X_test, y_test, c='red')
plt.plot(X_train, regressor.predict(X_train), c='blue')
plt.title('Salary VS Experience (test set)')
plt.xlabel('Years of Experience')
plt.ylabel('Salary')
plt.show()

这里解释一下其中的一行代码:

plt.plot(X_train, regressor.predict(X_train), c='blue')

虽然一个是画训练集一个是画测试集,但由于我们实际上用的是通过训练集训练出的线性回归器,所以这里画出线性回归线的时候实际上不需要再将其中的参数换成X_test。然后此时得到的图像如下:

很明显能看出此次的训练结果在测试集上的表现还是比较令人满意的,基本和数据吻合,这样就得出了一个简单的线性回归的模型。后面的文章会继续讲解多变量的线性回归,此文只是最简单的回归,作为基础入门。

机器学习A-Z~简单线性回归相关推荐

  1. 机器学习线性回归案例讲解_09机器学习实战之简单线性回归

    基本概念 1. 介绍: 回归(regression) Y变量为连续数值型(continuous numerical variable) 如:房价,人数,降雨量 分类(Classification): ...

  2. Python Train_机器学习--基于Python的简单线性回归

    一.概念 线性回归(Linear regression)是利用称为线性回归方程的最小二乘函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析. 这种函数是一个或多个称为回归系数的模型参数的线性 ...

  3. 【机器学习】快速入门简单线性回归 (SLR)

    简单线性回归图(青色散点为实际值,红线为预测值) statsmodels.api.statsmodels.formula.api 和 scikit-learn 的 Python 中的 SLR 今天云朵 ...

  4. python线性回归分析看相关性_机器学习入门-相关分析之简单线性回归

    一.什么是机器学习? 简单来说,机器学习是一类算法的总称,这些算法企图从大量历史数据中挖掘出其中隐含的规律,并用于预测或者分类,更具体的说,机器学习可以看作是寻找一个函数,输入是样本数据,输出是期望的 ...

  5. ols线性回归_普通最小二乘[OLS]方法使用于机器学习的简单线性回归变得容易

    ols线性回归 Hello Everyone! 大家好! I am super excited to be writing another article after a long time sinc ...

  6. [scikit-learn 机器学习] 2. 简单线性回归

    文章目录 1. 简单线性回归 2. 评价模型 本文为 scikit-learn机器学习(第2版)学习笔记 1. 简单线性回归 import numpy as np import matplotlib. ...

  7. 机器学习(2)---简单线性回归模型

    机器学习(2)---简单线性回归模型 第一步:数据预处理 import pandas as pd import numpy as np import matplotlib.pyplot as pltd ...

  8. excel线性拟合的斜率_邵励治的机器学习 2 / 100 天:「简单线性回归」

    前言 好了,我们闲言碎语不多讲,下面开始 机器学习100天:第2天 的学习! 另外,如果看官老爷喜欢我的文章,还请点个赞的说! 这是对我的认真分享最好的鼓励! 知识储备环节 今天我们学习的内容是:&q ...

  9. 机器学习 线性回归算法_探索机器学习算法简单线性回归

    机器学习 线性回归算法 As we dive into the world of Machine Learning and Data Science, one of the easiest and f ...

最新文章

  1. 使用回调函数实现图像阈值分析。程序运行后在屏幕中输入阈值,通过改变滑动条实现不同类型的二值化图。
  2. Find Minimumd in Rotated Sorted Array
  3. MySQL之帮助的使用
  4. windows下的cmd命令(全面)
  5. 常用API-String、包装类、System
  6. 基于ajax的数据验证
  7. AI 基础:Python 简易入门
  8. PHP的SOAP原理及实现
  9. 数据库:case when then
  10. oracle 层次查询判断叶子和根节点
  11. 如何在变化的时代中,抓住新时代的红利让自己跟着趋势赚钱
  12. Logistic回归以及LR与SVM异同
  13. ora01017 linux,Oracle linux 7.5安装oracle 12c dg一直提示ORA-01017
  14. 安装 LaserJet 1020 时这个设备的驱动程序丢失了一个必需的项,这可能是由于 inf 是为 Windows 95 或更新版本而写的。联系您的硬件供应商。
  15. Macos IntelliJ maven web项目tomcat8 启动时报错Cannot run program apache-tomcat-8/bin/catalina.sh解决方法
  16. Android studio 编译项目出现Keystore was tampered with, or password was incorrect
  17. 《利用Python进行数据分析》第七章——数据清洗与准备
  18. VUE记录用户切屏次数并弹出提示
  19. 本科课程【计算机网络】实验2 - 交换机的VLAN配置实验
  20. CSS中position的relative和absolute.

热门文章

  1. Optimize Slow VBA Code
  2. 最新临床肿瘤学文献精选(2021.12.5-2021.12.11)
  3. 第三届“SLAM技术及应用”暑期学校视频分享(完整版)
  4. 北斗导航 | 坐标转换:ECEF转LLA:GPS坐标系:WGS84(matlab代码)
  5. 认识 UART 接口
  6. 微型计算机温度控制系统课程设计,微机原理及其应用 微型计算机温度控制系统设计课程设计报告.doc...
  7. sql decimal函数例子_leetcode题库-sql练习精讲系列--三、经典排名问题
  8. html表格的表头怎么合并单元格,使用tableGrob合并表头单元格
  9. 香帅的北大金融学课笔记12 -- 资产估值
  10. pytorch随笔-6