sklearn—LinearRegression,Ridge,RidgeCV,Lasso線性迴歸模型簡單使用

線性迴歸html

import sklearn
from sklearn.linear_model import LinearRegression X= [[0, 0], [1, 2], [2, 4
]] y = [0, 1, 2] clf = LinearRegression()
#fit_intercept=True
#默認值爲 True,表示計算隨機變量, False 表示不計算隨機變量
#normalize=False
#默認值爲 False,表示在迴歸前是否對迴歸因子 X 進行歸一化, True 表示是 #copy_X=True 表示是否保存副本
# n_jobs=1 在運行時幾核並行運算 clf.fit(X, y) #訓練 print(clf.coef_) #獲取訓練會的線性函數X參數的權值 print(clf.intercept_) # 訓練後模型截距 print(clf.predict([[3,3]])) #根據輸出值進行預測 print(clf._decision_function([[3,3]]))#根據輸入進行預測的第二種方法 print(clf.score([[3,3]],[1.79])) #對預測結果進行評估打分 print(clf.get_params())#獲取本次訓練模型的參數值 print(clf.set_params(normalize=True)) #修改模型的參數值 print(clf.get_params())#從新顯示模型訓練參數值

Ridge 迴歸 (嶺迴歸)
數組

Ridge 迴歸用於解決兩類問題:一是樣本少於變量個數,二是變量間存在共線性
dom

from sklearn import linear_model
reg = linear_model.Ridge (alpha = .5) #導入模型並傳入一個數
reg.fit ([[0, 0], [0, 0], [1, 1]], [0, .1, 1]) #訓練模型
#Ridge(alpha=0.5, copy_X=True, fit_intercept=True, max_iter=None,
#      normalize=False, random_state=None, solver='auto', tol=0.001)
print(reg.coef_) #獲取權重w1...wn

print(reg.intercept_) #獲取截距w0

reg.set_params(alpha=0.6)#從新設置參數alpha=0.6
#Ridge(alpha=0.6, copy_X=True, fit_intercept=True, max_iter=None,
#   normalize=False, random_state=None, solver='auto', tol=0.001)
   #tol收斂精度
reg.fit ([[0, 0], [0, 0], [1, 1]], [0, .1, 1])#從新訓練模型
#Ridge(alpha=0.6, copy_X=True, fit_intercept=True, max_iter=None,
#   normalize=False, random_state=None, solver='auto', tol=0.001)
print(reg.coef_)
print(reg.intercept_)

RidgeCV:多個阿爾法,得出多個對應最佳的w,而後獲得最佳的w及對應的阿爾法函數

from sklearn import linear_model #導入模型
reg = linear_model.RidgeCV(alphas=[0.1, 1.0, 10.0])#導入模型傳入數組
reg.fit([[0, 0], [0, 0], [1, 1]], [0, .1, 1]) #訓練模型
#RidgeCV(alphas=[0.1, 1.0, 10.0], cv=None, fit_intercept=True, scoring=None,normalize=False)
print(reg.alpha_) #獲取權重

Lasso 監督分類
估計稀疏係數的線性模型
適用於參數少的狀況,因其產生稀疏矩陣,可用與特徵提取
性能

from sklearn import linear_model # 導入模型參數
reg = linear_model.Lasso(alpha = 0.1)#導入模型傳入參數alpha=0.1
reg.fit([[0, 0], [1, 1]], [0, 1])#訓練數據
#Lasso(alpha=0.1, copy_X=True, fit_intercept=True, max_iter=1000,normalize=False, positive=False, precompute=False, random_state=None,selection='cyclic', tol=0.0001, warm_start=False)
#max_iter:迭代次數,tol:收斂精度
print(reg.predict([[1, 1]]))#模型預測

sklearn中更多的迴歸問題spa

  Elastic Net
    
是一個使用 L1 L2 訓練的線性模型,適合於在參數不多的狀況下(如 Lasso)並保持 Ridge
    性能的狀況, 既是多種影響因素依賴與另一種因素。繼承 Ridge
的旋轉穩定性。code

  Multi-task Lasso
    用於估計 y 值不是一元的迴歸問題
    用於估計聯合多元迴歸問題的稀疏係數, y 是一個 2 維矩陣(n_samples,n_tasks)。對於所
    有的迴歸問題,選的的因素必須相同,也叫 tasks
    使用: clf = linear_model.MultiTaskLasso(alpha=0.1)
  貝葉斯迴歸(Bayesian Regression
    
能夠再估計過程包含正則化參數,參數能夠手動設置,用於估計機率迴歸問題
    優勢:
      適用於手邊數據
      可用於在估計過程當中包含正規化參數
    缺點:
      耗時
orm

  邏輯迴歸
    能夠作機率預測,也可用於分類
    僅能用於線性問題
    經過計算真實值與預測值的機率,而後變換成損失函數,求損失函數最小值來計算模型參數
    從而得出模型
    使用:
      clf_l1_LR = LogisticRegression(C=C, penalty='l1', tol=0.01)
      clf_l2_LR = LogisticRegression(C=C, penalty='l2', tol=0.01)
      clf_l1_LR.fit(X, y)
      clf_l2_LR.fit(X, y)
想了解更多sklearn內容,請訪問https://wenku.baidu.com/view/b5e9383c1a37f111f0855b0f.html

htm

相關文章
相關標籤/搜索