本文以線性迴歸為例,介紹使用sklearn
進行機器學習的一般過程。
- 首先生成模擬資料
import numpy as np
def get_data(theta_true,N):
X=np.random.normal(size=(N,len(theta_true)))
Y=X@theta_true+np.random.normal(size=(N))
return (X,Y)
theta_true=np.array([2,3,4])
X,Y=get_data(theta_true,100)
-
例項化一個估計器,進行一些可選引數配置。
sklearn
裡的迴歸和線性迴歸是位於sklearn.linear_model
包中的``LinearRegression`類,在例項化物件時有兩個引數:- fit_intercept:bool,預設為True,是否計算此模型的截距,False 表示不計算截距
- normalize:bool,預設為False如果為True,則在迴歸之前將對迴歸變數X進行歸一化
- copy_X : 布林型引數,若為True,則X將被複制;否則將被覆蓋。 可選引數。預設值為True。
- n_jobs : 整型引數,表示用於計算的作業數量;若為-1,則用所有的CPU。可選引數。預設值為1
from sklearn.linear_model import LinearRegression
lm_model = LinearRegression()
- 呼叫估計器的
fit
方法,傳入資料和標籤,進行學習
lm_model.fit(X,Y)
- 檢視估計出來的引數
lm_model.intercept_#檢視截距
lm_model.coef_#檢視係數
- 進行預測
lm_model.predict(X_test)
- 模型評估
lm.model.score(X_test,Y_test)#用R方進行評估