我準備使用scikit-learn給大家介紹一些模型的基礎知識,今天就來講講 線性回歸模型 。
1.準備
開始之前,你要確保Python和pip已經成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細Python安裝指南 進行安裝。
**(可選1) **如果你用Python的目的是數據分析,可以直接安裝Anaconda:Python數據分析與挖掘好幫手—Anaconda,它內置了Python和pip.
**(可選2) **此外,推薦大家用VSCode編輯器,它有許多的優點:Python 編程的最好搭檔—VSCode 詳細指南。
請選擇以下任一種方式輸入命令安裝依賴 :
- Windows 環境 打開 Cmd (開始-運行-CMD)。
- MacOS 環境 打開 Terminal (command+空格輸入Terminal)。
- 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install scikit-learn
2.簡單的訓練集
冬天快到了,深圳這幾天已經準備開始入冬了。
從生活入手,外界溫度對是否穿外套的影響是具有線性關系的:
外界溫度 | 是否穿外套 |
---|---|
30度 | 不 |
25度 | 不 |
20度 | 不 |
15度 | 是 |
10度 | 是 |
現在,考慮這樣的一個問題:如果深圳的溫度是12度,我們應不應該穿外套?
這個問題很簡單,上述簡單的訓練集中,我們甚至不需要機器學習就能輕易地得到答案:應該。但如果訓練集變得稍顯復雜一些呢:
你能看出其中x1, x2, x3和y之間的規律嗎?
比較難,但是如果你有足夠的數據(比如100個),機器學習能夠迅速解決這個問題。
為了方便展示機器學習的威力,我們在這里生產100個這樣的訓練集(公式為: y=x1 + 2x2 + 3x3):
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 + 202 + 303 = 140 完全正確。
如何,機器學習模型,用起來其實真的沒你想象中的那么難,大部分人很可能只是卡在了安裝 scikit-learn 的路上...
順便給大家留個小練習,將下列歐式距離,使用線性回歸模型進行表示。
解決思路和本文的方案其實是類似的,只不過需要變通一下。
-
WINDOWS
+關注
關注
3文章
3541瀏覽量
88628 -
模型
+關注
關注
1文章
3226瀏覽量
48809 -
編輯器
+關注
關注
1文章
805瀏覽量
31163 -
python
+關注
關注
56文章
4792瀏覽量
84629 -
線性回歸
+關注
關注
0文章
41瀏覽量
4306
發布評論請先 登錄
相關推薦
評論