在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
发布于 2013-08-19 14:09:23
不计算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正如您所看到的,没有任何计算,您只需在随机生成数据时分配类。
https://stackoverflow.com/questions/18259372
复制相似问题