使用PCA + KNN对MNIST数据集进行手写数字识别
首先引入需要的包
%matplotlib inline
import numpy as np
import scipy as sp
import pandas as pd
import matplotlib.pyplot as plt
import sys
import os
path = os.path.abspath('..')
if not path in sys.path:
sys.path.append(path)
载入数据集,使数据中心化(减去平均值)
from dataset.cleardata import mnist
train_img, train_lbl = mnist(dataset='training')
test_img, test_lbl = mnist(dataset='testing')
先看一下前16张训练机和数据集都长什么样, 使用plt画出图像
plt.figure(figsize=(8,7),dpi=198)
for i in range(16):
plt.subplot(4, 4, i + 1)
plt.imshow(train_img[i])
plt.figure(figsize=(8,7),dpi=198)
for i in range(16):
plt.subplot(4, 4, i + 1)
plt.imshow(test_img[i])




求出平均脸, 简单计算,其实就是把每个像素求出平均值, 画出来看看, 就长这样
#mean face
mean_num = train_img.mean(0)
plt.imshow(mean_num)
train_img = train_img - mean_num
test_img = test_img - mean_num


所有图片都减去平均脸
plt.figure(figsize=(8,7),dpi=198)
for i in range(16):
plt.subplot(4, 4, i + 1)
plt.imshow(train_img[i])
plt.figure(figsize=(8,7),dpi=198)
for i in range(16):
plt.subplot(4, 4, i + 1)
plt.imshow(test_img[i])




把所有像素摊平(都变成以为向量)
train_plain = np.array([train_img[i].reshape(28 * 28, ) for i in xrange(train_img.shape[0])])
test_plain = np.array([test_img[i].reshape(28 * 28, ) for i in xrange(test_img.shape[0])])
执行PCA处理数据
这一步发现python报了一个异常, 可以看到python跑出一个错误
ComplexWarning: Casting complex values to real discards the imaginary part, 原因是pca求出来的特征向量有复数,这时候我舍弃了复数的虚部
以下取了40维进行PCA
from pre_process.pca import pca
data, ft = pca(plain, 40)
data = data.astype(float) # training data after pac mapping to 40 dimension
ft = ft.astype(float)
g:\Anaconda2\lib\site-packages\ipykernel\__main__.py:4: ComplexWarning: Casting complex values to real discards the imaginary part
g:\Anaconda2\lib\site-packages\ipykernel\__main__.py:5: ComplexWarning: Casting complex values to real discards the imaginary part
画出前16特征脸
这些特征脸按照投影方差大小排列, 第一个方差最大,效果应该会最好的
plt.figure(figsize=(8,7),dpi=198)
for i in range(16):
plt.subplot(4, 4, i + 1)
plt.imshow(ft.T[i].reshape(28, 28))


把测试数据使用40维的特征向量投影的40维平面
train_maped = np.dot(train_plain, ft)
test_maped = np.dot(test_plain, ft)
使用KNN算法,对测试数据进行比较
这里由于算法没有优化,复杂度比较高,所以只取了前1000的测试数据,有待优化
输出了预测label, 计算准确率
from algorithm import distance as dist
out_lbl = []
for i in xrange(1000):
res = np.array([dist.euclidean(train_maped[m], maped[i]) for m in xrange(test_img.shape[0])])
out_lbl.append(train_lbl[res.argsort()[0]])
out_lbl
[array([7], dtype=int8),
array([2], dtype=int8),
array([1], dtype=int8),
array([0], dtype=int8),
array([4], dtype=int8),
array([1], dtype=int8),
array([9], dtype=int8),
array([9], dtype=int8),
array([5], dtype=int8),
array([9], dtype=int8),
array([0], dtype=int8),
array([6], dtype=int8),
array([9], dtype=int8),
array([0], dtype=int8),
array([1], dtype=int8),
array([5], dtype=int8),
array([9], dtype=int8),
array([7], dtype=int8),
array([3], dtype=int8),
array([4], dtype=int8),
array([9], dtype=int8),
array([6], dtype=int8),
array([6], dtype=int8),
array([5], dtype=int8),
array([4], dtype=int8),
array([0], dtype=int8),
array([7], dtype=int8),
array([4], dtype=int8),
array([0], dtype=int8),
array([1], dtype=int8),
array([3], dtype=int8),
array([1], dtype=int8),
array([3], dtype=int8),
array([0], dtype=int8),
array([7], dtype=int8),
array([2], dtype=int8),
array([7], dtype=int8),
array([1], dtype=int8),
array([2], dtype=int8),
array([1], dtype=int8),
array([1], dtype=int8),
array([7], dtype=int8),
array([4], dtype=int8),
array([2], dtype=int8),
array([3], dtype=int8),
array([5], dtype=int8),
array([1], dtype=int8),
array([2], dtype=int8),
array([4], dtype=int8),
array([4], dtype=int8),
array([6], dtype=int8),
array([3], dtype=int8),
array([5], dtype=int8),
array([5], dtype=int8),
array([6], dtype=int8),
array([0], dtype=int8),
array([4], dtype=int8),
array([1], dtype=int8),
array([9], dtype=int8),
array([5], dtype=int8),
array([7], dtype=int8),
array([8], dtype=int8),
array([9], dtype=int8),
array([3], dtype=int8),
array([7], dtype=int8),
array([4], dtype=int8),
array([6], dtype=int8),
array([4], dtype=int8),
array([3], dtype=int8),
array([0], dtype=int8),
array([7], dtype=int8),
array([0], dtype=int8),
array([2], dtype=int8),
array([7], dtype=int8),
array([1], dtype=int8),
array([7], dtype=int8),
array([3], dtype=int8),
array([3], dtype=int8),
array([9], dtype=int8),
array([7], dtype=int8),
array([7], dtype=int8),
array([6], dtype=int8),
array([2], dtype=int8),
array([7], dtype=int8),
array([8], dtype=int8),
array([4], dtype=int8),
array([7], dtype=int8),
array([3], dtype=int8),
array([6], dtype=int8),
array([1], dtype=int8),
array([3], dtype=int8),
array([6], dtype=int8),
array([9], dtype=int8),
array([3], dtype=int8),
array([1], dtype=int8),
array([4], dtype=int8),
array([1], dtype=int8),
array([7], dtype=int8),
array([6], dtype=int8),
array([9], dtype=int8),
array([6], dtype=int8),
array([0], dtype=int8),
array([5], dtype=int8),
array([4], dtype=int8),
array([9], dtype=int8),
array([9], dtype=int8),
array([2], dtype=int8),
array([1], dtype=int8),
array([9], dtype=int8),
array([4], dtype=int8),
array([8], dtype=int8),
array([7], dtype=int8),
array([3], dtype=int8),
array([9], dtype=int8),
array([7], dtype=int8),
array([9], dtype=int8),
array([4], dtype=int8),
array([4], dtype=int8),
array([9], dtype=int8),
array([2], dtype=int8),
array([5], dtype=int8),
array([4], dtype=int8),
array([7], dtype=int8),
array([6], dtype=int8),
array([7], dtype=int8),
array([9], dtype=int8),
array([0], dtype=int8),
array([5], dtype=int8),
array([8], dtype=int8),
array([5], dtype=int8),
array([6], dtype=int8),
array([6], dtype=int8),
array([5], dtype=int8),
array([7], dtype=int8),
array([8], dtype=int8),
array([1], dtype=int8),
array([0], dtype=int8),
array([1], dtype=int8),
array([6], dtype=int8),
array([4], dtype=int8),
array([6], dtype=int8),
array([7], dtype=int8),
array([3], dtype=int8),
array([1], dtype=int8),
array([7], dtype=int8),
array([1], dtype=int8),
array([8], dtype=int8),
array([2], dtype=int8),
array([0], dtype=int8),
array([2], dtype=int8),
array([9], dtype=int8),
array([8], dtype=int8),
array([5], dtype=int8),
array([5], dtype=int8),
array([1], dtype=int8),
array([5], dtype=int8),
array([6], dtype=int8),
array([0], dtype=int8),
array([3], dtype=int8),
array([4], dtype=int8),
array([4], dtype=int8),
array([6], dtype=int8),
array([5], dtype=int8),
array([4], dtype=int8),
array([6], dtype=int8),
array([5], dtype=int8),
array([4], dtype=int8),
array([5], dtype=int8),
array([1], dtype=int8),
array([4], dtype=int8),
array([4], dtype=int8),
array([7], dtype=int8),
array([2], dtype=int8),
array([3], dtype=int8),
array([2], dtype=int8),
array([1], dtype=int8),
array([1], dtype=int8),
array([8], dtype=int8),
array([1], dtype=int8),
array([8], dtype=int8),
array([1], dtype=int8),
array([8], dtype=int8),
array([5], dtype=int8),
array([0], dtype=int8),
array([8], dtype=int8),
array([9], dtype=int8),
array([2], dtype=int8),
array([5], dtype=int8),
array([0], dtype=int8),
array([1], dtype=int8),
array([1], dtype=int8),
array([1], dtype=int8),
array([0], dtype=int8),
array([9], dtype=int8),
array([0], dtype=int8),
array([1], dtype=int8),
array([1], dtype=int8),
array([6], dtype=int8),
array([4], dtype=int8),
array([2], dtype=int8),
array([3], dtype=int8),
array([6], dtype=int8),
array([1], dtype=int8),
array([1], dtype=int8),
array([1], dtype=int8),
array([3], dtype=int8),
array([9], dtype=int8),
array([5], dtype=int8),
array([2], dtype=int8),
array([9], dtype=int8),
array([4], dtype=int8),
array([5], dtype=int8),
array([9], dtype=int8),
array([3], dtype=int8),
array([9], dtype=int8),
array([0], dtype=int8),
array([3], dtype=int8),
array([6], dtype=int8),
array([5], dtype=int8),
array([5], dtype=int8),
array([7], dtype=int8),
array([2], dtype=int8),
array([2], dtype=int8),
array([7], dtype=int8),
array([1], dtype=int8),
array([2], dtype=int8),
array([8], dtype=int8),
array([4], dtype=int8),
array([1], dtype=int8),
array([7], dtype=int8),
array([5], dtype=int8),
array([3], dtype=int8),
array([8], dtype=int8),
array([8], dtype=int8),
array([7], dtype=int8),
array([9], dtype=int8),
array([2], dtype=int8),
array([2], dtype=int8),
array([4], dtype=int8),
array([1], dtype=int8),
array([5], dtype=int8),
array([8], dtype=int8),
array([8], dtype=int8),
array([7], dtype=int8),
array([2], dtype=int8),
array([6], dtype=int8),
array([0], dtype=int8),
array([6], dtype=int8),
array([4], dtype=int8),
array([2], dtype=int8),
array([4], dtype=int8),
array([1], dtype=int8),
array([9], dtype=int8),
array([5], dtype=int8),
array([7], dtype=int8),
array([7], dtype=int8),
array([2], dtype=int8),
array([8], dtype=int8),
array([2], dtype=int8),
array([6], dtype=int8),
array([8], dtype=int8),
array([5], dtype=int8),
array([7], dtype=int8),
array([7], dtype=int8),
array([9], dtype=int8),
array([1], dtype=int8),
array([8], dtype=int8),
array([1], dtype=int8),
array([8], dtype=int8),
array([0], dtype=int8),
array([3], dtype=int8),
array([0], dtype=int8),
array([1], dtype=int8),
array([9], dtype=int8),
array([9], dtype=int8),
array([4], dtype=int8),
array([1], dtype=int8),
array([8], dtype=int8),
array([2], dtype=int8),
array([1], dtype=int8),
array([2], dtype=int8),
array([9], dtype=int8),
array([7], dtype=int8),
array([5], dtype=int8),
array([9], dtype=int8),
array([2], dtype=int8),
array([6], dtype=int8),
array([4], dtype=int8),
array([1], dtype=int8),
array([5], dtype=int8),
array([8], dtype=int8),
array([2], dtype=int8),
array([9], dtype=int8),
array([2], dtype=int8),
array([0], dtype=int8),
array([4], dtype=int8),
array([0], dtype=int8),
array([0], dtype=int8),
array([2], dtype=int8),
array([8], dtype=int8),
array([6], dtype=int8),
array([7], dtype=int8),
array([1], dtype=int8),
array([2], dtype=int8),
array([4], dtype=int8),
array([0], dtype=int8),
array([2], dtype=int8),
array([7], dtype=int8),
array([4], dtype=int8),
array([3], dtype=int8),
array([3], dtype=int8),
array([0], dtype=int8),
array([0], dtype=int8),
array([3], dtype=int8),
array([1], dtype=int8),
array([9], dtype=int8),
array([6], dtype=int8),
array([5], dtype=int8),
array([2], dtype=int8),
array([5], dtype=int8),
array([1], dtype=int8),
array([7], dtype=int8),
array([9], dtype=int8),
array([3], dtype=int8),
array([0], dtype=int8),
array([4], dtype=int8),
array([2], dtype=int8),
array([0], dtype=int8),
array([7], dtype=int8),
array([1], dtype=int8),
array([1], dtype=int8),
array([2], dtype=int8),
array([1], dtype=int8),
array([5], dtype=int8),
array([3], dtype=int8),
array([3], dtype=int8),
array([9], dtype=int8),
array([7], dtype=int8),
array([8], dtype=int8),
array([6], dtype=int8),
array([5], dtype=int8),
array([4], dtype=int8),
array([1], dtype=int8),
array([3], dtype=int8),
array([8], dtype=int8),
array([1], dtype=int8),
array([0], dtype=int8),
array([5], dtype=int8),
array([1], dtype=int8),
array([9], dtype=int8),
array([1], dtype=int8),
array([5], dtype=int8),
array([5], dtype=int8),
array([6], dtype=int8),
array([1], dtype=int8),
array([8], dtype=int8),
array([5], dtype=int8),
array([1], dtype=int8),
array([4], dtype=int8),
array([9], dtype=int8),
array([4], dtype=int8),
array([6], dtype=int8),
array([2], dtype=int8),
array([2], dtype=int8),
array([5], dtype=int8),
array([0], dtype=int8),
array([6], dtype=int8),
array([5], dtype=int8),
array([6], dtype=int8),
array([3], dtype=int8),
array([7], dtype=int8),
array([2], dtype=int8),
array([0], dtype=int8),
array([8], dtype=int8),
array([8], dtype=int8),
array([5], dtype=int8),
array([9], dtype=int8),
array([1], dtype=int8),
array([1], dtype=int8),
array([4], dtype=int8),
array([0], dtype=int8),
array([7], dtype=int8),
array([3], dtype=int8),
array([7], dtype=int8),
array([6], dtype=int8),
array([1], dtype=int8),
array([6], dtype=int8),
array([2], dtype=int8),
array([1], dtype=int8),
array([9], dtype=int8),
array([2], dtype=int8),
array([8], dtype=int8),
array([6], dtype=int8),
array([1], dtype=int8),
array([9], dtype=int8),
array([5], dtype=int8),
array([2], dtype=int8),
array([5], dtype=int8),
array([4], dtype=int8),
array([4], dtype=int8),
array([2], dtype=int8),
array([8], dtype=int8),
array([3], dtype=int8),
array([8], dtype=int8),
array([2], dtype=int8),
array([4], dtype=int8),
array([5], dtype=int8),
array([0], dtype=int8),
array([3], dtype=int8),
array([1], dtype=int8),
array([7], dtype=int8),
array([7], dtype=int8),
array([3], dtype=int8),
array([7], dtype=int8),
array([9], dtype=int8),
array([7], dtype=int8),
array([1], dtype=int8),
array([9], dtype=int8),
array([2], dtype=int8),
array([1], dtype=int8),
array([4], dtype=int8),
array([2], dtype=int8),
array([9], dtype=int8),
array([2], dtype=int8),
array([0], dtype=int8),
array([4], dtype=int8),
array([9], dtype=int8),
array([1], dtype=int8),
array([4], dtype=int8),
array([8], dtype=int8),
array([1], dtype=int8),
array([8], dtype=int8),
array([4], dtype=int8),
array([5], dtype=int8),
array([9], dtype=int8),
array([8], dtype=int8),
array([8], dtype=int8),
array([3], dtype=int8),
array([7], dtype=int8),
array([6], dtype=int8),
array([0], dtype=int8),
array([0], dtype=int8),
array([3], dtype=int8),
array([0], dtype=int8),
array([8], dtype=int8),
array([0], dtype=int8),
array([6], dtype=int8),
array([4], dtype=int8),
array([9], dtype=int8),
array([3], dtype=int8),
array([3], dtype=int8),
array([3], dtype=int8),
array([2], dtype=int8),
array([3], dtype=int8),
array([9], dtype=int8),
array([1], dtype=int8),
array([2], dtype=int8),
array([6], dtype=int8),
array([8], dtype=int8),
array([0], dtype=int8),
array([5], dtype=int8),
array([6], dtype=int8),
array([6], dtype=int8),
array([6], dtype=int8),
array([7], dtype=int8),
array([8], dtype=int8),
array([8], dtype=int8),
array([2], dtype=int8),
array([7], dtype=int8),
array([5], dtype=int8),
array([8], dtype=int8),
array([9], dtype=int8),
array([6], dtype=int8),
array([1], dtype=int8),
array([8], dtype=int8),
array([4], dtype=int8),
array([1], dtype=int8),
array([2], dtype=int8),
array([5], dtype=int8),
array([8], dtype=int8),
array([1], dtype=int8),
array([9], dtype=int8),
array([7], dtype=int8),
array([5], dtype=int8),
array([4], dtype=int8),
array([0], dtype=int8),
array([8], dtype=int8),
array([9], dtype=int8),
array([9], dtype=int8),
array([1], dtype=int8),
array([0], dtype=int8),
array([5], dtype=int8),
array([8], dtype=int8),
array([3], dtype=int8),
array([7], dtype=int8),
array([0], dtype=int8),
array([9], dtype=int8),
array([9], dtype=int8),
array([0], dtype=int8),
array([6], dtype=int8),
array([3], dtype=int8),
array([9], dtype=int8),
array([5], dtype=int8),
array([2], dtype=int8),
array([1], dtype=int8),
array([3], dtype=int8),
array([1], dtype=int8),
array([3], dtype=int8),
array([6], dtype=int8),
array([5], dtype=int8),
array([7], dtype=int8),
array([4], dtype=int8),
array([2], dtype=int8),
array([2], dtype=int8),
array([6], dtype=int8),
array([3], dtype=int8),
array([2], dtype=int8),
array([6], dtype=int8),
array([5], dtype=int8),
array([4], dtype=int8),
array([8], dtype=int8),
array([9], dtype=int8),
array([9], dtype=int8),
array([1], dtype=int8),
array([3], dtype=int8),
array([0], dtype=int8),
array([3], dtype=int8),
array([8], dtype=int8),
array([3], dtype=int8),
array([1], dtype=int8),
array([9], dtype=int8),
array([6], dtype=int8),
array([4], dtype=int8),
array([4], dtype=int8),
array([6], dtype=int8),
array([4], dtype=int8),
array([2], dtype=int8),
array([1], dtype=int8),
array([8], dtype=int8),
array([2], dtype=int8),
array([5], dtype=int8),
array([4], dtype=int8),
array([8], dtype=int8),
array([8], dtype=int8),
array([4], dtype=int8),
array([0], dtype=int8),
array([0], dtype=int8),
array([2], dtype=int8),
array([3], dtype=int8),
array([2], dtype=int8),
array([7], dtype=int8),
array([3], dtype=int8),
array([0], dtype=int8),
array([8], dtype=int8),
array([7], dtype=int8),
array([4], dtype=int8),
array([4], dtype=int8),
array([7], dtype=int8),
array([9], dtype=int8),
array([6], dtype=int8),
array([9], dtype=int8),
array([0], dtype=int8),
array([9], dtype=int8),
array([8], dtype=int8),
array([0], dtype=int8),
array([4], dtype=int8),
array([6], dtype=int8),
array([0], dtype=int8),
array([6], dtype=int8),
array([3], dtype=int8),
array([5], dtype=int8),
array([9], dtype=int8),
array([8], dtype=int8),
array([3], dtype=int8),
array([3], dtype=int8),
array([9], dtype=int8),
array([3], dtype=int8),
array([3], dtype=int8),
array([3], dtype=int8),
array([7], dtype=int8),
array([8], dtype=int8),
array([0], dtype=int8),
array([2], dtype=int8),
array([2], dtype=int8),
array([1], dtype=int8),
array([7], dtype=int8),
array([0], dtype=int8),
array([6], dtype=int8),
array([5], dtype=int8),
array([4], dtype=int8),
array([3], dtype=int8),
array([8], dtype=int8),
array([0], dtype=int8),
array([9], dtype=int8),
array([6], dtype=int8),
array([3], dtype=int8),
array([8], dtype=int8),
array([0], dtype=int8),
array([9], dtype=int8),
array([9], dtype=int8),
array([6], dtype=int8),
array([8], dtype=int8),
array([6], dtype=int8),
array([8], dtype=int8),
array([5], dtype=int8),
array([7], dtype=int8),
array([8], dtype=int8),
array([6], dtype=int8),
array([0], dtype=int8),
array([2], dtype=int8),
array([4], dtype=int8),
array([0], dtype=int8),
array([2], dtype=int8),
array([2], dtype=int8),
array([3], dtype=int8),
array([1], dtype=int8),
array([9], dtype=int8),
array([7], dtype=int8),
array([5], dtype=int8),
array([1], dtype=int8),
array([0], dtype=int8),
array([8], dtype=int8),
array([4], dtype=int8),
array([6], dtype=int8),
array([2], dtype=int8),
array([6], dtype=int8),
array([7], dtype=int8),
array([9], dtype=int8),
array([9], dtype=int8),
array([2], dtype=int8),
array([9], dtype=int8),
array([8], dtype=int8),
array([2], dtype=int8),
array([2], dtype=int8),
array([9], dtype=int8),
array([2], dtype=int8),
array([7], dtype=int8),
array([3], dtype=int8),
array([5], dtype=int8),
array([9], dtype=int8),
array([1], dtype=int8),
array([8], dtype=int8),
array([0], dtype=int8),
array([2], dtype=int8),
array([0], dtype=int8),
array([5], dtype=int8),
array([6], dtype=int8),
array([1], dtype=int8),
array([3], dtype=int8),
array([7], dtype=int8),
array([6], dtype=int8),
array([7], dtype=int8),
array([1], dtype=int8),
array([2], dtype=int8),
array([0], dtype=int8),
array([8], dtype=int8),
array([0], dtype=int8),
array([3], dtype=int8),
array([7], dtype=int8),
array([7], dtype=int8),
array([4], dtype=int8),
array([0], dtype=int8),
array([9], dtype=int8),
array([1], dtype=int8),
array([8], dtype=int8),
array([6], dtype=int8),
array([7], dtype=int8),
array([1], dtype=int8),
array([4], dtype=int8),
array([3], dtype=int8),
array([4], dtype=int8),
array([9], dtype=int8),
array([1], dtype=int8),
array([9], dtype=int8),
array([5], dtype=int8),
array([1], dtype=int8),
array([7], dtype=int8),
array([3], dtype=int8),
array([9], dtype=int8),
array([7], dtype=int8),
array([6], dtype=int8),
array([9], dtype=int8),
array([1], dtype=int8),
array([3], dtype=int8),
array([2], dtype=int8),
array([8], dtype=int8),
array([3], dtype=int8),
array([3], dtype=int8),
array([6], dtype=int8),
array([9], dtype=int8),
array([2], dtype=int8),
array([8], dtype=int8),
array([5], dtype=int8),
array([8], dtype=int8),
array([5], dtype=int8),
array([1], dtype=int8),
array([1], dtype=int8),
array([4], dtype=int8),
array([4], dtype=int8),
array([3], dtype=int8),
array([1], dtype=int8),
array([0], dtype=int8),
array([7], dtype=int8),
array([7], dtype=int8),
array([0], dtype=int8),
array([7], dtype=int8),
array([9], dtype=int8),
array([9], dtype=int8),
array([4], dtype=int8),
array([8], dtype=int8),
array([5], dtype=int8),
array([5], dtype=int8),
array([4], dtype=int8),
array([0], dtype=int8),
array([8], dtype=int8),
array([2], dtype=int8),
array([1], dtype=int8),
array([0], dtype=int8),
array([8], dtype=int8),
array([4], dtype=int8),
array([8], dtype=int8),
array([0], dtype=int8),
array([4], dtype=int8),
array([0], dtype=int8),
array([6], dtype=int8),
array([1], dtype=int8),
array([7], dtype=int8),
array([3], dtype=int8),
array([2], dtype=int8),
array([6], dtype=int8),
array([7], dtype=int8),
array([2], dtype=int8),
array([6], dtype=int8),
array([9], dtype=int8),
array([3], dtype=int8),
array([1], dtype=int8),
array([4], dtype=int8),
array([6], dtype=int8),
array([2], dtype=int8),
array([5], dtype=int8),
array([9], dtype=int8),
array([2], dtype=int8),
array([0], dtype=int8),
array([6], dtype=int8),
array([2], dtype=int8),
array([1], dtype=int8),
array([7], dtype=int8),
array([3], dtype=int8),
array([4], dtype=int8),
array([1], dtype=int8),
array([0], dtype=int8),
array([5], dtype=int8),
array([4], dtype=int8),
array([3], dtype=int8),
array([1], dtype=int8),
array([1], dtype=int8),
array([7], dtype=int8),
array([4], dtype=int8),
array([9], dtype=int8),
array([9], dtype=int8),
array([9], dtype=int8),
array([8], dtype=int8),
array([4], dtype=int8),
array([0], dtype=int8),
array([2], dtype=int8),
array([4], dtype=int8),
array([5], dtype=int8),
array([1], dtype=int8),
array([1], dtype=int8),
array([6], dtype=int8),
array([4], dtype=int8),
array([7], dtype=int8),
array([1], dtype=int8),
array([9], dtype=int8),
array([4], dtype=int8),
array([2], dtype=int8),
array([4], dtype=int8),
array([1], dtype=int8),
array([5], dtype=int8),
array([5], dtype=int8),
array([3], dtype=int8),
array([8], dtype=int8),
array([3], dtype=int8),
array([1], dtype=int8),
array([4], dtype=int8),
array([3], dtype=int8),
array([6], dtype=int8),
array([8], dtype=int8),
array([9], dtype=int8),
array([4], dtype=int8),
array([1], dtype=int8),
array([5], dtype=int8),
array([3], dtype=int8),
array([8], dtype=int8),
array([0], dtype=int8),
array([3], dtype=int8),
array([2], dtype=int8),
array([1], dtype=int8),
array([1], dtype=int8),
array([2], dtype=int8),
array([8], dtype=int8),
array([3], dtype=int8),
array([4], dtype=int8),
array([4], dtype=int8),
array([0], dtype=int8),
array([8], dtype=int8),
array([8], dtype=int8),
array([3], dtype=int8),
array([3], dtype=int8),
array([1], dtype=int8),
array([2], dtype=int8),
array([3], dtype=int8),
array([5], dtype=int8),
array([9], dtype=int8),
array([6], dtype=int8),
array([3], dtype=int8),
array([2], dtype=int8),
array([6], dtype=int8),
array([1], dtype=int8),
array([3], dtype=int8),
array([6], dtype=int8),
array([0], dtype=int8),
array([7], dtype=int8),
array([2], dtype=int8),
array([1], dtype=int8),
array([7], dtype=int8),
array([1], dtype=int8),
array([4], dtype=int8),
array([2], dtype=int8),
array([8], dtype=int8),
array([2], dtype=int8),
array([1], dtype=int8),
array([7], dtype=int8),
array([9], dtype=int8),
array([6], dtype=int8),
array([1], dtype=int8),
array([1], dtype=int8),
array([2], dtype=int8),
array([4], dtype=int8),
array([8], dtype=int8),
array([1], dtype=int8),
array([7], dtype=int8),
array([7], dtype=int8),
array([4], dtype=int8),
array([8], dtype=int8),
array([0], dtype=int8),
array([7], dtype=int8),
array([3], dtype=int8),
array([1], dtype=int8),
array([3], dtype=int8),
array([1], dtype=int8),
array([0], dtype=int8),
array([7], dtype=int8),
array([7], dtype=int8),
array([0], dtype=int8),
array([3], dtype=int8),
array([5], dtype=int8),
array([5], dtype=int8),
array([2], dtype=int8),
array([7], dtype=int8),
array([6], dtype=int8),
array([6], dtype=int8),
array([9], dtype=int8),
array([2], dtype=int8),
array([8], dtype=int8),
array([3], dtype=int8),
array([5], dtype=int8),
array([2], dtype=int8),
array([2], dtype=int8),
array([5], dtype=int8),
array([6], dtype=int8),
array([0], dtype=int8),
array([8], dtype=int8),
array([2], dtype=int8),
array([9], dtype=int8),
array([2], dtype=int8),
array([8], dtype=int8),
array([6], dtype=int8),
array([8], dtype=int8),
array([8], dtype=int8),
array([7], dtype=int8),
array([4], dtype=int8),
array([4], dtype=int8),
array([3], dtype=int8),
array([0], dtype=int8),
array([6], dtype=int8),
array([6], dtype=int8),
array([3], dtype=int8),
array([2], dtype=int8),
array([1], dtype=int8),
array([3], dtype=int8),
array([2], dtype=int8),
array([2], dtype=int8),
array([9], dtype=int8),
array([3], dtype=int8),
array([0], dtype=int8),
array([0], dtype=int8),
array([5], dtype=int8),
array([7], dtype=int8),
array([8], dtype=int8),
array([1], dtype=int8),
array([4], dtype=int8),
array([9], dtype=int8),
array([6], dtype=int8),
array([0], dtype=int8),
array([2], dtype=int8),
array([9], dtype=int8),
array([1], dtype=int8),
array([4], dtype=int8),
array([7], dtype=int8),
array([4], dtype=int8),
array([7], dtype=int8),
array([3], dtype=int8),
array([9], dtype=int8),
array([8], dtype=int8),
array([8], dtype=int8),
array([4], dtype=int8),
array([7], dtype=int8),
array([1], dtype=int8),
array([2], dtype=int8),
array([1], dtype=int8),
array([2], dtype=int8),
array([2], dtype=int8),
array([3], dtype=int8),
array([7], dtype=int8),
array([3], dtype=int8),
array([0], dtype=int8),
array([3], dtype=int8),
array([9], dtype=int8),
array([1], dtype=int8),
array([7], dtype=int8),
array([4], dtype=int8),
array([0], dtype=int8),
array([3], dtype=int8),
array([5], dtype=int8),
array([5], dtype=int8),
array([6], dtype=int8),
array([6], dtype=int8),
array([5], dtype=int8),
array([2], dtype=int8),
array([6], dtype=int8),
array([7], dtype=int8),
array([6], dtype=int8),
array([6], dtype=int8),
array([3], dtype=int8),
array([2], dtype=int8),
array([7], dtype=int8),
array([8], dtype=int8),
array([1], dtype=int8),
array([1], dtype=int8),
array([7], dtype=int8),
array([7], dtype=int8),
array([6], dtype=int8),
array([4], dtype=int8),
array([9], dtype=int8),
array([5], dtype=int8),
array([6], dtype=int8),
array([3], dtype=int8),
array([3], dtype=int8),
array([9], dtype=int8),
array([7], dtype=int8),
array([8], dtype=int8),
array([9], dtype=int8),
array([1], dtype=int8),
array([1], dtype=int8),
array([6], dtype=int8),
array([9], dtype=int8),
array([1], dtype=int8),
array([4], dtype=int8),
array([4], dtype=int8),
array([5], dtype=int8),
array([4], dtype=int8),
array([0], dtype=int8),
array([6], dtype=int8),
array([2], dtype=int8),
array([2], dtype=int8),
array([8], dtype=int8),
array([1], dtype=int8),
array([5], dtype=int8),
array([1], dtype=int8),
array([2], dtype=int8),
array([0], dtype=int8),
array([8], dtype=int8),
array([8], dtype=int8),
array([1], dtype=int8),
array([2], dtype=int8),
array([6], dtype=int8),
array([7], dtype=int8),
array([1], dtype=int8),
array([6], dtype=int8),
array([2], dtype=int8),
array([3], dtype=int8),
array([9], dtype=int8),
array([0], dtype=int8),
array([1], dtype=int8),
array([2], dtype=int8),
array([2], dtype=int8),
array([0], dtype=int8),
array([8], dtype=int8),
array([9], dtype=int8)]
看一看错误率,还算比较小~ 到此结束
但是只是作为测试使用, 还有很多东西还需要很多改进
np.sum(test_lbl[:1000] != out_lbl[:1000]) / 1000.0
0.059999999999999998
使用PCA + KNN对MNIST数据集进行手写数字识别的更多相关文章
- kaggle 实战 (1): PCA + KNN 手写数字识别
文章目录 加载package read data PCA 降维探索 选择50维度, 拆分数据为训练集,测试机 KNN PCA降维和K值筛选 分析k & 维度 vs 精度 预测 生成提交文件 本 ...
- Keras cnn 手写数字识别示例
#基于mnist数据集的手写数字识别 #构造了cnn网络拟合识别函数,前两层为卷积层,第三层为池化层,第四层为Flatten层,最后两层为全连接层 #基于Keras 2.1.1 Tensorflow ...
- Keras mlp 手写数字识别示例
#基于mnist数据集的手写数字识别 #构造了三层全连接层组成的多层感知机,最后一层为输出层 #基于Keras 2.1.1 Tensorflow 1.4.0 代码: import keras from ...
- Kaggle竞赛丨入门手写数字识别之KNN、CNN、降维
引言 这段时间来,看了西瓜书.蓝皮书,各种机器学习算法都有所了解,但在实践方面却缺乏相应的锻炼.于是我决定通过Kaggle这个平台来提升一下自己的应用能力,培养自己的数据分析能力. 我个人的计划是先从 ...
- 机器学习(二)-kNN手写数字识别
一.kNN算法是机器学习的入门算法,其中不涉及训练,主要思想是计算待测点和参照点的距离,选取距离较近的参照点的类别作为待测点的的类别. 1,距离可以是欧式距离,夹角余弦距离等等. 2,k值不能选择太大 ...
- Android+TensorFlow+CNN+MNIST 手写数字识别实现
Android+TensorFlow+CNN+MNIST 手写数字识别实现 SkySeraph 2018 Email:skyseraph00#163.com 更多精彩请直接访问SkySeraph个人站 ...
- Pytorch1.0入门实战一:LeNet神经网络实现 MNIST手写数字识别
记得第一次接触手写数字识别数据集还在学习TensorFlow,各种sess.run(),头都绕晕了.自从接触pytorch以来,一直想写点什么.曾经在2017年5月,Andrej Karpathy发表 ...
- 实现手写数字识别(数据集50000张图片)比较3种算法神经网络、灰度平均值、SVM各自的准确率—Jason niu
对手写数据集50000张图片实现阿拉伯数字0~9识别,并且对结果进行分析准确率, 手写数字数据集下载:http://yann.lecun.com/exdb/mnist/ 首先,利用图片本身的属性,图片 ...
- KNN实现手写数字识别
KNN实现手写数字识别 博客上显示这个没有Jupyter的好看,想看Jupyter Notebook的请戳KNN实现手写数字识别.ipynb 1 - 导入模块 import numpy as np i ...
随机推荐
- C# Redis之ServiceStack
前面几篇博客基本把redis基本操作学习了下,但一些高级应用并没有写进博客,例如持久化.虚拟内存等,像这些主要是通过配置文件来解决的,运维方向可能更侧重一些,对于开发者来说,可能就想知道怎么用C#来和 ...
- 四十年前的 6502 CPU 指令翻译成 JS 代码会是怎样
去年折腾的一个东西,之前 blog 里也写过,不过那时边琢磨边写,所以比较杂乱,现在简单完整地讲解一下. 前言 当时看到一本虚拟机相关的书,正好又在想 JS 混淆相关的事,无意中冒出个问题:能不能把某 ...
- Python入门教程(2)
人生苦短,我玩蛇0.0! Python(英语发音:/ˈpaɪθən/), 是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991 ...
- ASP.NET MVC 5 基本构成
MVC模式简介: MVC模式两种理解:一种是表现模式,另外一种是架构模式.它将应用程序分成三个主要组件即:视图(View)控件器(Controller)模型(Model) M: Model主要是存储或 ...
- (九)javaScript的基本使用
<script type="text/javascript"> var userName; var userAge; function interInfo(){ use ...
- String字符串截取跟替换经典案例
分享下今天的一个面试题吧!不算有难度,但是没做出来 题目:将String str="姓名:武亚伟,年龄:27,地址:西安市": 输出结果为:姓名=武亚伟 年龄=27 地址=西安市 ...
- Objective-C日记-之KVC
KVC(Key-Value-Coding?) 1, 概述 以字符串形式向对象的实例变量或属性(Property)发送或者获得值的方法. 2,用法 a,取值 @property (readwrite,c ...
- 1751: [Usaco2005 qua]Lake Counting
1751: [Usaco2005 qua]Lake Counting Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 190 Solved: 150[Su ...
- 最大化最小值 Aggressive cows
Aggressive cows http://poj.org/problem?id=2456 N间小屋,M头牛,使得牛跟牛之间的距离最远,以防止牛打架. 2<=N<=100000 2< ...
- Leetcode_001_TwoSum_求和为固定数的两个数的索引
题目描述 给定一个整型数组,在数组中找出两个数使这两个数的和为给定数,从小到大输出这两个数在数组中的位置(我们可以假定输出结果只有一个).例如,输入:N={1,4,8,20}, target=1 ...