5

在 sklearn.datasets.make_classification 中,类 y 是如何计算的?假设我运行他的:

from sklearn.datasets import make_classification
X, y = make_classification(n_samples=1000, n_features=2, n_informative=2,
                           n_classes=2, n_clusters_per_class=1, random_state=0)

用什么公式从 X 中得出 y?该文档在谈到信息功能时涉及到这一点:

信息特征的数量。每个类由许多高斯簇组成,每个高斯簇位于维度为 n_informative 的子空间中超立方体的顶点周围。对于每个集群,信息特征是独立于 N(0, 1) 绘制的,然后随机线性组合以增加协方差。然后将簇放置在超立方体的顶点上。

谢谢,

G

4

1 回答 1

2

y 没有计算,只是 X 中的每一行根据该行所在的类在 y 中获得一个关联的标签(注意 n_classes 变量)。如果flip_y 大于零,那么这些标签中的一些可能会被翻转,从而在标签中产生噪音。

编辑:举个例子

例如,假设您总共需要 2 个类、1 个信息特征和 4 个数据点。假设将随机生成两个类质心,它们恰好是 1.0 和 3.0。因此,围绕第一类(值 1.0)生成的每个数据点都获得标签 y=0,围绕第二类(值 3.0)生成的每个数据点都获得标签 y=1。例如,第一类的 X1 可能恰好是 1.2 和 0.7。对于第二类,这两个点可能是 2.8 和 3.1。您现在有 4 个数据点,并且您知道它们是为哪个类生成的,因此您的最终数据将是:

Y X1
0 1.2
0 0.7
1 2.8
1 3.1

如您所见,没有任何计算,您只需在随机生成数据时分配类

于 2013-08-19T14:09:23.173 回答