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