Vorlesung – Multiple Linear Regression – Jason

0
25


Die Methode „A number of Linear Regression“ (A number of Linear Regression) und „Python“ ist die Lösung.

首先看到範例,是一個飲料 Aliexpress的每日收入資料:

import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import KFold
import statsmodels.api as sm
Information = {'Temperature':[26,25,20,23,28,28,29,30,28,35,36,33,29,27,30,33,22,20,19,22,23,29,30,33,28,33,31,38,26,22],
'humidity':[48,55,60,43,59,57,60,67,78,63,67,82,64,70,72,89,51,45,45,66,43,73,62,56,52,57,44,71,42,60],
'NumberOfPeople':[300,421,321,400,511,672,561,555,712,918,921,1001,883,912,991,850,704,632,499,611,502,539,601,732,602,791,910,831,513,600],
'Income':[3000,2000,2150,1500,5500,6000,5123,6010,6648,7001,7214,7101,6812,5651,6468,7510,4031,3984,1594,4010,3151,5413,6641,6847,7000,6413,7300,7701,3101,3100],
}
df = pd.DataFrame(Information)
df
範例資料

所以在此我們想做的, 就是探討氣溫, 濕度, 飲料 Aliexpress附近車站的進出人數, 是否會影響當日的收入,所以架構會是如下:

研究架構圖

Die Verwendung von Sklearn in Python, die Verwendung von LinearRegression() und die Verwendung von LinearRegression() sind nicht möglich.差異僅在於自變項從一個變成多個而已,所以實作上會Antwort:

x = df.iloc[:,0:3].values
y = df.iloc[:,3].values
mannequin = LinearRegression()
mannequin.match(x,y)

可以看到幾乎跟簡單線性回歸一樣,相當簡單.不過當然,模型不是見好就好,我們還需要評估模型的效能,所以此時可以嘗試進行交叉驗證:

#使用KFold進行交叉驗證
CrossVal = KFold(n_splits=10, shuffle=True)
ScoreList = []
for train_index, test_index in CrossVal.break up(x,y):
x_train, x_test = x[train_index], x[test_index]
y_train, y_test = y[train_index], y[test_index]
mannequin.match(x_train, y_train)
R_Square = mannequin.rating(x_test, y_test)
ScoreList.append(R_Square)
#print出所有的分數
print(R_Square)
#查看分數的標準差
np.std(ScoreList)
交叉驗證結果

可以看到模型效果似乎不錯,標準差也算還可接受.不過筆者對於這種回歸,或是比較偏統計學模型,都會習慣使用統計學的方式來去衡量.簡單來說就是藉由一些統計報表來評估,所以此時推薦大家「statsmodels」的套件:

import statsmodels.api as sm
x = sm.add_constant(x)
Statistic = sm.OLS(y,x).match()
Statistic.abstract()
輸出結果

相信對這張表一定感到親切.筆者我是比較偏向這種報表,原因在於說能夠得到更多資訊.例如看到報表的下半部分,當中的coef就是分別為X1 und X3 Beta項的關係有顯著差異.

所以統計上也會建議探討調整後R平方分數,所以上圖報表部分,就可以直接看調整後R平方即可.因此可以看到調整後R平方為0,808, 所以可以說這個Model的效果還算不錯.



Source link

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here