【发布时间】:2021-09-17 23:09:02
【问题描述】:
我正在尝试在我的二元分类任务中实现 K-Means 算法,但我无法绘制结果两个集群的散点图。
我的数据集只是以下形式:
# size, class
312, 1
319 1
227 0
最小的例子:
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.cluster import KMeans
X = {'size': [312,319,227,301,273,311,277,291,303,381], 'class': [1,1,0,1,0,1,0,0,1,1]}
X = pd.DataFrame(data=X)
X_train, X_test, y_train, y_test = train_test_split(X['size'], X['class'], test_size=0.4)
X_train = X_train.values.reshape(-1,1)
X_test = X_test.values.reshape(-1,1)
kmeans = KMeans(init="k-means++", n_clusters=2, n_init=10, max_iter=300, random_state=42)
kmeans.fit(X_train)
preds = kmeans.predict(X_test)
如何根据预测“preds”绘制散点图,显示两个聚类、“X_test”中的样本和相应颜色(0 和 1)?
【问题讨论】:
-
您是否遇到任何特定错误?您能否就您面临的问题添加一些详细信息。另外,为什么要将 df 拆分为 X 和 Y。Kmeans 是一种无监督学习,通常没有监督学习模型的目标值(目标为 y)。
-
感谢@heretolearn 的回答。我知道这是一种无监督的方法,但我只是想看看我是否可以根据“大小”特征对数据进行分类,并且我想通过比较真实标签来评估聚类的成功程度。我遇到了有关数据形状的错误。
-
this approach 能解决你的问题吗?
标签: python pandas scikit-learn cluster-analysis k-means