您好,登錄后才能下訂單哦!
這篇文章主要講解了“如何掌握Python線性回歸”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“如何掌握Python線性回歸”吧!
1. 準(zhǔn)備
開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上噢,如果沒有,請訪問這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda
Windows環(huán)境下打開Cmd(開始—運行—CMD),蘋果系統(tǒng)環(huán)境下請打開Terminal(command+空格輸入Terminal),準(zhǔn)備開始輸入命令安裝依賴。
當(dāng)然,我更推薦大家用VSCode編輯器,把本文代碼Copy下來,在編輯器下方的終端運行命令安裝依賴模塊,多舒服的一件事?。篜ython 編程的最好搭檔—VSCode 詳細(xì)指南。
在終端輸入以下命令安裝我們所需要的依賴模塊:
pip install scikit-learn
2.簡單的訓(xùn)練集
冬天快到了,深圳這幾天已經(jīng)準(zhǔn)備開始入冬了。
從生活入手,外界溫度對是否穿外套的影響是具有線性關(guān)系的:
現(xiàn)在,考慮這樣的一個問題:如果深圳的溫度是12度,我們應(yīng)不應(yīng)該穿外套?
這個問題很簡單,上述簡單的訓(xùn)練集中,我們甚至不需要機器學(xué)習(xí)就能輕易地得到答案:應(yīng)該。但如果訓(xùn)練集變得稍顯復(fù)雜一些呢:
你能看出其中x1, x2, x3和y之間的規(guī)律嗎?
比較難,但是如果你有足夠的數(shù)據(jù)(比如100個),機器學(xué)習(xí)能夠迅速解決這個問題。
為了方便展示機器學(xué)習(xí)的威力,我們在這里生產(chǎn)100個這樣的訓(xùn)練集(公式為: y=x1 + 2*x2 + 3*x3):
from random import randint TRAIN_SET_LIMIT = 1000 TRAIN_SET_COUNT = 100 TRAIN_INPUT = list() TRAIN_OUTPUT = list() for i in range(TRAIN_SET_COUNT): a = randint(0, TRAIN_SET_LIMIT) b = randint(0, TRAIN_SET_LIMIT) c = randint(0, TRAIN_SET_LIMIT) op = a + (2*b) + (3*c) TRAIN_INPUT.append([a, b, c]) TRAIN_OUTPUT.append(op)
然后讓線性回歸模型使用該訓(xùn)練集(Training Set)進(jìn)行訓(xùn)練(fit),然后再給定三個參數(shù)(Test Data),進(jìn)行預(yù)測(predict),讓它得到y(tǒng)值(Prediction),如下圖所示。
3. 訓(xùn)練和測試
為什么我使用sklearn?因為它真的真的很方便。像這樣的訓(xùn)練行為,你只需要3行代碼就能搞定:
from sklearn.linear_model import LinearRegression predictor = LinearRegression(n_jobs=-1) predictor.fit(X=TRAIN_INPUT, y=TRAIN_OUTPUT)
需要注意線性回歸模型(LinearRegression)的參數(shù):
n_jobs:默認(rèn)為1,表示使用CPU的個數(shù)。當(dāng)-1時,代表使用全部CPU
predictor.fit 即訓(xùn)練模型,X是我們在生成訓(xùn)練集時的TRAIN_INPUT,Y即TRAIN_OUTPUT.
訓(xùn)練完就可以立即進(jìn)行測試了,調(diào)用predict函數(shù)即可:
X_TEST = [[10, 20, 30]] outcome = predictor.predict(X=X_TEST) coefficients = predictor.coef_ print('Outcome : {}\nCoefficients : {}'.format(outcome, coefficients))
這里的 coefficients 是指系數(shù),即x1, x2, x3.
得到的結(jié)果如下:
Outcome : [ 140.] Coefficients : [ 1. 2. 3.]
驗證一下:10 + 20*2 + 30*3 = 140 完全正確。
如何,機器學(xué)習(xí)模型,用起來其實真的沒你想象中的那么難,大部分人很可能只是卡在了安裝 scikit-learn 的路上...
順便給大家留個小練習(xí),將下列歐式距離,使用線性回歸模型進(jìn)行表示。
解決思路和本文的方案其實是類似的,只不過需要變通一下。
感謝各位的閱讀,以上就是“如何掌握Python線性回歸”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對如何掌握Python線性回歸這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。