簡(jiǎn)單線性回歸
前言
可能第一部分的內(nèi)容看了還不知道在干啥,別急,畢竟你才學(xué)習(xí)了一個(gè)小時(shí)(其中包括半個(gè)小時(shí)搭建環(huán)境)。GO ON!
先來看一下一個(gè)概念:
簡(jiǎn)單線性回歸
在統(tǒng)計(jì)學(xué)中,線性回歸是利用稱為線性回歸方程的最小二乘函數(shù)對(duì)一個(gè)或多個(gè)自變量和因變量之間關(guān)系進(jìn)行建模的一種回歸分析。簡(jiǎn)單說來,就是根據(jù)自變量值(X)來預(yù)測(cè)因變量值(Y)的方法。我們假設(shè)X和Y之間存在著某種線性關(guān)系,如果我們找到了該關(guān)系,那么就可以根據(jù)X來預(yù)測(cè)Y值,也就是尋找“最佳擬合線”來最小化預(yù)測(cè)誤差。
這一部分說白了就是我們數(shù)學(xué)中學(xué)的線性函數(shù):y = ax + b,用一堆已知的數(shù)據(jù)描繪出這條擬合線,機(jī)器就學(xué)會(huì)了利用這個(gè)模型進(jìn)行預(yù)測(cè)了。
本例使用的案例是利用學(xué)生的學(xué)習(xí)時(shí)間來預(yù)測(cè)其分?jǐn)?shù)(突然想到了褒貶不一的10000小時(shí)理論,如果能有大量的數(shù)據(jù),完全可以用機(jī)器學(xué)習(xí)來驗(yàn)證該理論的真實(shí)性和實(shí)用性)
本例使用的數(shù)據(jù)文件這里點(diǎn)右鍵保存
Step 1:數(shù)據(jù)預(yù)處理
即[1%]中的內(nèi)容
- 導(dǎo)入相關(guān)庫
- 導(dǎo)入數(shù)據(jù)集
- 檢查缺失函數(shù)
- 劃分?jǐn)?shù)據(jù)集
- 特征縮放
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
dataset = pd.read_csv('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 = 0.25, random_state = 0)
Step 2:通過訓(xùn)練集訓(xùn)練簡(jiǎn)單線性回歸模型
這里我們從sklearn.linear_model
中導(dǎo)入LinearRegression類,創(chuàng)建一個(gè)實(shí)例regressor,使用fit函數(shù)對(duì)數(shù)據(jù)進(jìn)行訓(xùn)練。
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor = regressor.fit(X_train, Y_train)
Step3: 預(yù)測(cè)結(jié)果
訓(xùn)練結(jié)束之后,來測(cè)試一下訓(xùn)練成果,使用predict函數(shù),把結(jié)果存在Y_pred向量中。
Y_pred = regressor.predict(X_test)
Step4: 可視化
人類都是視覺動(dòng)物,讓我們把訓(xùn)練集結(jié)果和測(cè)試集結(jié)果用matplotlib.pyplot
庫生成散點(diǎn)圖,查看我們的模型預(yù)測(cè)效果。
#可視化訓(xùn)練集
plt.scatter(X_train , Y_train, color = 'red')
plt.plot(X_train , regressor.predict(X_train), color ='blue')
plt.show()
#可視化測(cè)試集
plt.scatter(X_test , Y_test, color = 'red')
plt.plot(X_test , regressor.predict(X_test), color ='blue')
plt.show()