Aka*_*mar 3 python cluster-analysis machine-learning k-means scikit-learn
我试图根据某个给定的数据集对客户进行分组,其中包含出生日期、性别、州、pincode、transaction_id、promocode 等属性。
每次运行该算法时,聚类的轮廓分数与前一个聚类的轮廓分数都会有巨大差异,即结果不一致。这可能是因为数据集的随机种子。这是将属性传递给算法的行。
km1 = KMeans(n_clusters=6, n_init=25, max_iter = 600)
Run Code Online (Sandbox Code Playgroud)
有没有什么方法可以分配集群或优化,以便每次运行程序后,分数都一致且更好?
我正在使用 Python 3 和 scikit-learn。
它看起来(我猜)就像您正在使用scikit-learn。
在这种情况下,只需使用:
km1 = KMeans(n_clusters=6, n_init=25, max_iter = 600, random_state=MYSEED)
Run Code Online (Sandbox Code Playgroud)
其中MYSEED
可以是整数、RandomState 对象或 None(默认),如上面链接中所述。
这意味着:
km1 = KMeans(n_clusters=6, n_init=25, max_iter = 600, random_state=0)
Run Code Online (Sandbox Code Playgroud)
正在引发确定性结果。
备注:这仅影响 k 均值随机性质。如果您对数据进行了一些分割/CV,则也必须使这些操作具有确定性!
归档时间: |
|
查看次数: |
20197 次 |
最近记录: |