y 来自 sklearn.datasets.make_classification

ADJ*_*ADJ 5 python scikit-learn

在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)
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢,

G

And*_*bas 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
Run Code Online (Sandbox Code Playgroud)

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