热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

手写数字识别——数据降维(PCA)技术在图像识别中的应用

1.导入模块importnumpyasnpimportpandasaspdfrompandasimportSeries,DataFrameimportmatplo

1.导入模块

import numpy as np
import pandas as pd
from pandas import Series,DataFrame
import matplotlib.pyplot as plt
%matplotlib inline

#向量机
from sklearn.svm import SVC

#主成分分析(principal components analysis),主要用于数据降维的
from sklearn.decomposition import PCA

#用于切割训练数据和样本数据
from sklearn.model_selection import train_test_split

2.生成训练数据和测试数据

#本地数据
data = pd.read_csv('../data/digits.csv')

train = data.iloc[:,1:]
target = data['label']

#训练数据和样本数据切割
X_train,x_test,y_train,y_true = train_test_split(train,target,test_size=0.2)

这里写图片描述

3.对数据进行降维处理

  • PCA 用于数据降维,减少运算时间,避免过拟合
  • n_components参数设置需要保留特征的数量,如果是小数,则表示保留特征的比例
# 3.1.创建pca对象
pca = PCA(n_compOnents=150,whiten=True)

#3.2.使用pca训练数据
pca.fit(X_train,y_train)

#3.3.对数据进行降维处理
X_train_pca = pca.transform(X_train)
x_test_pca = pca.transform(x_test)

结果将由原来的784个特征变为了150个特征

4.创建学习模型

svc = SVC(kernel = 'rbf')

5.使用降维后的数据进行模型训练

svc.fit(X_train_pca,y_train)

6.预测结果

y_pre_svc = svc.predict(x_test_pca)

7.展示结果

#展示前100的测试样本数据
samples = x_test.iloc[:100]
y_pre = y_pre_svc[:100]

plt.figure(figsize=(12,18))
for i in range(100):
    plt.subplot(10,10,i+1)
    plt.imshow(samples.iloc[i].reshape(28,28),cmap='gray')
    title = 'True:'+str(y_true.iloc[i])+'\nSVC:'+str(y_pre[i])
    plt.title(title)
    plt.axis('off')

这里写图片描述

8.模型执行降维后数据的评分

svc.score(x_test_pca[:100],y_true[:100])

推荐阅读
  • 通过使用CIFAR-10数据集,本文详细介绍了如何快速掌握Mixup数据增强技术,并展示了该方法在图像分类任务中的显著效果。实验结果表明,Mixup能够有效提高模型的泛化能力和分类精度,为图像识别领域的研究提供了有价值的参考。 ... [详细]
  • 通过使用 `pandas` 库中的 `scatter_matrix` 函数,可以有效地绘制出多个特征之间的两两关系。该函数不仅能够生成散点图矩阵,还能通过参数如 `frame`、`alpha`、`c`、`figsize` 和 `ax` 等进行自定义设置,以满足不同的可视化需求。此外,`diagonal` 参数允许用户选择对角线上的图表类型,例如直方图或密度图,从而提供更多的数据洞察。 ... [详细]
  • 针对图像分类任务的训练方案进行了优化设计。通过引入PyTorch等深度学习框架,利用其丰富的工具包和模块,如 `torch.nn` 和 `torch.nn.functional`,提升了模型的训练效率和分类准确性。优化方案包括数据预处理、模型架构选择和损失函数的设计等方面,旨在提高图像分类任务的整体性能。 ... [详细]
  • 技术日志:深入探讨Spark Streaming与Spark SQL的融合应用
    技术日志:深入探讨Spark Streaming与Spark SQL的融合应用 ... [详细]
  • 在该项目中,参与者需结合历史使用模式和天气数据,以预测华盛顿特区自行车共享系统的租赁需求。数据分析部分首先涉及数据的收集,包括用户骑行记录和气象信息,为后续模型构建提供基础。通过深入的数据预处理和特征工程,确保数据质量和模型准确性,最终实现对自行车租赁需求的有效预测。 ... [详细]
  • Python 序列图分割与可视化编程入门教程
    本文介绍了如何使用 Python 进行序列图的快速分割与可视化。通过一个实际案例,详细展示了从需求分析到代码实现的全过程。具体包括如何读取序列图数据、应用分割算法以及利用可视化库生成直观的图表,帮助非编程背景的用户也能轻松上手。 ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
  • 本文探讨了利用Python实现高效语音识别技术的方法。通过使用先进的语音处理库和算法,本文详细介绍了如何构建一个准确且高效的语音识别系统。提供的代码示例和实验结果展示了该方法在实际应用中的优越性能。相关文件可从以下链接下载:链接:https://pan.baidu.com/s/1RWNVHuXMQleOrEi5vig_bQ,提取码:p57s。 ... [详细]
  • 【图像分类实战】利用DenseNet在PyTorch中实现秃头识别
    本文详细介绍了如何使用DenseNet模型在PyTorch框架下实现秃头识别。首先,文章概述了项目所需的库和全局参数设置。接着,对图像进行预处理并读取数据集。随后,构建并配置DenseNet模型,设置训练和验证流程。最后,通过测试阶段验证模型性能,并提供了完整的代码实现。本文不仅涵盖了技术细节,还提供了实用的操作指南,适合初学者和有经验的研究人员参考。 ... [详细]
  • 探索聚类分析中的K-Means与DBSCAN算法及其应用
    聚类分析是一种用于解决样本或特征分类问题的统计分析方法,也是数据挖掘领域的重要算法之一。本文主要探讨了K-Means和DBSCAN两种聚类算法的原理及其应用场景。K-Means算法通过迭代优化簇中心来实现数据点的划分,适用于球形分布的数据集;而DBSCAN算法则基于密度进行聚类,能够有效识别任意形状的簇,并且对噪声数据具有较好的鲁棒性。通过对这两种算法的对比分析,本文旨在为实际应用中选择合适的聚类方法提供参考。 ... [详细]
  • 基于收支数据的聚类分析研究
    通过对收支数据进行聚类分析,研究发现聚类结果的解释和验证是关键步骤。为了确保分群的合理性和有效性,需要结合业务背景和实际需求,灵活选择合适的聚类数量。该研究利用Python中的Pandas和Matplotlib库对数据进行了预处理和可视化,为决策提供了科学依据。 ... [详细]
  • 本文将深入探讨生成对抗网络(GAN)在计算机视觉领域的应用。作为该领域的经典模型,GAN通过生成器和判别器的对抗训练,能够高效地生成高质量的图像。本文不仅回顾了GAN的基本原理,还将介绍一些最新的进展和技术优化方法,帮助读者全面掌握这一重要工具。 ... [详细]
  • 利用 Python 中的 Altair 库实现数据抖动的水平剥离分析 ... [详细]
  • 在数据表中,我需要触发一个操作来刷新特定列的数据。例如,对于以下表格:| ID | Name | IsDeleted ||----|-------|-----------|| 1 | test | True || 2 | test2 | False |我希望在点击“更新”按钮时,能够仅刷新选定行的“IsDeleted”列。这将有助于确保数据的实时性和准确性。 ... [详细]
  • GDB 使用心得与技巧总结
    在使用 GDB 进行调试时,可以采用以下技巧提升效率:1. 通过设置 `set print pretty on` 来美化打印输出,使数据结构更加易读;2. 掌握常见数据结构的打印方法,如链表、树等;3. 利用 `info locals` 命令查看当前作用域内的所有局部变量;4. 在需要进行类型强制转换时,正确使用语法,例如 `p (Test::A *) pObj`。这些技巧能够显著提高调试的便捷性和准确性。 ... [详细]
author-avatar
xljlg
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有