知識點普及
- 回歸分析:研究自變量與因變量之間的關(guān)系形式的分析方法蹦魔,主要是通過建立自變量y和影響他的自變量Xi(i=1,2,3...)之間的回歸模型來預(yù)測自變量y的發(fā)展趨勢.
-
回歸模型分析步驟:
- 根據(jù)預(yù)測目標(biāo)激率,確定因變量和自變量
- 繪制散點圖,確定回歸模型或類型
- 估計模型參數(shù)勿决,建立回歸模型
- 對回歸模型進(jìn)行校驗
- 利用回歸模型進(jìn)行預(yù)測
簡單線性回歸:y=a+bx+e
- y 因變量
- x 自變量
- a 常數(shù)項 截距
- b 回歸系數(shù) 斜率
- e 隨機(jī)誤差
sklearn 建立模型的流程
- 建立模型:
lrModel = sklearn.linear_model.LinearRegression()
- 訓(xùn)練模型:
lrModel.fit(x,y)
- 模型評估:
lrModel.score(x,y)
- 模型預(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的相關(guān)系數(shù)
plt.scatter(data.廣告投入,data.銷售額)
data.corr()
# 估計模型參數(shù),建立回歸模型
lrModel = LinearRegression()
X = data[['廣告投入']]
Y = data[['銷售額']]
#模型訓(xùn)練
lrModel.fit(X,Y)
#模型評估
lrModel.score(X,Y)
# 利用回歸模型進(jìn)行預(yù)測
res = lrModel.predict([[50],[40],[20]])
print (res)
# 查看截距
alpha = lrModel.intercept_[0]
# 查看參數(shù)
beta = lrModel.coef_[0][0]
alpha + beta*np.array([50,40,20])
結(jié)果輸出
[[ 150.53303965]
[ 113.15418502]
[ 38.39647577]]
多重線性回歸 :研究一個因變量和多個自變量間的線性關(guān)系的方法
樣例代碼
#!/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設(shè)置圖表中文正常顯示
font = {
'family':'SimHei'
}
matplotlib.rc('font',**font)
#矩陣?yán)L制散點圖
scatter_matrix(
data[['店鋪的面積','距離最近的車站','月營業(yè)額']],
figsize = (10,10),diagonal='kde'
)
#計算相關(guān)系數(shù)
data[['店鋪的面積','距離最近的車站','月營業(yè)額']].corr()
#自變量
X = data[['店鋪的面積','距離最近的車站']]
#因變量
Y = data[['月營業(yè)額']]
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)
#查看參數(shù)
lrModel.coef_
#查看截距
lrModel.intercept_
附注
- matplotlib相關(guān)知識點請查看
- 相關(guān)系數(shù)計算相關(guān)知識點請查看
我是阿羽乒躺,一枚正在學(xué)習(xí)的搬磚小工,希望大家多多指教低缩!