Sklearn图像分类(基于MNIST数据集)

本文档介绍了一个使用MNIST数据集进行简单图像识别的项目。首先,通过pip安装numpy, opencv-python和scikit-learn等库,然后从Kaggle下载MNIST数据集。接着,读取数据并展示部分样本,将一维向量数据reshape为28x28的矩阵,并用matplotlib和seaborn进行图像显示。最后,利用sklearn的KNeighborsClassifier和SVC模型进行训练,并未展示训练准确率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MNIST数据集是一个手写数字数据集,里面具有成百上千的手写字体数据,本次项目的内容就是使用MNIST数据集实现一个简单的图像识别任务。

首先通过如下命令下载本次项目所用到的数据包

#安装numpy
# pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
#安装opencv
# pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
#安装opencv
# pip install scikit-learn -i https://pypi.tuna.tsinghua.edu.cn/simple

然后下载数据集,本次下载的数据集是从Kaggle上面下载的,直接访问kaggle网站搜索MNIST就能够看到本次的数据集了,下载网址如下:

Digit Recognizer | Kaggle

下载之后,我们开始编写主要的实现代码:

首先读入数据,然会对其进行显示:

import pandas as pd
test_frame = pd.read_csv(test_path)
train_frame = pd.read_csv(train_path)

  之后切分样本和标签,如上数据所示,其中label是作为整个数据的标签,然后pixel0-783是样本数据的数据点:

    
import matplotlib.pyplot as plt

import numpy as np

train = train_frame.copy()
y = train['label']
X = train.drop(['label'],axis=1)

使用matpyplot显示图像,在csv中我们的样本使用一个一维向量的模式进行标识,但是我们知道图片一般是一个二维矩阵的形式,所以我们需要对他进行reshape操作,respahe成(28x28)的矩阵,然后对他进行显示:

import matplotlib.pyplot as plt
import seaborn as sns
plt.figure(figsize=(15,3))
plt.plot(1,1)

Xc = {i: X.loc[train_frame['label'] == i,:] for i in range(10)}

for i in range(30):
    plt.subplot(3,10,i+1)
    #转换为矩阵形式
    sns.heatmap(np.reshape(np.array(Xc[i%10].iloc[i//10,:]), (28,28)),
                xticklabels=False,yticklabels=False,cbar=False,cmap='binary')

 使用sklearn封装的分类算法来训练我们的数据:


#导入模型,KNeighborsClassifier(knn),SVC(svcm)
from sklearn.neighbors import KNeighborsClassifier
from sklearn.svm import LinearSVC,SVC


knn = KNeighborsClassifier(n_neighbors =10)
svc = SVC()
linear_svc =LinearSVC()

#3.8
# knn.fit(X,y)
knn.fit(X,y)
svc.fit(X,y)
linear_svc.fit(X,y)

查看训练的准确率:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值