scikit-learn/k-means算法简单应用
来源:互联网 发布:淘宝 未上架 抢购技巧 编辑:程序博客网 时间:2024/05/17 02:56
环境:scikit-learn0.18,python3
机器学习中,K-Means算法是一种clustering的算法,其主要是来计算数据聚集的算法,主要通过不断地取离种子点最近均值的算法
主要思想:在一堆数据中随机的选取K个中心点,计算所有点到这k个中心点的距离,根据距离将所有点分为k类,再在k类中重新计算中心点,重新计算距离,直到收敛
以机器学习案例中用k-means方法对iris数据集进行聚类
#coding:utf-8"""python 3sklearn 0.18"""from sklearn.model_selection import GridSearchCVfrom sklearn.model_selection import train_test_splitfrom sklearn.cluster import KMeansfrom sklearn.metrics import accuracy_score,confusion_matrix,classification_reportfrom sklearn.datasets import load_irisimport input_dataimport numpy as npimport pickleiris = load_iris()x = iris.datay = iris.target#mnist = input_data.read_data_sets('mnist/',one_hot=False)#x = mnist.train.images#y = mnist.train.labels#训练一个Kmeans分类器clf = KMeans(n_clusters=3)clf.fit(x)predictions = clf.predict(x)"""predictions = []for i in range(1000): if i % 100 ==0: print('= = = = = = > > > > > >','epoch:',int(i/100)) output = clf.predict([mnist.test.images[i]]) predictions.append(output)"""print(confusion_matrix(y,predictions))print(classification_report(y,np.array(predictions)))print('test accuracy is:',accuracy_score(y,predictions))
结果:
由于初始时刻的中心点是随机选取的,这就造成分类结果有很大差别。这也是k-means算法缺点之一,有待后续研究分析
阅读全文
0 0
- scikit-learn/k-means算法简单应用
- scikit-learn学习之K-means聚类算法与 Mini Batch K-Means算法
- 用scikit-learn学习K-Means聚类
- 用scikit-learn学习K-Means聚类
- <机器学习笔记-06 ><scikit-learn 06>K-Means 聚类
- scikit-learn做k-means做聚类分析的流程
- scikit-learn学习之K-means聚类算法与 Mini Batch K-Means算法 [转自别的作者,还有其他sklearn翻译]
- K-Means++算法 及应用
- k-means+python︱scikit-learn中的KMeans聚类实现( + MiniBatchKMeans)
- k-means+python︱scikit-learn中的KMeans聚类实现( + MiniBatchKMeans)
- 【Python】scikit-learn机器学习(八)——K-means聚类
- k-means+python︱scikit-learn中的KMeans聚类实现( + MiniBatchKMeans)
- scikit-learn学习之K最近邻算法(KNN)
- K-Means 算法的应用
- 8.2 聚类(Clustering) K-means算法应用
- K-means聚类算法的典型简单应用(Matlab实现)
- K-means算法补充:K-means++
- k-means 简单实现
- Kintinuous 相关论文 Volume Fusion 详解
- 【Xbox one S】开箱&开机&初入坑心得
- D
- Python学习心得(一) 列表List
- Ubuntu 14.04设置开机启动脚本的方法
- scikit-learn/k-means算法简单应用
- 一颗简单的JDBC栗子
- linux安装mysql数据库
- String使用equals和==比较的区别
- LINUX桌面模式和文本模式切换
- python -- 多线程SocketServer2
- 在Pycharm和Intellij中使用github
- JAVA 使用继承复用代码的陷阱与补救措施
- 使用DButils对数据库进行操作