最近我正在进行细分项目,最初我使用R中的KMeans集群开发了集群模型。我很满意这些结果,R为我的数据创建了良好的差异化组。现在我需要将我的代码迁移到Python2.7中。我也为Python提供相同且精确的输入数据(缩放和删除异常值)。但python没有正确区分群体。我正在使用scikit.learn KMeans方法。我给出了两个变量探索摘要和簇号。
这是我的R代码:
library(cluster)
set.seed(4) #4 works
clusters_result <- kmeans(dataset,centers=6, iter.max = 10,nstart = 20)
R输出
cluster total_pages photo_pages n rel.freq
1 1 57.7 4.4 19789 13.357138
2 2 243.5 0.5 18651 12.589013
3 3 24.2 0.1 41040 27.701093
4 4 16.4 6.6 14613 9.863452
5 5 66.6 0.1 37131 25.062604
6 6 7.4 0.2 16929 11.426701
Python代码:
from sklearn.cluster import KMeans
model = KMeans(n_clusters=6,init='random', random_state=1, n_init=2, max_iter=10)
clusters_result = model.fit(scale(dataset))
Python输出
Out[1706]:
cluster total_pages photo_pages n
0 0 49.7 1.0 25257
1 1 44.4 8.0 15862
2 2 55.4 0.0 20147
3 3 154.1 0.0 22454
4 4 43.9 0.0 38522
5 5 49.5 0.0 25911
我使用R代码运行多次,并且总是得到相同类型或非常相似的输出。我也用Python做过,但结果却不尽如人意。 有人可以帮我解决Python的问题吗?