機(jī)器學(xué)習(xí)100天學(xué)習(xí)計劃 — 第2天 線性回歸

一起學(xué)!機(jī)器學(xué)習(xí)100天學(xué)習(xí)計劃 (第1天 數(shù)據(jù)預(yù)處理)
今天是機(jī)器學(xué)習(xí)100天學(xué)習(xí)計劃的第2天,我們將實現(xiàn)一個簡單的線性回歸模型。
線性回歸模型就是基于單一特征(X)來預(yù)測結(jié)果(Y),回歸任務(wù)的難點在于找到最佳的擬合線,而我們使用機(jī)器學(xué)習(xí)訓(xùn)練模型的目的就是為了找到這條最佳的擬合線。
構(gòu)建模型的整個流程如下:

第零步:準(zhǔn)備
開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒有,請訪問這篇文章:超詳細(xì)Python安裝指南?進(jìn)行安裝。
如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了Python和pip.
此外,推薦大家用VSCode編輯器:Python 編程的最好搭檔—VSCode 詳細(xì)指南
準(zhǔn)備輸入命令安裝依賴,如果你沒有VSCode編輯器,Windows環(huán)境下打開 Cmd (開始-運行-CMD),蘋果系統(tǒng)環(huán)境下請打開 Terminal (command+空格輸入Terminal),如果你用的是VSCode編輯器或Pycharm,可以直接在下方的Terminal中輸入命令:
pip install?pandas
pip install?numpy
pip install?matplotlib
pip install?scikit-learn第一步:數(shù)據(jù)預(yù)處理
按照第一天學(xué)習(xí)的數(shù)據(jù)預(yù)處理知識,這一步我們將執(zhí)行以下步驟:
1.導(dǎo)入庫
2.導(dǎo)入數(shù)據(jù)集
3.檢查缺失數(shù)據(jù)
4.劃分?jǐn)?shù)據(jù)集
5.特征歸一化(縮放)
代碼如下,studentscores.csv 和本文完整源代碼,可在Python實用寶典公眾號后臺回復(fù):機(jī)器學(xué)習(xí)2?下載。
from?sklearn.model_selection import?train_test_split
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
X_train, X_test, Y_train, Y_test = train_test_split(
????X, Y, test_size=1/4, random_state=0)第二步:訓(xùn)練模型
使用 sklearn 的 LinearRegression 能夠很輕易地實現(xiàn)一個線性模型的訓(xùn)練。
我們曾經(jīng)在這篇文章中講解過:Python 用5行代碼學(xué)機(jī)器學(xué)習(xí)—線性回歸
from?sklearn.linear_model import?LinearRegression
regressor = LinearRegression()
regressor = regressor.fit(X_train, Y_train)第三步:預(yù)測結(jié)果
基于 sklearn 優(yōu)秀的代碼封裝能力,預(yù)測測試集的結(jié)果僅需要一行代碼:
Y_pred?= regressor.predict(X_test)第四步:可視化
單純看數(shù)據(jù)不是很直觀,我們可以使用 matplotlib 將數(shù)據(jù)可視化。
在真正的實際生活應(yīng)用中,使用 matplotlib 進(jìn)行數(shù)據(jù)可視化這一步往往是在訓(xùn)練模型之前做的,因為我們拿到數(shù)據(jù)后該做的第一步是探索性數(shù)據(jù)分析,也叫EDA分析。
不過因為這是一篇教程似的文章,并沒有需要進(jìn)行探索性數(shù)據(jù)分析的必要,因此我們略過了EDA分析。
訓(xùn)練集可視化:
plt.scatter(X_train, Y_train, color='red')
plt.plot(X_train, regressor.predict(X_train), color='blue')
plt.show()
測試集可視化:
plt.scatter(X_test, Y_test, color='red')
plt.plot(X_test, regressor.predict(X_test), color='blue')
plt.show()
這樣,我們便完成了一次簡單線性回歸模型的訓(xùn)練和測試,還是比較簡單的。
如果你想看進(jìn)一步的應(yīng)用,可以閱讀這篇文章:
Python 用5行代碼學(xué)機(jī)器學(xué)習(xí)—線性回歸
我們的文章到此就結(jié)束啦,如果你喜歡今天的Python 實戰(zhàn)教程,請持續(xù)關(guān)注Python實用寶典。
有任何問題,可以在公眾號后臺回復(fù):加群,回答相應(yīng)紅字驗證信息,進(jìn)入互助群詢問。
原創(chuàng)不易,希望你能在下面點個贊和在看支持我繼續(xù)創(chuàng)作,謝謝!
點擊下方閱讀原文可獲得更好的閱讀體驗
Python實用寶典?(pythondict.com)
不只是一個寶典
歡迎關(guān)注公眾號:Python實用寶典
