案例一:
需求
分析IT行业工龄和收入之间的规律。通常来说,收入都会随着工作年限的增长而增长,而在不同的行业中收入的 增长速度都会有所不同,本需求就是来通过一元线性回归模型来探寻工作年 限对收入的影响,也即搭建收入预测模型,同时比较多个行业的收入预测模 型来分析各个行业的特点。
数据
代码
# 【1】导入资源包
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
import pandas as pd
# 【2】加载样本数据,核心是给x,y赋值
df = pd.read_excel('IT行业收入表.xlsx')
print(df.head())
x = df[['工龄']]
y = df['薪水']
#【2.1】多项式数据转变 y = ax^2+bx+c
from sklearn.preprocessing import PolynomialFeatures
pf = PolynomialFeatures(degree=2)
x2 = pf.fit_transform(x)
print(x2)
#【3】模型搭建
lr = LinearRegression()
#【4】模型训练
lr.fit(x2,y)
#【5】模型预测
res = lr.predict(pf.fit_transform([[10]]))
print(res)
#拓展
#【6】显示模型参数
print('回归系数:',str(lr.coef_))
print('截距:',str(lr.intercept_))
print('模型函数: y = ',str(lr.coef_[2]),'*x^2 +(',str(lr.coef_[1]),'*x) +',str(lr.intercept_))
#【7】样本及模型可视化
plt.scatter(x,y)
plt.plot(x,lr.predict(pf.fit_transform(x)))
# plt.plot(x,lr.predict(x2))
plt.show()
#【8】模型评估
import statsmodels.api as sma
res = sma.OLS(y,sma.add_constant(x2)).fit()
print(res.summary())