大师兄的数据分析学习笔记(二十五):聚类(一)

手机游戏开发者 2024-9-25 08:33:50 99 0 来自 中国
大师兄的数据分析学习笔记(二十四):回归树与提升树
大师兄的数据分析学习笔记(二十六):聚类(二)
一、监督学习和无监督学习


  • 分类回归都属于监督学习监督学习的特点是有标注
  • 所谓标注也就是数据的特征,不管是分类还是回归都是通过标注进行区分数据。
  • 无监督学习没有标注,所以无监督学习的目的就是给数据加上标注
  • 进行标注的原则是,加过标注后的数据应该尽可能相似,而不同标注内的数据应该尽可能不同。
  • 由于目的不同,方法不同,标注数据的方式也不同,所以会有多种算法用于实现标注
  • 无监督学习中,常用的两种方法是聚类关联规则
二、关于聚类


  • 聚类是将集合分成类似的对象组成的多个类的过程。
  • 聚类中,常用四种算法:

  • 基于切割的K-means聚类算法。
  • 基于层次的聚类算法。
  • 基于密度的DBSCAN聚类算法。
  • 基于图的Split聚类算法。
三、K-means算法



  • K-means算法的思路是:所有类都有一个中心,属于一个类的点到它的中心的距离比其它类离中心更新。
  • 这样就会牵扯到两个问题:


  • 如何定义中心:取数据各维度的均值。
  • 如何衡量距离:欧式距离方法


  • K指确定分类的数目,means指不断取均值,算法:

  • 从n个样本中随机选取k个作为初始化的质心;

    2.png
  • 对每个样本测量其到每个质心的距离,并把它归到最近的质心的类;


  • 重新计算已经得到的各个类的质心;

    4.png
  • 迭代2-3直到新的质心与原质心相等或小于指定阈值。


  • K-means算法的问题:

  • 初始质心位置可能会影响最终聚类的结果。
    解决:多次尝试,取最稳定的结果。
  • 个别离群值会影响整理聚类的效果。
    5.png
    解決:将取质心换成取中点(转换为K-Medoids算法)
  • 必须要指定K
    解决:借鉴其它衡量因子辅助(如轮廓系数)
>>>import numpy as np>>>import matplotlib.pyplot as plt>>>from sklearn.datasets import make_circles,make_blobs,make_moons>>>from sklearn.cluster import KMeans>>>n_samples = 1000>>>circles = make_circles(n_samples=n_samples,factor=0.5,noise=0.05)>>>moons = make_moons(n_samples=n_samples,noise=0.05)>>>blobs = make_blobs(n_samples=n_samples,random_state=8)>>>random_data = np.random.rand(n_samples,2),None>>>colours = "bgrcmyk">>>data = [circles,moons,blobs,random_data]>>>models = [("None",None),("Kmeans",KMeans(n_clusters=3))]>>>fig = plt.figure()>>>for inx,clt in enumerate(models):>>>    clt_name,clt_entity = clt>>>    for i,dataset in enumerate(data):>>>        X,Y = dataset>>>        if not clt_entity:>>>            clt_res = [0 for item in range(len(X))]>>>        else:>>>            clt_entity.fit(X)>>>            clt_res = clt_entity.labels_.astype(int)>>>        fig.add_subplot(len(models),len(data),inx*len(data)+i+1)>>>        plt.title(clt_name)>>>        [plt.scatter(X[p,0],X[p,1],color=colours[clt_res[p]]) for p in range(len(X))]>>>plt.show() 6.png
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-18 16:46, Processed in 0.196064 second(s), 35 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表