文章目录

  • 降维算法PCA及其应用
    • 利用PCA算法实现手写字体识别,要求:
  • 实验步骤
    • 1. 导入数据集
    • 2. 实现手写数字数据集的降维;
    • 3. 比较两个模型(64维和10维)的准确率;
    • 4. 对两个模型分别进行10次10折交叉验证,绘制评分对比曲线。
  • 代码详解
  • 结果:
    • SVC
    • PCA

降维算法PCA及其应用

利用PCA算法实现手写字体识别,要求:

1、实现手写数字数据集的降维;

2、比较两个模型(64维和10维)的准确率;

3、对两个模型分别进行10次10折交叉验证,绘制评分对比曲线。

实验步骤

1. 导入数据集

from sklearn.datasets import load_digits
digits = load_digits()
train = digits.data
target = digits.target

2. 实现手写数字数据集的降维;

pca = PCA(n_components=10,whiten=True)
pca.fit(x_train,y_train)
x_train_pca = pca.transform(x_train)
x_test_pca = pca.transform(x_test)

3. 比较两个模型(64维和10维)的准确率;

64维

svc = SVC(kernel = 'rbf')
svc.fit(x_train,y_train)
y_predict = svc.predict(x_test)
print('The Accuracy of SVC is', svc.score(x_test, y_test))
print("classification report of SVC\n",classification_report(y_test, y_predict,
target_names=digits.target_names.astype(str)))

10维

svc = SVC(kernel = 'rbf')
svc.fit(x_train_pca,y_train)
y_pre_svc = svc.predict(x_test_pca)
print("The Accuracy of PCA_SVC is ", svc.score(x_test_pca,y_test))
print("classification report of PCA_SVC\n", classification_report(y_test, y_pre_svc,
target_names=digits.target_names.astype(str)))

4. 对两个模型分别进行10次10折交叉验证,绘制评分对比曲线。

for i in range(100):# 创建子图plt.subplot(10,10,i+1)# 显示灰度图像plt.imshow(samples[i].reshape(8,8),cmap='gray')title = str(y_pre[i])plt.title(title,color='red')# 关闭坐标轴plt.axis('off')
plt.show()

代码详解

import matplotlib.pyplot as plt
from sklearn.svm import SVC
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.metrics import classification_report
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_digits
digits = load_digits()
train = digits.data
target = digits.target
x_train,x_test,y_train,y_test = train_test_split(train,target,test_size=0.2,random_state=33)
ss = StandardScaler()
x_train = ss.fit_transform(x_train)
x_test = ss.transform(x_test)
svc = SVC(kernel = 'rbf')
svc.fit(x_train,y_train)
y_predict = svc.predict(x_test)
print('The Accuracy of SVC is', svc.score(x_test, y_test))
print("classification report of SVC\n",classification_report(y_test, y_predict,
target_names=digits.target_names.astype(str)))
# 实现手写数字数据集的降维实现手写数字数据集的降维
pca = PCA(n_components=10,whiten=True)
pca.fit(x_train,y_train)
x_train_pca = pca.transform(x_train)
x_test_pca = pca.transform(x_test)
svc = SVC(kernel = 'rbf')
svc.fit(x_train_pca,y_train)
# 比较两个模型(64维和10维)的准确率
y_pre_svc = svc.predict(x_test_pca)
print("The Accuracy of PCA_SVC is ", svc.score(x_test_pca,y_test))
print("classification report of PCA_SVC\n", classification_report(y_test, y_pre_svc,
target_names=digits.target_names.astype(str)))
samples = x_test[:100]
y_pre = y_pre_svc[:100]
plt.figure(figsize=(12,38))
# 对两个模型分别进行10次10折交叉验证,绘制评分对比曲线
for i in range(100):plt.subplot(10,10,i+1)plt.imshow(samples[i].reshape(8,8),cmap='gray')title = str(y_pre[i])plt.title(title)plt.axis('off')
plt.show()

结果:

SVC

PCA

【人工智能之手写字体识别】机器学习及与智能数据处理之降维算法PCA及其应用手写字体识别相关推荐

  1. svd降维 python案例_菜菜的机器学习sklearn实战-----sklearn中的降维算法PCA和SVD

    菜菜的机器学习sklearn实战-----sklearn中的降维算法PCA和SVD 概述 从什么叫维度说开来 简单讲,shape中返回了几个数字就是几维. 一张表最多就是一维 当一个数组中存在2张3行 ...

  2. 机器学习实战-65:主成因分析降维算法(Principal Component Analysis)

    机器学习实战-65:主成因分析降维算法(PCA) 深度学习原理与实践(开源图书)-总目录,建议收藏,告别碎片阅读! 机器学习分为监督学习.无监督学习和半监督学习(强化学习).无监督学习最常应用的场景是 ...

  3. 机器学习-Sklearn-04(降维算法PCA和SVD)

    机器学习-Sklearn-04(降维算法PCA和SVD) 学习04 1 概述 1.1 从什么叫"维度"说开来 对于数组和Series来说,维度就是功能shape返回的结果,shap ...

  4. 《菜菜的机器学习sklearn课堂》降维算法PCA和SVD

    降维算法PCA和SVD 什么是维度? sklearn中的降维算法 PCA 与 SVD 降维究竟是怎样实现的? PCA重要参数 n_components 迷你案例:高维数据的可视化 附录 PCA参数列表 ...

  5. 手语识别 机器学习_聆听无声的话语:手把手教你用ModelArts实现手语识别

    摘要:ModelArts,化作我们与听力障碍之间的一座沟通桥梁. 据统计,我国有超过2000万人有听力语言障碍,每年有约3万名婴儿生来就失去了聆听的机会.或许是因为缺少与没有听力障碍的人交流的途径,环 ...

  6. 【人工智能】机器学习及与智能数据处理Python使用朴素贝叶斯算法对垃圾短信数据集进行分类

    朴素贝叶斯算法 输入:样本集合D={(x_1,y_1),(x_2,y_2) (x_m,y_m); 待预测样本x; 样本标记的所有可能取值{c_1,c_2,c_3 c_k}; 样本输入变量X的每个属性变 ...

  7. 机器学习实战(十二)降维(PCA、SVD)

    目录 0. 前言 1. 主成分分析PCA(Principal Component Analysis) 2. 奇异值分解SVD(Singular Value Decomposition) 3. 低维空间 ...

  8. 画出降维后的图片_机器学习实战基础(二十三):sklearn中的降维算法PCA和SVD(四) PCA与SVD 之 PCA中的SVD...

    PCA中的SVD 1 PCA中的SVD哪里来? 细心的小伙伴可能注意到了,svd_solver是奇异值分解器的意思,为什么PCA算法下面会有有关奇异值分解的参数?不是两种算法么?我们之前曾经提到过,P ...

  9. Sklearn中的降维算法PCA和SVD --from菜菜机器学习

    1.PCA降维概述 在降维过程中,我们会减少特征的数量,这意味着删除数据,数据量变少则表示模型可以获取的信息会变少,模型的表现可能会因此受影响.同时,在高维数据中,必然有一些特征是不带有有效的信息的( ...

  10. 机器学习——经典降维算法与框架综述

    目录​​​​​​​ 综述 一.介绍 二. 降维算法回顾 1.KNN 1.1 KNN核心思想 1.2 KNN算法流程 1.3 KNN算法优缺点 2.线性降维 (1)PCA 2.1.1 PCA简介 2.1 ...

最新文章

  1. HDU1002(高精度模拟加法)
  2. es6 ik分词热更新MySQL_rollup环境搭建(es6转es5、压缩、本地服务器、热更新)
  3. 应用按home键无最近应用
  4. python pip配置镜像源:douban不能下载aliyun可以下载
  5. 初识Mysql(part18)--我需要知道的4个关于联结的小知识点
  6. java读取gxk文件,Java中常见的IO流及其使用
  7. Vmware安装CentOS7后访问不了外网
  8. 在线等:“实习拿到两个不太好的 offer,去腾讯还是去阿里?”
  9. 【日常】ICS的lab7攻略和最近生活的吐槽
  10. Info.plist信息
  11. 二阶滤波器matlab代码,双二阶滤波器之MATLAB设计及C语言实现
  12. DES加密解密算法(简单、易懂、超级详细)
  13. ios开发之切换RootViewController
  14. CSV文件分割工具开发-python版
  15. Java 下载多个文件打成zip压缩包
  16. html复制并弹窗提示已复制,如何调用handsome主题自带的弹窗提示实现复制弹窗提醒以及个性化提示...
  17. 解密阿里云大规模深度学习性能优化实践
  18. 十大优秀编程项目,让你的简历金光闪闪
  19. Python处理CSV,Excel,PDF和图片
  20. /etc/profile 和 /etc/profile.d/ 的区别

热门文章

  1. 树莓派开发笔记(八):GPIO口的I2C使用(BME280三合一传感器:温度、湿度、气压测量)
  2. ce修改手游服务器的数据,CE修改器修改游戏数据的方法
  3. 图像/视频无损放大,用一个工具就够了
  4. 使用selenium爬取搜狗微信文章
  5. Windows便签数据恢复
  6. asm磁盘头全部损坏数据0丢失恢复----惜分飞
  7. 随机森林回归预测_jupyter notebook
  8. 批量修改后缀名的方法
  9. Linux Command diff 文件比较
  10. android仿微信播放视频播放器,vue DPlayer 仿微信朋友圈视频播放效果