Scikit Learn - 邏輯迴歸



邏輯迴歸,儘管其名稱如此,但它是一種分類演算法而不是迴歸演算法。基於一組給定的自變數,它用於估計離散值(0 或 1,是/否,真/假)。它也稱為 logit 或 MaxEnt 分類器。

基本上,它透過使用其邏輯函式估計事件發生的機率來衡量分類因變數和一個或多個自變數之間的關係。

sklearn.linear_model.LogisticRegression 是用於實現邏輯迴歸的模組。

引數

下表列出了邏輯迴歸模組使用的引數:

序號 引數和描述
1

penalty − str, ‘L1’, ‘L2’, ‘elasticnet’ 或 none,可選,預設 = ‘L2’

此引數用於指定懲罰(正則化)中使用的範數(L1 或 L2)。

2

dual − 布林值,可選,預設 = False

它用於對偶或原始公式,而對偶公式僅針對 L2 懲罰實現。

3

tol − 浮點數,可選,預設 = 1e-4

它表示停止標準的容差。

4

C − 浮點數,可選,預設 = 1.0

它表示正則化強度的倒數,必須始終為正浮點數。

5

fit_intercept − 布林值,可選,預設 = True

此引數指定應向決策函式新增常數(偏差或截距)。

6

intercept_scaling − 浮點數,可選,預設 = 1

此引數在以下情況下有用:

  • 使用solver ‘liblinear’

  • fit_intercept 設定為 true

7

class_weight − dict 或 ‘balanced’,可選,預設 = none

它表示與類相關的權重。如果我們使用預設選項,則表示所有類都應該具有權重 1。另一方面,如果您選擇 class_weight: balanced,它將使用 y 的值來自動調整權重。

8

random_state − int,RandomState 例項或 None,可選,預設 = none

此引數表示生成的偽隨機數的種子,在洗牌資料時使用。以下是選項:

  • int − 在這種情況下,random_state 是隨機數生成器使用的種子。

  • RandomState 例項 − 在這種情況下,random_state 是隨機數生成器。

  • None − 在這種情況下,隨機數生成器是 np.random 使用的 RandonState 例項。

9

solver − str, {‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘saag’, ‘saga’},可選,預設 = ‘liblinear’

此引數表示在最佳化問題中使用哪個演算法。以下是此引數下選項的屬性:

  • liblinear − 對於小型資料集來說是一個不錯的選擇。它還處理 L1 懲罰。對於多類問題,它僅限於一對多方案。

  • newton-cg − 它只處理 L2 懲罰。

  • lbfgs − 對於多類問題,它處理多項式損失。它也只處理 L2 懲罰。

  • saga − 對於大型資料集來說是一個不錯的選擇。對於多類問題,它還處理多項式損失。除了 L1 懲罰外,它還支援 ‘elasticnet’ 懲罰。

  • sag − 它也用於大型資料集。對於多類問題,它還處理多項式損失。

10

max_iter − int,可選,預設 = 100

顧名思義,它表示求解器收斂所採取的最大迭代次數。

11

multi_class − str, {‘ovr’, ‘multinomial’, ‘auto’},可選,預設 = ‘ovr’

  • ovr − 對於此選項,將為每個標籤擬合一個二元問題。

  • multinomial − 對於此選項,最小化的損失是在整個機率分佈中擬合的多項式損失。如果 solver = ‘liblinear’,則無法使用此選項。

  • auto − 此選項如果 solver = ‘liblinear’ 或資料為二元,則選擇 ‘ovr’,否則選擇 ‘multinomial’。

12

verbose − int,可選,預設 = 0

預設情況下,此引數的值為 0,但對於 liblinear 和 lbfgs 求解器,我們應將 verbose 設定為任何正數。

13

warm_start − bool,可選,預設 = false

將此引數設定為 True,我們可以重用先前對擬合的呼叫的解作為初始化。如果我們選擇預設值 false,它將擦除先前的解。

14

n_jobs − int 或 None,可選,預設 = None

如果 multi_class = ‘ovr’,此引數表示在對類進行並行化時使用的 CPU 核心數。當 solver = ‘liblinear’ 時,它將被忽略。

15

l1_ratio − 浮點數或 None,可選,預設 = None

當 penalty = ‘elasticnet’ 時使用。它基本上是 Elastic-Net 混合引數,其中 0 < = l1_ratio > = 1。

屬性

下表包含邏輯迴歸模組使用的屬性:

序號 屬性和描述
1

coef_ − 陣列,形狀 (n_features,) 或 (n_classes, n_features)

它用於估計決策函式中特徵的係數。當給定問題為二元時,其形狀為 (1, n_features)。

2

Intercept_ − 陣列,形狀 (1) 或 (n_classes)

它表示新增到決策函式中的常數,也稱為偏差。

3

classes_ − 陣列,形狀 (n_classes)

它將提供分類器已知的類標籤列表。

4

n_iter_ − 陣列,形狀 (n_classes) 或 (1)

它返回所有類的實際迭代次數。

實現示例

以下 Python 指令碼提供了一個在 scikit-learn 的iris 資料集上實現邏輯迴歸的簡單示例:

from sklearn import datasets
from sklearn import linear_model
from sklearn.datasets import load_iris
X, y = load_iris(return_X_y = True)
LRG = linear_model.LogisticRegression(
   random_state = 0,solver = 'liblinear',multi class = 'auto'
)
.fit(X, y)
LRG.score(X, y)

輸出

0.96

輸出顯示上述邏輯迴歸模型的準確率為 96%。

廣告
© . All rights reserved.