使用scikit中的聚类
来源:互联网 发布:java文件流转文件 编辑:程序博客网 时间:2024/06/15 13:06
这是一次数据实验。基于七月算法邹博讲义和scikit-lean官网。
聚类:就是对大量未知标注的数据集,按数据的内在相似性将数据划分为多个类别,使得类别内的数据相似性较大而类别间的相似性较小。
1 k-means算法
参数:聚类的数目
描述:k-means将 包含N个样本量的数据集X,分到不相交的聚类C中。每个聚类由样本的平均值决定,通常这个平均值被称为质心(中心点)。k-means算法就是要寻找质心,使得簇内平方和最小。k-均值通常被称为劳埃德算法。
步骤:假定输入样本
1 选择初始的k个类别中心
2 对于每个样本
3 将每个类别中心更新为 所有属于这个类别的样本的均值
4 重复步骤2 和 3 ,直到符合退出条件。
5 退出条件可以是:一定的迭代次数;簇中心变化率;最小平方误差。
注意:
0 k-means最后获得的是局部最优解。
1 前提假设聚类是凸的,并且是同质的(各向同性的)。在遇到细长的形状、不规则流形状的时候是无效的。
2 衡量数据相似度的计算方法有很多:欧氏距离、杰卡德相似系数、余弦相似度、Pearson相似系数、Hellinger距离等。
3 高纬度灾难,当样本维数很高的时候,计算量很大,这时候可以先用PCA,之后再调用k-means。
4 算法效果高度依赖初始簇中心点的选择。在scikit-learn中可以使用k-means++选择质心,这样选择质心相互距离会比较远,好于随机选择。
5 在scikit-learn有一个参数:n_jobs,可以指定处理器个数。默认值是1;n_jobs=-1,使用所有的处理器;n_jobs=-2,有一个处理器不使用。并行处理在X 系统下会出问题。
6 对异常点(噪音)的处理能力差。
Mini Batch K-Means
MiniBatchKMeans是KMeans的变种。不同之处是每次从样本集中随机选择一小部分样本进行计算,以减少运行时间。
试验
1执行iris.data看效果。不同的聚类数目,不同的迭代次数。(我显然理解不了这个效果)。
2 执行digitsdateset。比较了初始值选用:k-means++,random,pca选择的主成分三种方法的效果。
聚类效果评价
1 Adjusted Rand index(ARI)
2 Mutual Information based scores(AMI)
3 homogeneity
4 completeness
5 V-measure
6 Fowlkes-Mallows scores
7 Silhouette Coefficient
8 Calinski-Harabaz Index
继续试验
1文本聚类
- 使用scikit中的聚类
- 使用scikit-learn生成聚类数据
- 使用scikit-learn 0.18中的警告
- scikit-learn Adaboost类库使用小结
- scikit-learn Adaboost类库使用小结
- scikit-learn Adaboost类库使用小结
- k-means+python︱scikit-learn中的KMeans聚类实现( + MiniBatchKMeans)
- k-means+python︱scikit-learn中的KMeans聚类实现( + MiniBatchKMeans)
- k-means+python︱scikit-learn中的KMeans聚类实现( + MiniBatchKMeans)
- scikit-learn中的SVM
- Scikit 中的乐趣
- scikit -learn 的使用
- Scikit-Learn使用总结
- 初步使用scikit-learn
- Scikit-learn使用总结
- Scikit-learn使用总结
- Scikit-learn使用总结
- Scikit-learn使用总结
- springcloud----Zuul动态路由
- Ubuntu adb 找不到设备的解决方法
- rex资源文件详解
- 深入OpenVPN的配置
- 整理cef2526重新编译的全过程
- 使用scikit中的聚类
- java工具类------日期工具类
- MAC下安装python2.7+ pip + python的依赖包pymongo
- EditText实时监听TextWatcher的使用
- 8.Selenium2 自动化测试实战-基于Python语言-WebElement接口2
- Python 打印中文字符的三种方法
- react native 开发的app在安卓设备上运行
- 数据结构C++单链表的实现
- Javascript中JSON对象继承实现