如何在求K的最佳值时设置K的取值范围?

2024-04-26 23:35:19 发布

您现在位置:Python中文网/ 问答频道 /正文

当KMeans算法对大型数据集进行聚类时,为了找到K的最佳值,我们可以使用以下代码段:

model = KMeans()
visualizer = KElbowVisualizer(model, k=(min_value, max_value), timings=False, locate_elbow=True)  
visualizer.fit(data)
no_of_clusters= visualizer.elbow_value_

在这里,我们指定一个范围(最小值和最大值),在这个范围内我们应该得到K值。对于大型数据集(例如:100万行),如何找到这些范围的最佳组合,以便节省大量执行时间?你知道吗


Tags: 数据算法falsemodelvalue代码段聚类min
3条回答

关于如何得出K的合理范围的好问题。 有几个场景你想把你的问题放在其中。你知道吗

场景1:我们知道业务上下文,即结果如何有用。比如说,如果我们试图把国家分成一些集群——发展中国家、发达国家和欠发达国家。这里我们知道由商业驱动的价值的大致范围。在这种情况下,您可以考虑将范围增加几个簇。你知道吗

场景2:我们对集群的业务用途知之甚少。在这种情况下,您可以尝试对K的每个值使用轮廓分数等度量,并在找到最大轮廓分数的值处停止。 这里有一个小小的调整,就是每次将K的值增加2/3,而不是1,以防你看到的簇数在10秒左右

https://scikit-learn.org/stable/modules/generated/sklearn.metrics.silhouette_score.html

在回答这个问题之前,数据科学是你的直觉与试错。我们一次也得不到解决办法。 使用轮廓评分来评估K的最佳值。 或者 一次使用3个值&计算轮廓分数&然后查看它们是否为您提供了良好的分数。你知道吗

实际上,决定集群主要取决于您的应用程序。你知道吗

但就我而言,我遵循以下价值观: 1对于小数据和不太关键的应用程序:Kmin=2和Kmax=10 2对于小数据和更关键的应用程序:Kmin=2和Kmax=max最多20 三。对于大数据和不太关键的应用程序:Kmin=2,Kmax=5-10 4对于大数据和更关键的应用程序:Kmin=2和Kmax=10-15

无论如何不要超过30岁。你知道吗

相关问题 更多 >