【问题标题】:apply KMeans to a pandas DataFrame将 KMeans 应用于 pandas DataFrame
【发布时间】:2018-11-23 22:54:07
【问题描述】:

DatasetImage

DatasetImage

#KMEANS
import collections
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.002)

kmeans=KMeans(n_clusters=2)
kmeans.fit(X_train)
labels = kmeans.predict(X_test)
//X and y in train_test_split stands for:

X=newTotalDataset.drop('identifier',axis=1)
y=newTotalDataset['identifier']

我有一个包含 44 个特征和 30000 行的数据框

打印(收藏。计数器(标签))。最后一个是一个标识符,表示该行是分配给人员 1 还是分配给人员 0。 我在训练和测试中拆分了我的数据集,并删除了我的最后一个特征。

问题是当我打印“标签”时,因为它告诉我所有行都属于第 0 个人

标签中0和1的计数器的结果是这样的: 计数器({0: 103})

这怎么可能?怎么了?

【问题讨论】:

    标签: python pandas k-means


    【解决方案1】:

    如果您在预测之前有标签,并且想要进行监督学习并且您没有使用好的算法,请查看一些模型,例如:

    • 逻辑回归
    • 随机森林分类器
    • SVM 分类器

    和其他人

    【讨论】:

    • 尝试在train_test_split中设置shuffle=True,可能你的数据是有序的
    • 是的,它有什么?
    • identifier 46364 0.0 30752 0.0 22494 0.0 18126 1.0 48860 0.0 27429 0.0 13414 1.0 8730 1.0 这些是y_train的第一行,有属于一个的行和属于0的行
    • 啊,好吧,所以你的计数器是问题
    • with shuffle=True and 25% counter is: Counter({0: 12761}) 如果我打印它只包含零的变量标签
    猜你喜欢
    • 2019-04-10
    • 2019-12-25
    • 2020-07-02
    • 2015-11-28
    • 1970-01-01
    • 2018-11-21
    • 2012-09-26
    • 2020-05-11
    • 1970-01-01
    相关资源
    最近更新 更多