建立多標籤分類 (make_multilabel_classification)#

sklearn.datasets.make_multilabel_classification(n_samples=100, n_features=20, *, n_classes=5, n_labels=2, length=50, allow_unlabeled=True, sparse=False, return_indicator='dense', return_distributions=False, random_state=None)[原始碼]#

產生隨機多標籤分類問題。

對於每個樣本,生成過程如下
  • 挑選標籤數量:n ~ Poisson(n_labels)

  • n次,選擇一個類別c:c ~ Multinomial(theta)

  • 挑選文件長度:k ~ Poisson(length)

  • k次,選擇一個詞:w ~ Multinomial(theta_c)

在上述過程中,使用拒絕抽樣來確保n永遠不為零或大於 n_classes,且文件長度永遠不為零。同樣地,我們拒絕已經選擇的類別。

有關使用範例,請參閱 繪製隨機產生的多標籤資料集

請在使用者指南中閱讀更多內容。

參數:
n_samplesint, default=100

樣本數量。

n_featuresint, default=20

特徵總數。

n_classesint, default=5

分類問題的類別數量。

n_labelsint, default=2

每個實例的平均標籤數量。更精確地說,每個樣本的標籤數量是從泊松分佈中抽取的,其期望值為n_labels,但樣本會被n_classes限制(使用拒絕抽樣),如果allow_unlabeled為False,則必須為非零。

lengthint, default=50

特徵總和(如果是文件,則為字數)是從泊松分佈中抽取的,其期望值為此值。

allow_unlabeledbool, default=True

如果 True,則某些實例可能不屬於任何類別。

sparsebool, default=False

如果True,則返回稀疏特徵矩陣。

0.17 版本新增: 參數以允許稀疏輸出。

return_indicator{‘dense’, ‘sparse’} 或 False, default=’dense’

如果'dense',則以密集二進制指示符格式返回Y。如果 'sparse',則以稀疏二進制指示符格式返回 YFalse 返回標籤列表的列表。

return_distributionsbool, default=False

如果 True,則返回先驗類別機率和給定類別的特徵條件機率,資料由此產生。

random_stateint, RandomState 實例或 None, default=None

決定資料集建立的隨機數字產生。傳遞一個整數以在多個函數呼叫中獲得可重複的輸出。請參閱 詞彙表

回傳:
X形狀為 (n_samples, n_features) 的 ndarray

產生的樣本。

Y形狀為 (n_samples, n_classes) 的 {ndarray, 稀疏矩陣}

標籤集。稀疏矩陣應為CSR格式。

p_c形狀為 (n_classes,) 的 ndarray

每個類別被抽取的機率。僅當 return_distributions=True 時返回。

p_w_c形狀為 (n_features, n_classes) 的 ndarray

每個特徵在給定每個類別的情況下被抽取的機率。僅當 return_distributions=True 時返回。

範例

>>> from sklearn.datasets import make_multilabel_classification
>>> X, y = make_multilabel_classification(n_labels=3, random_state=42)
>>> X.shape
(100, 20)
>>> y.shape
(100, 5)
>>> list(y[:3])
[array([1, 1, 0, 1, 0]), array([0, 1, 1, 1, 0]), array([0, 1, 0, 0, 0])]