compute_class_weight#

sklearn.utils.class_weight.compute_class_weight(class_weight, *, classes, y)[原始碼]#

估計不平衡資料集的類別權重。

參數:
class_weightdict, “balanced” 或 None

如果為 “balanced”,類別權重將由 n_samples / (n_classes * np.bincount(y)) 給定。如果給定字典,則鍵為類別,值為對應的類別權重。如果給定 None,則類別權重將是均勻的。

classesndarray

資料中出現的類別陣列,由 np.unique(y_org) 給定,其中 y_org 是原始類別標籤。

yarray-like,形狀為 (n_samples,)

每個樣本的原始類別標籤陣列。

返回:
class_weight_vectndarray,形狀為 (n_classes,)

陣列,其中 class_weight_vect[i] 為第 i 個類別的權重。

參考文獻

“balanced” 啟發式方法靈感來自《稀有事件數據中的邏輯迴歸》,King, Zen, 2001。

範例

>>> import numpy as np
>>> from sklearn.utils.class_weight import compute_class_weight
>>> y = [1, 1, 1, 1, 0, 0]
>>> compute_class_weight(class_weight="balanced", classes=np.unique(y), y=y)
array([1.5 , 0.75])