二次判別分析#

class sklearn.discriminant_analysis.QuadraticDiscriminantAnalysis(*, priors=None, reg_param=0.0, store_covariance=False, tol=0.0001)[原始碼]#

二次判別分析 (Quadratic Discriminant Analysis)。

此分類器具有二次決策邊界,透過將類別條件密度擬合到資料並使用貝氏規則來產生。

此模型將高斯密度擬合到每個類別。

於 0.17 版本新增。

關於 QuadraticDiscriminantAnalysisLinearDiscriminantAnalysis 之間的比較,請參閱 具有共變異數橢圓的線性與二次判別分析

更多資訊請參閱 使用者指南

參數:
priors類陣列 (array-like),形狀為 (n_classes,),預設值為 None

類別先驗機率。預設情況下,類別比例會從訓練資料中推斷。

reg_param浮點數 (float),預設值為 0.0

透過將 S2 轉換為 S2 = (1 - reg_param) * S2 + reg_param * np.eye(n_features) 來正規化每個類別的共變異數估計值,其中 S2 對應於給定類別的 scaling_ 屬性。

store_covariance布林值 (bool),預設值為 False

如果為 True,則會明確計算類別共變異數矩陣並將其儲存在 self.covariance_ 屬性中。

於 0.17 版本新增。

tol浮點數 (float),預設值為 1.0e-4

在對每個 Sk 應用一些正規化(請參閱 reg_param)後,將共變異數矩陣視為秩不足的絕對閾值,其中 Sk 表示第 k 個類別的共變異數矩陣。 此參數不影響預測。 它控制當共變異數矩陣不是滿秩時何時引發警告。

於 0.17 版本新增。

屬性:
covariance_長度為 n_classes 的 list,其中包含形狀為 (n_features, n_features) 的 ndarray

針對每個類別,提供使用該類別樣本估計的共變異數矩陣。這些估計值是無偏的。僅當 store_covariance 為 True 時才會顯示。

means_類陣列 (array-like),形狀為 (n_classes, n_features)

各類別的平均值。

priors_類陣列 (array-like),形狀為 (n_classes,)

類別先驗機率(總和為 1)。

rotations_長度為 n_classes 的 list,其中包含形狀為 (n_features, n_k) 的 ndarray

對於每個類別 k,形狀為 (n_features, n_k) 的陣列,其中 n_k = min(n_features, 類別 k 中的元素數)。它是高斯分佈的旋轉,即其主軸。它對應於 V,它是來自 Xk = U S Vt 的 SVD 的特徵向量矩陣,其中 Xk 是來自類別 k 的樣本的中心矩陣。

scalings_長度為 n_classes 的 list,其中包含形狀為 (n_k,) 的 ndarray

對於每個類別,包含高斯分佈沿其主軸的縮放,即旋轉座標系統中的變異數。它對應於 S^2 / (n_samples - 1),其中 S 是來自 Xk 的 SVD 的奇異值對角矩陣,其中 Xk 是來自類別 k 的樣本的中心矩陣。

classes_形狀為 (n_classes,) 的 ndarray

唯一的類別標籤。

n_features_in_整數 (int)

fit 期間看到的特徵數量。

於 0.24 版本新增。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

fit 期間看到的特徵名稱。僅當 X 具有全部為字串的特徵名稱時才會定義。

於 1.0 版本新增。

另請參閱

LinearDiscriminantAnalysis

線性判別分析 (Linear Discriminant Analysis)。

範例

>>> from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis
>>> import numpy as np
>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
>>> y = np.array([1, 1, 1, 2, 2, 2])
>>> clf = QuadraticDiscriminantAnalysis()
>>> clf.fit(X, y)
QuadraticDiscriminantAnalysis()
>>> print(clf.predict([[-0.8, -1]]))
[1]
decision_function(X)[原始碼]#

將決策函數應用於樣本陣列。

決策函數等於(直到一個常數因子)模型的對數後驗,即 log p(y = k | x)。在二元分類設定中,這對應於差異 log p(y = 1 | x) - log p(y = 0 | x)。請參閱 LDA 和 QDA 分類器的數學公式

參數:
X類陣列 (array-like),形狀為 (n_samples, n_features)

樣本陣列(測試向量)。

返回:
C形狀為 (n_samples,) 或 (n_samples, n_classes) 的 ndarray

每個樣本與每個類別相關的決策函數值。在雙類別情況下,形狀為 (n_samples,),給出正類別的對數似然比。

fit(X, y)[原始碼]#

根據給定的訓練資料和參數擬合模型。

在 0.19 版本中變更: store_covariances 已移至主建構函式,並改名為 store_covariance

在 0.19 版本中變更: tol 已移至主建構函式。

參數:
X類陣列 (array-like),形狀為 (n_samples, n_features)

訓練向量,其中 n_samples 是樣本數,n_features 是特徵數。

y形狀為 (n_samples,) 的類陣列

目標值 (整數)。

返回:
self物件

已擬合的估算器。

get_metadata_routing()[原始碼]#

取得此物件的中繼資料路由。

請檢查 使用者指南 了解路由機制如何運作。

返回:
routingMetadataRequest

一個封裝路由資訊的 MetadataRequest

get_params(deep=True)[原始碼]#

取得此估算器的參數。

參數:
deepbool,預設值為 True

如果為 True,將會回傳此估算器及其包含的子物件(也是估算器)的參數。

返回:
paramsdict

參數名稱對應到其值的字典。

predict(X)[原始碼]#

對測試向量 X 陣列執行分類。

會回傳 X 中每個樣本的預測類別 C。

參數:
X類陣列 (array-like),形狀為 (n_samples, n_features)

要評分的向量,其中 n_samples 是樣本數,n_features 是特徵數。

返回:
C形狀為 (n_samples,) 的 ndarray

估計的機率。

predict_log_proba(X)[原始碼]#

回傳分類後驗機率的對數。

參數:
X類陣列 (array-like),形狀為 (n_samples, n_features)

樣本/測試向量陣列。

返回:
C形狀為 (n_samples, n_classes) 的 ndarray

每個類別分類的後驗對數機率。

predict_proba(X)[原始碼]#

回傳分類的後驗機率。

參數:
X類陣列 (array-like),形狀為 (n_samples, n_features)

樣本/測試向量陣列。

返回:
C形狀為 (n_samples, n_classes) 的 ndarray

每個類別分類的後驗機率。

score(X, y, sample_weight=None)[原始碼]#

回傳給定測試資料和標籤的平均準確度。

在多標籤分類中,這是子集準確度,因為每個樣本都必須正確預測每個標籤集,所以是一種嚴苛的度量標準。

參數:
X類陣列 (array-like),形狀為 (n_samples, n_features)

測試樣本。

y形狀為 (n_samples,) 或 (n_samples, n_outputs) 的類陣列

X 的真實標籤。

sample_weight形狀為 (n_samples,) 的類陣列,預設值為 None

樣本權重。

返回:
scorefloat

self.predict(X) 相對於 y 的平均準確度。

set_params(**params)[原始碼]#

設定此估算器的參數。

此方法適用於簡單的估算器以及巢狀物件 (例如 Pipeline)。後者的參數格式為 <component>__<parameter>,因此可以更新巢狀物件的每個元件。

參數:
**paramsdict

估算器參數。

返回:
self估算器實例

估算器實例。

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') QuadraticDiscriminantAnalysis[原始碼]#

請求傳遞至 score 方法的中繼資料。

請注意,此方法僅在 enable_metadata_routing=True 時相關(請參閱 sklearn.set_config)。請參閱 使用者指南,了解路由機制的運作方式。

每個參數的選項如下:

  • True:請求中繼資料,並在提供時傳遞給 score。如果未提供中繼資料,則會忽略該請求。

  • False:不請求中繼資料,且 meta-estimator 不會將其傳遞給 score

  • None:不請求中繼資料,如果使用者提供中繼資料,meta-estimator 將會引發錯誤。

  • str:中繼資料應該使用這個給定的別名傳遞給 meta-estimator,而不是原始名稱。

預設值 (sklearn.utils.metadata_routing.UNCHANGED) 會保留現有的請求。這允許您變更某些參數的請求,而保持其他參數不變。

在 1.3 版本中新增。

注意

此方法僅在此估計器用作 meta-estimator 的子估計器時才相關,例如在 Pipeline 內部使用。否則它沒有任何效果。

參數:
sample_weightstr、True、False 或 None,預設值為 sklearn.utils.metadata_routing.UNCHANGED

用於 scoresample_weight 參數的中繼資料路由。

返回:
self物件

更新後的物件。