這是github上的一個(gè)項(xiàng)目毡琉,地址在這兒蕾久,作者@# Avik-Jain婉宰。
Day 2歌豺, 簡(jiǎn)單線性回歸
使用一個(gè)特征值預(yù)測(cè)結(jié)果
這是一種基于獨(dú)立的變量X預(yù)測(cè)相關(guān)變量Y的方法。這種方法假設(shè)兩個(gè)變量線性相關(guān)心包。因此类咧,我們的目標(biāo)是找到一種函數(shù),能夠根據(jù)X盡可能精確地預(yù)測(cè)Y值蟹腾。
如何找到最佳擬合直線
在這個(gè)回歸模型中痕惋,我們?cè)噲D通過找到“最佳擬合直線”來最小化誤差——找到的回顧直線誤差是最小的。我們盡量使樣本值Yi與預(yù)測(cè)值Yp之間的長(zhǎng)度最小娃殖。
這個(gè)任務(wù)中值戳,我們將會(huì)根據(jù)學(xué)生學(xué)習(xí)的時(shí)長(zhǎng)預(yù)測(cè)其分?jǐn)?shù)。
Step 1:預(yù)處理數(shù)據(jù)
我們會(huì)按照上一節(jié)的步驟來處理數(shù)據(jù)炉爆。
- 導(dǎo)入庫(kù)
- 導(dǎo)入數(shù)據(jù)集
- 檢查缺失數(shù)據(jù)
- 分割數(shù)據(jù)
- 特征值規(guī)范化以準(zhǔn)備使用簡(jiǎn)單線性回歸模型
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
dataset = pd.read_csv('../datasets/studentscores.csv')
X = dataset.iloc[:,:1].values
Y = dataset.iloc[:,1].values
from sklearn.cross_validation import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(X,Y,test_size=1/4,random_state=0)
Step 2:使用訓(xùn)練數(shù)據(jù)訓(xùn)練簡(jiǎn)單線性回歸模型
我們將使用sklearn.linear_model的LiearRegression類訓(xùn)練數(shù)據(jù)堕虹。然后產(chǎn)生LinearRegression類的regressor對(duì)象。現(xiàn)在我們將使用fit()方法將數(shù)據(jù)載入到回歸對(duì)象中叶洞。
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor = regressor.fit(X_train, Y_train)
Step 3:預(yù)測(cè)結(jié)果
現(xiàn)在我們將用測(cè)試數(shù)據(jù)集預(yù)測(cè)結(jié)果鲫凶,輸出將保存到向量Y_pred
中。為了預(yù)測(cè)結(jié)果衩辟,我們使用LinearRegression
類的預(yù)測(cè)方法螟炫。
Y_pred = regressor.predict(X_test)
Step 4:可視化
最后的步驟是可視化我們的結(jié)果。我們會(huì)用matplotlib.pyplot
庫(kù)打印散點(diǎn)圖艺晴,可視化訓(xùn)練集與測(cè)試集結(jié)果昼钻,對(duì)比我們預(yù)測(cè)的模型與實(shí)際值接近程度。
可視化訓(xùn)練集
plt.scatter(X_train, Y_train, color = 'red')
plt.plot(X_train, regressor.predict(X_train), color='blue')
可視化測(cè)試集
plt.scatter(X_test, Y_test, color='red')
plt.plot(X_test, regressor.predict(X_test),color='blue')