无监督学习——kmeans
来源:互联网 发布:全球进化 知乎 编辑:程序博客网 时间:2024/05/01 23:16
关键词:聚类,K-means,scikit-learn,python
摘要:本文主要介绍聚类、K-means的概念和结果评估,以及使用python进行聚类分析的方法;
要点总结
了解无监督学习以及聚类概念;
K-means的实现过程,肘部法则确定超参数
K
,利用平均畸变程度和轮廓系数评估聚类效果;
基本概念
聚类(clustering)
属于无监督学习,可以找出不带标签数据的相似性的算法;
概念:将更具相似性的样本归为一类(cluster),同组中的样本比其他租的样本更相似;
应用:市场调查中对用户分组、社交网络识别社区、推荐系统、寻找相似模式的基因组;
K-means聚类算法
实现过程:
- 指定聚类的数量
K - 初始化,指定第
k 个类的重心位置uk ;(实际中,为避免局部最优解,需要从不同位置开始初始化,取最小成本函数对应的重心位置作为初始化位置) - 遍历每一个元素
xi ,计算该元素到各个类重心uk 的距离,将该元素划分到距其最近的类; - 计算重新生成类的重心;
- 重复3-4,直至各个类的重心位置不再变化(成本函数值的差达到了限定值,或者前后两次迭代的重心位置变化达到了限定值);
- 指定聚类的数量
超参数K:表示类的数量,需要人为指定,K-means不能决定要分几个类;
肘部法则(elbow method): 可用于估计聚类数量;把不同K值的成本函数值画出来,找出K值增大过程中,畸变程度下降幅度最大的位置所对应的K值(即为肘部);
参数:类的重心位置和其内部观测值的位置;
成本函数:各个类畸变程度(distortions)之和;每个类的畸变程度等于该类重心与其内部成员位置距离的平方和;最优解以成本函数最小化为目标,其中
uk 是第k 个类的重心位置;J=∑k=1K∑i∈Ck|xi−uk|2 效果评估-轮廓系数(silhouette Coeffient):类的密集与分散程度的评价指标;其中
a 是每个类中样本彼此距离的均值,b 是一个类中样本与其最近的那个类的所有样本的距离的均值;s=bamax(a,b)
Python使用
numpy
类numpy.random.uniform(low,high,(dimension,number))
生成随机正态分布数组(dimension行,number列)- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
numpy.hstack((array1,array2))
用来将array1
和array2
水平拼接起来- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
将两个一维数组转化为一个二维数组
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
sklearn
计算聚类聚类模型生成
- 1
- 2
- 3
利用
scipy.spatial.distance.cdist
计算平均畸变程度- 1
- 2
- 3
- 4
计算轮廓系数
- 1
- 2
matplotlib
库figsize
设置图片大小- 1
- 2
将不同类的元素绘制成不同的颜色和标记
- 1
- 2
- 3
- 4
- 5
- 6
Python实例
聚类和平均畸变程度计算
生成用来聚类分析的两组数并显示
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
聚类分析,计算平均畸变程度
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
计算轮廓系数
输入数据整理
- 1
- 2
- 3
- 4
显示样本点
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
计算并输出轮廓系数
阅读全文
0 0
- 无监督学习——kmeans
- 无监督机器学习的kmeans思想介绍
- 聚类(序)——监督学习与无监督学习
- 聚类——监督学习与无监督学习
- 聚类——监督学习与无监督学习
- 聚类(序)——监督学习与无监督学习
- 聚类(序)——监督学习与无监督学习
- 聚类(序)——监督学习与无监督学习
- 聚类(序)——监督学习与无监督学习
- 机器学习——监督学习,半监督学习,无监督学习,主动学习
- 神经网络学习——有监督vs无监督
- 监督学习?无监督学习?
- 监督学习&无监督学习
- 机器学习入门—无监督学习、监督学习、强化学习概念及算法介绍
- 机器学习(十六)无监督学习、聚类和KMeans聚类
- 机器学习两种方法——监督学习和无监督学习(通俗理解)
- 机器学习基础(五十七)—— 监督学习、无监督学习
- 机器学习笔记—-监督学习与无监督学习的异同
- Eclipse同域请求配置
- redhat重设root密码
- ionic左滑删除
- 模块化程序设计之自顶向下、逐步求精
- 记忆,jQuery的click方法和on方法(on方法,有很多种使用,如on的change)?
- 无监督学习——kmeans
- 基础练习 龟兔赛跑预测
- 调用微信和支付宝第三方接口方法总结
- 剑指offer第27题(字符串排列)
- lintcode&九章算法——No.11 二叉查找树中搜索区间 ? 待解决
- tomcat出现的问题 8005 10106
- jdk的动态代理及为什么需要接口
- 欢迎使用CSDN-markdown编辑器
- java web中url问号传值,中文乱码问题