首先引入需要的包

%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数据集进行手写数字识别的更多相关文章

  1. kaggle 实战 (1): PCA + KNN 手写数字识别

    文章目录 加载package read data PCA 降维探索 选择50维度, 拆分数据为训练集,测试机 KNN PCA降维和K值筛选 分析k & 维度 vs 精度 预测 生成提交文件 本 ...

  2. Keras cnn 手写数字识别示例

    #基于mnist数据集的手写数字识别 #构造了cnn网络拟合识别函数,前两层为卷积层,第三层为池化层,第四层为Flatten层,最后两层为全连接层 #基于Keras 2.1.1 Tensorflow ...

  3. Keras mlp 手写数字识别示例

    #基于mnist数据集的手写数字识别 #构造了三层全连接层组成的多层感知机,最后一层为输出层 #基于Keras 2.1.1 Tensorflow 1.4.0 代码: import keras from ...

  4. Kaggle竞赛丨入门手写数字识别之KNN、CNN、降维

    引言 这段时间来,看了西瓜书.蓝皮书,各种机器学习算法都有所了解,但在实践方面却缺乏相应的锻炼.于是我决定通过Kaggle这个平台来提升一下自己的应用能力,培养自己的数据分析能力. 我个人的计划是先从 ...

  5. 机器学习(二)-kNN手写数字识别

    一.kNN算法是机器学习的入门算法,其中不涉及训练,主要思想是计算待测点和参照点的距离,选取距离较近的参照点的类别作为待测点的的类别. 1,距离可以是欧式距离,夹角余弦距离等等. 2,k值不能选择太大 ...

  6. Android+TensorFlow+CNN+MNIST 手写数字识别实现

    Android+TensorFlow+CNN+MNIST 手写数字识别实现 SkySeraph 2018 Email:skyseraph00#163.com 更多精彩请直接访问SkySeraph个人站 ...

  7. Pytorch1.0入门实战一:LeNet神经网络实现 MNIST手写数字识别

    记得第一次接触手写数字识别数据集还在学习TensorFlow,各种sess.run(),头都绕晕了.自从接触pytorch以来,一直想写点什么.曾经在2017年5月,Andrej Karpathy发表 ...

  8. 实现手写数字识别(数据集50000张图片)比较3种算法神经网络、灰度平均值、SVM各自的准确率—Jason niu

    对手写数据集50000张图片实现阿拉伯数字0~9识别,并且对结果进行分析准确率, 手写数字数据集下载:http://yann.lecun.com/exdb/mnist/ 首先,利用图片本身的属性,图片 ...

  9. KNN实现手写数字识别

    KNN实现手写数字识别 博客上显示这个没有Jupyter的好看,想看Jupyter Notebook的请戳KNN实现手写数字识别.ipynb 1 - 导入模块 import numpy as np i ...

随机推荐

  1. SqlService性能检测和优化工具

    工具概要 如果你的数据库应用系统中,存在有大量表,视图,索引,触发器,函数,存储过程,sql语句等等,又性能低下,而苦逼的你又要对其优化,那么你该怎么办?哥教你,首先你要知道问题出在哪里?如果想知道问 ...

  2. 基于Asp.Net Core Mvc和EntityFramework Core 的实战入门教程系列-1

    来个目录吧: 第一章 第二章 第三章 暂时就这么多.后面路线更新吧 本系列文章为翻译加上我个人的使用心得理解,希望帮助热爱学习的程序员. 珍重声明:本系列文章会跟原文有点出入,去掉了罗里吧嗦的文字. ...

  3. 锋利的jQuery事件

    一:事件 1.鼠标事件 (1)$()是$(document)的简写,默认参数是document. $(function(){}是$(document).ready(function(){})的简写. ...

  4. AJAX遮罩实例

    function transferip() { var site_list=$("textarea[name='Oldsite']").val(); var ip_list=$(& ...

  5. ACM 阶乘的0

    阶乘的0 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 计算n!的十进制表示最后有多少个0   输入 第一行输入一个整数N表示测试数据的组数(1<=N< ...

  6. 3314: [Usaco2013 Nov]Crowded Cows

    3314: [Usaco2013 Nov]Crowded Cows Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 111  Solved: 79[Sub ...

  7. Android 启动模式--任务(Task)--桟 的误区

    Android 启动模式--任务(Task)--桟 的误区 写这篇文章是因为前几天的一次面试,面试官说SingleInstance模式会新建一个桟,而SingleTask不会.首先不说这个对不对(非要 ...

  8. 读书笔记 effective c++ Item 32 确保public继承建立“is-a”模型

    1. 何为public继承的”is-a”关系 在C++面向对象准则中最重要的准则是:public继承意味着“is-a”.记住这个准则. 如果你实现一个类D(derived)public继承自类B(ba ...

  9. Jmeter BeanShell 时间格式化处理

    工作中碰到的,记录下 在XML格式的请求数据中,Soap接口请求中的日期参数格式是这样的"2016-07-20T18:03:00" 在日和时之间多了一个T 所以在Jmeter--& ...

  10. css兼容问题 ie6,7

    H5标签兼容 元素浮动之后能设置宽度的话就给元素加宽度,如果需要元素宽度是内容撑开,就给他里面的块元素加上浮动 第一块加浮动,第二块加margin等于第一块元素在IE6下会有间隙问题 IE6下子元素超 ...