博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Bobo老师机器学习笔记第七课-使用PCA对MNIST数据集进行降噪
阅读量:4171 次
发布时间:2019-05-26

本文共 1664 字,大约阅读时间需要 5 分钟。

问题1:什么是MNIST数据集?

  MNIST 数据集来自美国国家标准与技术研究所, National Institute of Standards and Technology (NIST). 训练集 (training set) 由来自 250 个不同人手写的数字构成, 其中 50% 是高中学生, 50% 来自人口普查局 (the Census Bureau) 的工作人员. 测试集(test set) 也是同样比例的手写数字数据。该问题解决的是把28x28像素的灰度手写数字图片识别为相应的数字,其中数字的范围从0到9

问题2: 利用sklearn如何加载MNIST数据集?

import numpy as np from sklearn.datasets import fetch_mldatamnist = fetch_mldata('MNIST original')print mnist X, y = mnist['data'], mnist['target']print X.shape

注意是利用fetch_mldata方法。 如果报Socket Error,请检查能否访问 链接。如果加载成功的话,这个数据是7w条,特征值是784, 因为这个是一个28*28像素的图片。 

问题3: 如果sklearn下载一直报socket error,那怎么办?

答:有时由于网络问题无法访问上面链接。那可以访问,通过这个路径就可以直接把文件下载下来。然后把文件放到data_home路径下。可以通过以下代码获取data_home路径。 

from sklearn.datasets import get_data_homeprint get_data_home()

实例代码:

from timeit import timeitfrom sklearn.datasets import fetch_mldatafrom sklearn.model_selection import train_test_splitfrom sklearn.neighbors import KNeighborsClassifierfrom sklearn.decomposition import PCAmnist = fetch_mldata('MNIST original')X, y = mnist['data'], mnist['target']def test():    print X.shape    X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=666)    knn_clf = KNeighborsClassifier()    # knn_clf.fit(X_train, y_train)    # # 0.9707428571428571    # print X_train.shape    # print knn_clf.score(X_test, y_test)    pca = PCA(0.9)    pca.fit(X_train, y_train)    print pca    X_train_reduction = pca.transform(X_train)    X_test_reduction = pca.transform(X_test)    knn_clf.fit(X_train_reduction, y_train)    print knn_clf.score(X_test_reduction, y_test)

运行结论:

1、不用PCA的时候,运行大概15min左右,准确度在97%左右

2、使用PCA后,降维到87维,准确率大概在98%以上,运行时间在2分钟以内,这说明使用PCA后把数据中的一些噪音去掉了,从而是准确度提高了,并且节省了时间。

参考资料:

1、 

2、

转载地址:http://hhkai.baihongyu.com/

你可能感兴趣的文章
A Game of Thrones(97)
查看>>
A Game of Thrones(98)
查看>>
2018.3.20
查看>>
2018.3.21
查看>>
2018.3.22
查看>>
2018.3.23
查看>>
A Game of Thrones(102)
查看>>
2018.4.29
查看>>
2018.4.30
查看>>
2018.4.31
查看>>
2018.4.32
查看>>
2018.4.33
查看>>
《python基础教程》答案(第一章)
查看>>
2018.4.34
查看>>
2018.4.35
查看>>
2018.4.36
查看>>
我为什么要写博客
查看>>
如何导入pycharm无法导入的包
查看>>
2018.4.37
查看>>
2018.4.38
查看>>