知识点普及
- 回归分析:研究自变量与因变量之间的关系形式的分析方法,主要是通过建立自变量y和影响他的自变量Xi(i=1,2,3...)之间的回归模型来预测自变量y的发展趋势.
-
回归模型分析步骤:
- 根据预测目标,确定因变量和自变量
- 绘制散点图,确定回归模型或类型
- 估计模型参数,建立回归模型
- 对回归模型进行校验
- 利用回归模型进行预测
简单线性回归:y=a+bx+e
- y 因变量
- x 自变量
- a 常数项 截距
- b 回归系数 斜率
- e 随机误差
sklearn 建立模型的流程
- 建立模型:
lrModel = sklearn.linear_model.LinearRegression()
- 训练模型:
lrModel.fit(x,y)
- 模型评估:
lrModel.score(x,y)
- 模型预测:
lrModel.predict(x)
样例代码
#!/usr/bin/env python
# coding=utf-8
import numpy as np
from pandas import read_csv
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
data = read_csv('../data/input/data.csv')
#画出散点图,求x,y的相关系数
plt.scatter(data.广告投入,data.销售额)
data.corr()
# 估计模型参数,建立回归模型
lrModel = LinearRegression()
X = data[['广告投入']]
Y = data[['销售额']]
#模型训练
lrModel.fit(X,Y)
#模型评估
lrModel.score(X,Y)
# 利用回归模型进行预测
res = lrModel.predict([[50],[40],[20]])
print (res)
# 查看截距
alpha = lrModel.intercept_[0]
# 查看参数
beta = lrModel.coef_[0][0]
alpha + beta*np.array([50,40,20])
结果输出
[[ 150.53303965]
[ 113.15418502]
[ 38.39647577]]
多重线性回归 :研究一个因变量和多个自变量间的线性关系的方法
样例代码
#!/usr/bin/env python
# coding=utf-8
import matplotlib
import pandas as pd
from pandas.tools.plotting import scatter_matrix
data = pd.read_csv('../data/input/data_2.csv')
# matplotlib设置图表中文正常显示
font = {
'family':'SimHei'
}
matplotlib.rc('font',**font)
#矩阵绘制散点图
scatter_matrix(
data[['店铺的面积','距离最近的车站','月营业额']],
figsize = (10,10),diagonal='kde'
)
#计算相关系数
data[['店铺的面积','距离最近的车站','月营业额']].corr()
#自变量
X = data[['店铺的面积','距离最近的车站']]
#因变量
Y = data[['月营业额']]
from sklearn.linear_model import LinearRegression
lrModel = LinearRegression()
lrModel.fit(X,Y)
lrModel.score(X,Y)
res1 = lrModel.predict([[10,110]])
res2 = lrModel.predict([[10,110],[20,110]])
print (res1)
print (res2)
#查看参数
lrModel.coef_
#查看截距
lrModel.intercept_
附注
- matplotlib相关知识点请查看
- 相关系数计算相关知识点请查看
我是阿羽,一枚正在学习的搬砖小工,希望大家多多指教!