sklearn.linear_model.logisticregression
(penlty='l2',dual=false,tol=0.0001,C=1.0,fit_intercept=true,intercept_scaling=1,class_weight=none,random_state=none,solver='liblinear',max_iter=100,multi_class='ovr',verbose=0,warm_star=false,n_jobs=1)
參數:
penalty:一個字符串,制定了正則化策略。
- 如果為‘l2’,則優化目標函數為:
- 如果為‘l1’,則優化目標函數為:
dual:一個布爾值。如果為true,則求解對偶形式(只是在penalty='l2',solver='liblinear'有對偶形式);
如果為false,則求原始形式。
C:一個浮點數,指定了懲罰系數的倒數。如果它的值越小,則正則化越大。
fit_intercept:一個布爾值,制定是否需要b值。如果為false,則不會計算b值(模型會假設數據已經中心化)
intercept_scaling:一個浮點數,只有當solver='liblinear'才有意義。
當采用fit_intercept時,相當於人造一個特征出來,該特征恆為1,其權重為b。
在計算正則化的時候,該人造特征也被考慮了。因此為了降低人造特征的影響,需要提供 intercept_scaling
class_weight:一個字典或者字符串'balanced'
如果為字典:則字典給出了每個分類的權重,如{class_label:weight}
如果為字符串’balanced‘:則每個分類的權重與該分類在樣品中出現的頻率成反比
如果未指定,則每個分類的權重為1
max_iter:一個整數,指定最大迭代數
random_state:一個整數或一個randomstate實例,或者none。
如果為整數,則它制定了隨機數生成器的種子
如果為randomstate實例,則指定了隨機生成器
如果為none,則使用默認的隨機數生成器
solver:一個字符串,指定了求解最優化問題的算法
’newton-cg':使用牛頓法
'lbfgs':使用l-bfgs擬牛頓法
‘liblinear’:使用liblinear
‘sag’ 使用 Stochastic Average Gradient descent 算法
注:對於規模小的數據集,'liblearner'比較適用;對於規模大的數據集,'sag'比較適用。
'newton-cg'、'lbfgs'、'sag' 只處理penalty=‘12’的情況。
tol:一個浮點數,指定判斷迭代收斂與否的一個閾值
multi_class:一個字符串,指定對於多分類問題的策略
ovr :one-vs-rest策略
multinomial:直接采用多分類邏輯回歸策略
verbose:一個正數。用於開啟/關閉迭代中間輸出的日志
warm_start:一個布爾值。如果為true,使用前一次訓練結果訓練繼續,否則從頭開始
n_jobs:一個正數。指定任務並行時的cpu數量。如果-1則使用所有了用的cpu
返回值
corf_:權重向量
intercept:b值
n_iter:實際迭代次數
方法:
fix(X,y[,sample_weight]):訓練模型。
predict(X):用模型進行預測,返回預測值。
score(X,y[,sample_weight]):返回(X,y)上的預測准確率(accuracy)。
predict_log_proba(X):返回一個數組,數組的元素一次是 X 預測為各個類別的概率的對數值。
predict_proba(X):返回一個數組,數組元素一次是 X 預測為各個類別的概率的概率值。
sparsify():將系數矩陣轉換為稀疏格式。
set_params(** params):設置此估計器的參數。
decision_function(X):預測樣本的置信度分數。
densify():將系數矩陣轉換為密集陣列格式。