線性迴歸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