回归分析

知识点普及

  • 回归分析:研究自变量与因变量之间的关系形式的分析方法,主要是通过建立自变量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]]

多重线性回归 :研究一个因变量和多个自变量间的线性关系的方法

回归分析_第1张图片
多重线性回归表达式

样例代码

#!/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相关知识点请查看
    • matplotlib教程之基础
    • matplotlib教程之Pyplot 模块
    • matplotlib教程之实例
  • 相关系数计算相关知识点请查看
    • 相关性分析

我是阿羽,一枚正在学习的搬砖小工,希望大家多多指教!

你可能感兴趣的:(回归分析)