sklearn 自带手写字体数据集

这篇博客介绍了sklearn库中的手写数字数据集,包括数据结构的解析,如digits数据集包含的data、target、target_names、images和DESCR等信息。重点讲解了images是1797张8*8的数字图片组成的三维矩阵,以及data是如何从images展开成一维数据的。
摘要由CSDN通过智能技术生成

sklearn 中本身自带了一些数据集,这里我们以手写数字为例进行学习:

1、了解下手写字体数据集的数据结构

import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets,svm,metrics

digits = datasets.load_digits()

#digits: bunch类型
print(type(digits))

#digits 包含的数据结构,字典类型数据key,value
print('digits.keys() = ',digits.keys())


如图所示:digits 是手写数字的数据集,它的类型是bunch,即继承与字典的一种链式松散饿存储结构。

其中digits所包含的数据分为data、target、target_names、images、DESCR

2、Images 介绍

#imgaes 是一个三维矩阵1797 张 8 * 8的图片
print('digits.images.shape = ',digits.images.shape)
print('digits.images = ',digits.images)
plt.gray()
plt.matshow(digits.images[0]
好的,我来回答你的问题。 首先,K-means算法是一种基于距离的聚类算法,它的核心思想是将数据集分为K个不同的簇,每个簇都具有相似的特征。K-means算法的流程大致如下: 1. 随机初始化K个聚类中心。 2. 对于每个数据点,计算其到K个聚类中心的距离,将其分配到距离最近的那个聚类中心所在的簇中。 3. 对于每个簇,重新计算其聚类中心。 4. 重复步骤2和步骤3,直到聚类中心不再发生变化或达到最大迭代次数。 接下来,我们可以使用sklearn自带手写字体数据集来演示K-means算法的使用。首先,我们需要导入相关的库: ```python from sklearn.datasets import load_digits from sklearn.cluster import KMeans from sklearn.metrics import accuracy_score ``` 然后,我们加载手写字体数据集,并将其分为训练集和测试集: ```python digits = load_digits() data = digits.data labels = digits.target train_size = int(len(data) * 0.8) train_data = data[:train_size] train_labels = labels[:train_size] test_data = data[train_size:] test_labels = labels[train_size:] ``` 接着,我们可以使用K-means算法对训练集进行聚类: ```python kmeans = KMeans(n_clusters=10, random_state=0) kmeans.fit(train_data) ``` 在得到聚类中心后,我们可以使用其对测试集进行分类,并使用accuracy_score函数计算其准确率: ```python test_predictions = kmeans.predict(test_data) accuracy = accuracy_score(test_labels, test_predictions) print("Accuracy: {:.2f}%".format(accuracy * 100)) ``` 最终,我们得到的准确率约为 74.44%。需要注意的是,由于手写字体数据集是一个无监督的数据集,因此我们无法使用传统的准确率来评估模型的性能,这里仅仅是为了演示K-means算法在手写字体数据集上的使用方式。 希望我的回答对你有所帮助!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值