如何在 SciKit-Learn Python 的 KNN 模型中识别每个集群内的记录?
How can I identify the records inside each cluster in a KNN model in SciKit-Learn Python?
我正在制作一个 KNN 模型。目标变量分为2类,特征是3个分类变量(国家、语言和公司)。模型说最优是 5 个簇,所以我用 5 个簇来做。
我需要知道如何查看 5 个集群中每个集群中的记录(我的意思是,模型在每个集群中分组的国家、语言和公司)。有没有办法将集群的标签添加到数据框?
我试过:
预测 = knn.predict(特征)
但这只是返回目标变量的 2 个标签的估计值
我做了一些研究,发现:
km.labels_
但这只适用于 KMeans,而我使用的是 KNN
我希望有人能告诉我这方面的等价物或如何解决 KNN 模型的问题
是的,总是可以匹配回来的。
predictions = knn.predict(features)
y_test['preds'] = predictions
df_out = pd.merge(df,y_test[['preds']],how = 'left',left_index = True, right_index = True)
如果您的数据框名为 df,这应该可以。
KNN不是聚类,而是分类。
参数k
不是k-means的k
;它是邻居的数量而不是集群的数量...
因此,将k设置为5 dors不会突然产生5个标签。您的训练数据有 2 个标签,因此您得到 2 个标签。
KNN = k-最近邻分类。对于 k=5 这意味着 5 个最近的邻居。
K 均值聚类 = 用 k 个中心向量近似数据。完全不同的 k
.
我正在制作一个 KNN 模型。目标变量分为2类,特征是3个分类变量(国家、语言和公司)。模型说最优是 5 个簇,所以我用 5 个簇来做。
我需要知道如何查看 5 个集群中每个集群中的记录(我的意思是,模型在每个集群中分组的国家、语言和公司)。有没有办法将集群的标签添加到数据框?
我试过: 预测 = knn.predict(特征)
但这只是返回目标变量的 2 个标签的估计值
我做了一些研究,发现: km.labels_
但这只适用于 KMeans,而我使用的是 KNN
我希望有人能告诉我这方面的等价物或如何解决 KNN 模型的问题
是的,总是可以匹配回来的。
predictions = knn.predict(features)
y_test['preds'] = predictions
df_out = pd.merge(df,y_test[['preds']],how = 'left',left_index = True, right_index = True)
如果您的数据框名为 df,这应该可以。
KNN不是聚类,而是分类。
参数k
不是k-means的k
;它是邻居的数量而不是集群的数量...
因此,将k设置为5 dors不会突然产生5个标签。您的训练数据有 2 个标签,因此您得到 2 个标签。
KNN = k-最近邻分类。对于 k=5 这意味着 5 个最近的邻居。
K 均值聚类 = 用 k 个中心向量近似数据。完全不同的 k
.