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)[source]#

生成一个随机的多标签分类问题。

对于每个样本,生成过程如下:
  • 选择标签数量:n ~ Poisson(n_labels)

  • n 次,选择一个类别 c:c ~ Multinomial(theta)

  • 选择文档长度:k ~ Poisson(length)

  • k 次,选择一个词 w: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 中新增: 允许 sparse 输出的参数。

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

如果为 'dense',则以密集二进制指示器格式返回 Y。如果为 'sparse',则以稀疏二进制指示器格式返回 YFalse 返回标签列表的列表。

return_distributionsbool, default=False

如果为 True,返回先验类别概率和给定类别的特征条件概率,数据就是从中抽取的。

random_stateint, RandomState instance or None, default=None

确定数据集创建的随机数生成。传递一个 int 值以在多次函数调用中获得可重现的输出。请参阅词汇表

返回:
Xndarray of shape (n_samples, n_features)

生成的样本。

Y{ndarray, sparse matrix} of shape (n_samples, n_classes)

标签集。稀疏矩阵应为 CSR 格式。

p_cndarray of shape (n_classes,)

抽取每个类别的概率。仅当 return_distributions=True 时返回。

p_w_cndarray of shape (n_features, n_classes)

给定每个类别的每个特征被抽取的概率。仅当 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])]