聚类分析imooc

无监督学习

无监督学习是机器学习的一种方法,没有给定实现标记过的训练示例,自动对输入的数据进行分类或分群
优点:

  • 不受监督信息的约束,可能考虑到新的信息
  • 不需要标签数据,极大程度扩大数据样本

主要应用:聚类分析、关联规则、维度缩减
应用最广:聚类分析(clustering)

常用的聚类算法

KMeans聚类:

  • 根据数据与中心点距离划分类别
  • 基于类别数据更新中心点
  • 重复过程直到收敛

特点:实现简单、收敛块;需要指定类别数量

  • KMeans实现聚类
#模型训练
from sklearn.cluster import KMeans
KM = kMeans(n_cluster=3,random_state=0) #类别数量为3,randon_state=0可使训练结果保持一致
KM.fit(X)
#获取模型确定的中心点
centers = KM.cluster_centers_
#准确率的计算:
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y,y_predict)
  • 类别对应不一致时需要对预测结果进行矫正
#结果矫正:
y_cal = []
for i in y_predict:
	if i == 0:
		y_cal.append(2)
	elif i == 1:
		y_cal.append(1)
	else: 
		y_cal.append(0)
print(y_predict,y_cal)

DBSCAN算法:

  • 基于区域点密度筛选有效数据
  • 基于有效数据向周边扩张,直到没有新点加入

特点:

  • 过滤噪音数据
  • 不需要人为选择类别数量
  • 数据密度不同时影响结果

K均值聚类:
K-均值算法:以空间中k个点为中心进行聚类,对最靠近他们的对象归类,是聚类算法中最为基础但也最重要的算法
在这里插入图片描述K均值聚类:
算法流程:

  1. 选择聚类的个数k
  2. 确定聚类中心
  3. 根据点到聚类中心聚类确定各个点所属类别
  4. 根据各个类别数据更新聚类中心
  5. 重复以上步骤直到收敛(中心点不再变化)

优点:

  • 原理简单,实现容易,收敛速度快
  • 参数少

缺点:

  • 设置簇的数量
  • 随机选择初始聚类中心,结果可能缺乏一致性

K近邻分类模型(KNN)
给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例(也就是K个邻居),这K个实例的多数属于某个类,就把该输入实例分类到这个类中(最简单的机器学习算法之一

  • KNN实现分类(模型训练)
  • from sklearn.neighbors import KNeighborsClassifier
  • KNN = KNeighborsClassifier(n_neighbors = 3)
  • KNN.fit(X,y)

均值漂移聚类
均值漂移算法:一种基于密度梯度上升的聚类算法(沿着密度上升方向寻找聚类中心点)

在这里插入图片描述算法流程:

  1. 随机选择未分类点作为中心点
  2. 找出离中心距离在带宽之内的点,记作集合S
  3. 计算从中心点到集合S中每个元素的偏移向量M
  4. 中心点以向量M移动
  5. 重复2-4,直到收敛
  6. 重复1-5直到所有的点都被归类
  7. 分类:根据每个类,对每个点的访问频率,取访问频率最大的那个类,作为当前点集的所属类

Meanshift实现聚类

#自动计算带宽(区域半径)
from sklearn.cluster import MeanShift,estimate_bandwidth
#detect bandwidth
bandwidth = estimate_bandwidth(X,n_sample = 500)
#模型建立与训练
ms = MeanShift(bandwidth = bandwidth)
ms.fit(X)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杰杰批

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值