几种聚类算法原理简述:kmeans(以及++),DBSCAN,层次聚类

kmeans和kmeans++

参数:k(聚类个数)

  1. 随机选取K个中心点。(KMEANS++会在选取一个中心点后更倾向于去选择离选定中心点更远的)
  2. 计算其他点离哪个中心点更近,就算做哪一簇。
  3. 计算每个新簇的新中心点(取平均)。
  4. 重新调整除中心点外的归属情况。
  5. 直到每次分簇情况相同或者中心点收敛。

DBSCAN

参数:MINPTS,r

  • 某个点要成为中心点,他需要有多少个在以这个点为圆心,r为半径的圆内。
  1. 随机选一个点。
  2. 若点满足上述要求,可以作为中心点,标记。若不满足,标记为噪声点。
  3. 对中心点邻域(上述中心点为圆心的圆)的任何点,若也满足成为中心点的点,也标记,加入中心点邻域内。
  4. 直到所有的点都被标记。

层次聚类

参数:簇的个数K

  • 把数据集中的每个数据看作一个簇。
  • 每次找到距离相近的两个簇合并为一个。
  • 直到合并数量达到参数K。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
由于缺乏相关的数据集和代码,我们只能给出一些参考代码,供您参考。 首先,我们需要加载鸢尾花数据集: ```python from sklearn.datasets import load_iris iris = load_iris() X = iris.data y = iris.target ``` 然后,我们可以使用Kmeans算法进行聚类: ```python from sklearn.cluster import KMeans kmeans = KMeans(n_clusters=3) kmeans.fit(X) y_pred = kmeans.predict(X) ``` 接下来,我们可以使用SC和DBI聚类算法评价指标来评估聚类结果: ```python from sklearn.metrics import silhouette_score, davies_bouldin_score print("Silhouette Score: ", silhouette_score(X, y_pred)) print("Davies Bouldin Score: ", davies_bouldin_score(X, y_pred)) ``` 类似地,我们可以使用层次聚类算法进行聚类: ```python from sklearn.cluster import AgglomerativeClustering agg = AgglomerativeClustering(n_clusters=3) y_pred = agg.fit_predict(X) ``` 然后,我们可以再次使用SC和DBI聚类算法评价指标来评估聚类结果: ```python print("Silhouette Score: ", silhouette_score(X, y_pred)) print("Davies Bouldin Score: ", davies_bouldin_score(X, y_pred)) ``` 最后,我们可以使用DBSCAN算法进行聚类: ```python from sklearn.cluster import DBSCAN dbscan = DBSCAN() y_pred = dbscan.fit_predict(X) ``` 然后,我们可以再次使用SC和DBI聚类算法评价指标来评估聚类结果: ```python print("Silhouette Score: ", silhouette_score(X, y_pred)) print("Davies Bouldin Score: ", davies_bouldin_score(X, y_pred)) ``` 通过比较这些指标,我们可以得出不同算法对鸢尾花数据集的聚类效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值