当前位置:   article > 正文

机器学习笔记——K-means算法

机器学习笔记——K-means算法

之前的笔记因为重装系统全没了,因此试试在线保存。

K-means算法是无监督学习中的一种,

流程包括:

1. 随机设置K个聚类中心。

2. 对所有点按照到聚类中心的距离进行分类。

3.分别对K类,取类中的平均值作为新的聚类中心。

4.若新聚类中心和上次聚类中心一致,则停止;否则重复步骤2。

调包实现K-means算法:

参考视频:15-KMeans算法原理_哔哩哔哩_bilibili​​​​​​

  1. import pandas as pd
  2. from sklearn.decomposition import PCA
  3. from sklearn.cluster import KMeans
  4. from sklearn.metrics import silhouette_score
  5. # 1、获取数据,数据来源http://yun.itheima.com/course/500.html?bili
  6. order_products = pd.read_csv("./instacart/order_products__prior.csv")
  7. products = pd.read_csv("./instacart/products.csv")
  8. orders = pd.read_csv("./instacart/orders.csv")
  9. aisles = pd.read_csv("./instacart/aisles.csv")
  10. # 合并aisles和products aisle和product_id
  11. tab1 = pd.merge(aisles, products, on=["aisle_id", "aisle_id"])
  12. tab2 = pd.merge(tab1, order_products, on=["product_id", "product_id"])
  13. tab3 = pd.merge(tab2, orders, on=["order_id", "order_id"])
  14. # 3、找到user_id和aisle之间的关系
  15. table = pd.crosstab(tab3["user_id"], tab3["aisle"])
  16. data = table[:10000]
  17. # 4、PCA降维
  18. # 1)实例化一个转换器类
  19. transfer = PCA(n_components=0.95)
  20. # 2)调用fit_transform
  21. data_new = transfer.fit_transform(data)
  22. # 预估器
  23. estimator = KMeans(n_clusters=3)
  24. estimator.fit(data_new)
  25. y_predict = estimator.predict(data_new)
  26. # 模型评估-轮廓系数
  27. print(f"轮廓系数:{silhouette_score(data_new, y_predict)}")

运行结果: 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/683654
推荐阅读
相关标签
  

闽ICP备14008679号