不同行业工龄与薪水的线性回归模型 | 更文挑战
1. 背景
通常来说,薪水会随着工龄的增长而增长,不同行业的薪水增长速度有所不同。本案例要应用一元线性回归模型探寻工龄对薪水的影响,即搭建薪水预测模型,并通过比较多个行业的薪水预测模型来分析各个行业的特点。
2.读取数据
首先以IT行业为例进行分析,这里选取的是北京地区IT行业中工龄在0~8年范围内的100个IT工程师的月薪数据,存储在一个名为“IT行业收入表.xlsx”的Excel工作簿中。通过如下代码读取数据
import pandas as pd
df= pd.read_excel('IT行业收入表.xlsx')
df.head()
运行后可看到表格的前5行数据,内容见下表。
此时的工龄为自变量,薪水为因变量,通过如下代码进行自变量、因变量选取。
X=df[['工龄']]
Y=df['薪水']
这里的自变量X必须写成二维结构形式,原因之前提过;而因变量Y写成一维结构形式即可,不过如果写成二维结构形式df[['薪水']],之后的模型也能运行。
通过如下代码可以将此时的散点图绘制出来。
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif']=['SiMhei']
plt.scatter(X,Y)
plt.xlabel('工龄')
plt.ylabel('薪水')
plt.show()
第2行代码用来正常显示中文标签,SimHei表示“黑体”字体;第4行和第5行代码使用plt.xlabel()和plt.ylabel()函数添加坐标轴标签。绘制效果如下图所示。
3.模型搭建
通过如下代码搭建线性回归模型。
from sklearn.linear_model import LinearRegression
regr = LinearRegression()
regr.fit(X,Y)
4.模型可视化
通过如下代码将线性回归模型进行可视化呈现。
plt.scatter(X,Y)
plt.plot(X,regr.predict(X),color='red')
plt.xlabel('工龄')
plt.ylabel('薪水')
plt.show()
第2行代码中的color='red'表示用红色绘制趋势线。绘制效果如下图所示
5.线性回归方程构造
通过如下代码查看趋势线的系数a和截距b。
print('系数a: '+str(regr.coef_[0]))
print('截距b: '+str(regr.intercept_))
运行结果如下。因此,拟合得到的一元线性回归方程为y=2497x+10143。
转载自:https://juejin.cn/post/6972697580295684103