机器学习之路:python k均值聚类 KMeans 手写数字

python3 学习使用api

使用了网上的数据集,我把他下载到了本地

可以到我的git中下载数据集: https://github.com/linyi0604/MachineLearning

代码:

 1 import numpy as np
 2 import pandas as pd
 3 from sklearn.cluster import KMeans
 4 from sklearn import metrics
 5
 6 ‘‘‘
 7 k均值算法:
 8     1 随机选择k个样本作为k个类别的中心
 9     2 从k个样本出发,选取最近的样本归为和自己同一个分类,一直到所有样本都有分类
10     3 对k个分类重新计算中心样本
11     4 从k个新中心样本出发重复23,
12         如果据类结果和上一次一样,则停止
13         否则重复234
14
15 ‘‘‘
16 ‘‘‘
17 该数据集源自网上 https://archive.ics.uci.edu/ml/machine-learning-databases/optdigits/
18 我把他下载到了本地
19 训练样本3823条, 测试样本1797条
20 图像通过8*8像素矩阵表示共64个维度,1个目标维度表示数字类别
21 ‘‘‘
22
23 # 1 准备数据
24 digits_train = pd.read_csv("./data/optdigits/optdigits.tra", header=None)
25 digits_test = pd.read_csv("./data/optdigits/optdigits.tes", header=None)
26 # 从样本中抽取出64维度像素特征和1维度目标
27 x_train = digits_train[np.arange(64)]
28 y_train = digits_train[64]
29 x_test = digits_test[np.arange(64)]
30 y_test = digits_test[64]
31
32 # 2 建立模型
33 # 初始化kMeans聚类模型 聚类中心数量为10个
34 kmeans = KMeans(n_clusters=10)
35 # 聚类
36 kmeans.fit(x_train)
37 # 逐条判断每个测试图像所属的聚类中心你
38 y_predict = kmeans.predict(x_test)
39
40
41 # 3 模型评估
42 # 使用ARI进行性能评估 当聚类有所属类别的时候利用ARI进行模型评估
43 print("k均值聚类的ARI值:", metrics.adjusted_rand_score(y_test, y_predict))
44 ‘‘‘
45 k均值聚类的ARI值: 0.6673881543921809
46 ‘‘‘
47 # 如果没有聚类所属类别,利用轮廓系数进行评估

原文地址:https://www.cnblogs.com/Lin-Yi/p/8972996.html

时间: 2024-10-08 17:45:22

机器学习之路:python k均值聚类 KMeans 手写数字的相关文章

机器学习--k均值聚类(k-means)算法

一.基本原理 分类是指分类器根据已标注类别的训练集,通过训练可以对未知类别的样本进行分类.分类被称为监督学习.如果训练集的样本没有标注类别,那么就需要用到聚类.聚类是把相似的样本聚成一类,这种相似性通常以距离来度量.聚类被称为无监督学习. 聚类是指根据"物以类聚"的原理,将本身没有类别的样本聚集成不同的组,这样的一组数据对象的集合叫做簇,并且对每一个这样的簇进行描述的过程.它的目的是使得属于同一个簇的样本之间应该彼此相似,而不同簇的样本应该足够不相似.与分类规则不同,进行聚类前并不知道

第十篇:K均值聚类(KMeans)

前言 本文讲解如何使用R语言进行 KMeans 均值聚类分析,并以一个关于人口出生率死亡率的实例演示具体分析步骤. 聚类分析总体流程 1. 载入并了解数据集:2. 调用聚类函数进行聚类:3. 查看聚类结果描述:4. 将聚类结果图形化展示:5. 选择最优center并最终确定聚类方案:6. 图形化展示不同方案效果并提交分析报表. 人口出生/死亡率聚类分析 - K均值聚类 1. 载入并了解数据集 1.1 从网上下载一份txt格式的关于人口出生率统计的数据(countries.txt).其内容大致如下

机器学习实战笔记-利用K均值聚类算法对未标注数据分组

聚类是一种无监督的学习,它将相似的对象归到同一个簇中.它有点像全自动分类.聚类方法几乎可以应用于所有对象,簇内的对象越相似,聚类的效果越好 簇识别给出聚类结果的含义.假定有一些数据,现在将相似数据归到一起,簇识别会告诉我们这些簇到底都是些什么.聚类与分类的最大不同在于,分类的目标事先巳知,而聚类则不一样.因为其产生的结果与分类相同,而只是类别没有预先定义,聚类有时也被称为无监督分类(unsupervised classification ). 聚类分析试图将相似对象归人同一簇,将不相似对象归到不

Andrew Ng 机器学习课程笔记 ———— 通过初步的神经网络实现手写数字的识别(尽力去向量化实现)

上一篇我总结了自己在学完逻辑回归后,实现了对手写数字的初步识别 , 在学完了Andrew教授的神经网络简易教程后,趁着知识刚学完没多久,记下了自己在运用简易神经网络实现手写数字识别过程中的总结和问题 ^_^  菜鸡QP的第二篇学习笔记 ~ 错误在所难免 ,希望自己可以通过一篇篇菜鸡的笔记心得 ,取得一点点的进步 ~\(≧▽≦)/~    ) 依旧是给定 5000个20 * 20像素点的手写数字图片 ,与前几天自己完成的逻辑回归完成任务不同 ,这次自己终于要用到极富魅力的神经网络啦(虽然只是最基础

python实现KNN,识别手写数字

写了识别手写数字的KNN算法,如下图所示.参考链接http://blog.csdn.net/april_newnew/article/details/44176059. # -*- coding: utf-8 -*- import numpy as np import pandas as pd import os def readtxt(filename): text=[] f = open(filename,'r',encoding='utf-8') for line in f.readlin

KNN (K近邻算法) - 识别手写数字

KNN项目实战——手写数字识别 1. 介绍 k近邻法(k-nearest neighbor, k-NN)是1967年由Cover T和Hart P提出的一种基本分类与回归方法.它的工作原理是:存在一个样本数据集合,也称作为训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一个数据与所属分类的对应关系.输入没有标签的新数据后,将新的数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本最相似数据(最近邻)的分类标签.一般来说,我们只选择样本数据集中前k个最相似的数据,这就是

吴裕雄 python 机器学习——K均值聚类KMeans模型

import numpy as np import matplotlib.pyplot as plt from sklearn import cluster from sklearn.metrics import adjusted_rand_score from sklearn.datasets.samples_generator import make_blobs def create_data(centers,num=100,std=0.7): X, labels_true = make_b

机器学习之路: python k近邻分类器 鸢尾花分类预测

使用python语言 学习k近邻分类器的api 欢迎来到我的git查看源代码: https://github.com/linyi0604/kaggle 1 from sklearn.datasets import load_iris 2 from sklearn.cross_validation import train_test_split 3 from sklearn.preprocessing import StandardScaler 4 from sklearn.neighbors i

K 近邻算法识别手写数字(Numpy写法)

在 Kaggle 上面的 Notebook 给可爱的学弟学妹们用于参考... 代码这个东西一定要自己多写,我一边听着林宥嘉的<想自由>,一边写出了大致的实现. 关于数据集的读入 MNIST 数据集可以在这里获取:THE MNIST DATABASE of handwritten digits . 你一定很好奇?为什么 原文地址:https://www.cnblogs.com/accepteddoge/p/mnist-knn-with-numpy.html