zoukankan      html  css  js  c++  java
  • 机器学习之路: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 # 如果没有聚类所属类别,利用轮廓系数进行评估
  • 相关阅读:
    OK335xS 网络连接打印信息 hacking
    OK335xS mac address hacking
    buildroot linux filesystem 初探
    busybox filesystem matrix-gui-2.0 undefined function json_encode()
    RPi 2B Documentation
    RPi 2B Raspbian SD卡内部架构
    Error building results for action sayHello in namespace /inteceptor
    linux 失败无连接 检查电缆吗
    Struts2
    struts2加入自定义的actionValidatorManager实现类
  • 原文地址:https://www.cnblogs.com/Lin-Yi/p/8972996.html
Copyright © 2011-2022 走看看