Python 来自sklearn.datasets.make_分类的y

Python 来自sklearn.datasets.make_分类的y,python,scikit-learn,Python,Scikit Learn,在sklearn.datasets.make_分类中,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)

在sklearn.datasets.make_分类中,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_维子空间中超立方体顶点周围。对于每个聚类,信息特征独立于N(0,1)绘制,然后随机线性组合以添加协方差。然后将簇放置在超立方体的顶点上

谢谢


G

不计算y,只是X中的每一行根据该行所在的类在y中获得一个相关标签(注意n_classes变量)。如果“翻转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

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

我不确定我是否在跟踪您。我已经生成了一个数据集,包含2个信息特性和2个类。下面是类0和类1的示例。y=0,X1=1.67944952 X2=-0.889161403。y=1 X1=-2.431910137 X2=2.476198588。我想了解应用于X1和X2以生成y的函数。这不是随机的,因为我可以用模型预测y的90%。是XOR吗?它是确定性的还是一些协方差的引入使得它更复杂?