5. `sklearn`下的線性迴歸

YL發表於2022-06-19

本文以線性迴歸為例,介紹使用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方進行評估

相關文章