python+sklearn实现均值漂移算法

python+sklearn实现均值漂移算法,第1张

概述本文所用文件的链接链接:https://pan.baidu.com/s/1RWNVHuXMQleOrEi5vig_bQ提取码:p57s均值漂移算法  首先嘉定样本空间中的每个聚类均服从某种已知的概率分布规则,然后用不同的概率密度函数拟合样本中的统计直方图,不断移动密度函数的中心位置,直到获得最佳拟合效果 本文所用文件的链接

链接:https://pan.baIDu.com/s/1RWNVHuXMQleOrEi5vig_bQ
提取码:p57s

均值漂移算法

  首先嘉定样本空间中的每个聚类均服从某种已知的概率分布规则, 然后用不同的概率密度函数拟合样本中的统计直方图, 不断移动密度函数的中心位置, 直到获得最佳拟合效果为止.这些概率密度函数的峰值点就是聚类的中心, 再根据每个样本距离各个中心的距离, 选择最近的聚类中心所属的类别作为该样本的类别.

均值漂移算法的特点:

聚类数不必事先已知, 算法会自动识别出统计直方图的中心数量.聚类中心不依据于最初假定, 聚类划分的结果相对稳定.样本空间应该服从某种概率分布规则, 某则算法的准确性将会大打折扣.

均值漂移相关的API:

# x: 输入 n_samples: 样本数量# quantile: 量化宽度 (直方图一条的宽度)bw = sc.estimate_banDWIDth(    x, n_samples=len(x), quantile=0.1)# 构建均值漂移模型model = sc.MeanShift(banDWIDth=bw)

案例: multiple3.txt

"""demo05_meanshift.py 均值漂移"""import numpy as npimport sklearn.cluster as scimport matplotlib.pyplot as mpx = np.loadtxt('../ml_data/multiple3.txt', 	delimiter=',')# 均值漂移实现聚类划分bw = sc.estimate_banDWIDth(	x, n_samples=len(x), quantile=0.2)model = sc.MeanShift(banDWIDth=bw)model.fit(x)centers = model.cluster_centers_print(centers)pred_y = model.predict(x)# 划分聚类边界l, r = x[:, 0].min()-1, x[:, 0].max()+1b, t = x[:, 1].min()-1, x[:, 1].max()+1n = 500grID_x, grID_y = np.meshgrID(	np.linspace(l, r, n),	np.linspace(b, t, n))mesh_x = np.column_stack((grID_x.ravel(), 	grID_y.ravel()))pred_mesh_y = model.predict(mesh_x)grID_z = pred_mesh_y.reshape(grID_x.shape)mp.figure('MeanShift', facecolor='lightgray')mp.Title('MeanShift', Fontsize=16)mp.xlabel('X',Fontsize=14)mp.ylabel('Y',Fontsize=14)mp.tick_params(labelsize=10)mp.pcolormesh(grID_x,grID_y,grID_z,cmap='gray')mp.scatter(x[:,0], x[:,1], c=pred_y, cmap='jet',		label='points')# 绘制聚类中心点mp.scatter(centers[:,0], centers[:,1],	marker='+', s=230, c='orangered')mp.legend()mp.show()

总结

以上是内存溢出为你收集整理的python+sklearn实现均值漂移算法全部内容,希望文章能够帮你解决python+sklearn实现均值漂移算法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1159678.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存