前言
大家好,关于数据挖掘或者机器学习的理论我想大家应该都已经了解很多,而数据挖掘的工具例如Pandas、NumPy、Sklearn等在历史文章都有所介绍,因此今天我们将开始第一个也是很多人入门机器学习的项目:简单线性回归模型——通过工作年限预测薪水。先来回顾一下基本步骤:
- 加载清洗数据
- 建立、调整模型
- 分析预测
加载并观察数据
首先我们打开Jupyter Notebook
导入相关库并加载数据
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import accuracy_score
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
data = pd.read_excel('salary.xlsx')
接着查看数据
再查看一下描述性统计摘要
可以看到,我们的数据集非常简单所以不需要进行清洗,仅有两个变量:工作年限、薪资水平。一共10行2列,通过观察数据并结合经验,可以认为工作年限与薪资水平应该成线性关系,因此我们接下来将建立线性回归模型(有监督)。
建模预测
现在开始建模预测,虽然数据不大但是我们仍将它划分为训练集和测试集
代码语言:javascript复制X = data[['工作年限']]
y = data['薪水']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.1, random_state=101)
接下来使用Sklearn
包中的LinearRegression
这个类来训练模型
model = LinearRegression()
model.fit(X_train,y_train)
在模型训练完毕之后,让我们使用之前的测试数据集来判断模型的准确性
当然也可以绘制散点图和回归直线来判断
可以看到我们的模型拥有100%的准确性,不过在真实的数据中几乎不可能出现这样的结果,一般超过90%的准确性就很好了,当然现在我们还可以使用其他数据来进行预测,比如预测拥有6.6年的工作经验对应的薪资水平是16300元。
结束语
以上就是使用Sklearn进行一次简单的回归建模预测的过程,也是我学习入门的案例,虽然简单,但是应该足够让小白搞懂基本流程,下一期来我们将使用著名的IRIS数据集来讲一讲分类。