首先引入需要的包

%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. Material Design学习-----FloatingActionButton

    FloatingActionButton是悬浮操作按钮,它继承自imageview,所以说它具备有imageview所有的方法和属性.与其他按钮不同的是,FloatingActionButton默认就 ...

  2. AlloyTouch之无限循环select插件

    写在前面 当滚动的内容很多,比如闹钟里设置秒,一共有60项.让使用者从59ms滚回01ms是一件很痛苦的事情,所以: 在列表项太多的情况下,我们希望能够有个无限循环的滚动.00ms和01ms是无缝链接 ...

  3. 使用GDI绘制文本

    /// <summary>        /// 定义一个绘制文本        /// </summary>        public void Texts()       ...

  4. Android--多线程之Handler 前言

    前言 Android的消息传递机制是另外一种形式的“事件处理”,这种机制主要是为了解决Android应用中多线程的问题,在Android中不 允许Activity新启动的线程访问该Activity里的 ...

  5. OpenFlow硬件交换机制作及刷机教程

    1.目的 将普通路由器升级成为一台支持OpenFlow的交换机. 具体哪些路由器可以刷OpenFlow可以参考:OpenWRT:http://wiki.openwrt.org/toh/start#su ...

  6. 3097: Hash Killer I

    3097: Hash Killer I Time Limit: 5 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 425  Solved: 15 ...

  7. 1257: [CQOI2007]余数之和sum

    1257: [CQOI2007]余数之和sum Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 2001  Solved: 928[Submit][Sta ...

  8. MySQL数据库设计总结

    规则1:一般情况可以选择MyISAM存储引擎,如果需要事务支持必须使用InnoDB存储引擎. 注意:MyISAM存储引擎 B-tree索引有一个很大的限制:参与一个索引的所有字段的长度之和不能超过10 ...

  9. Mutillidae在kali linux上的安装

    XAMPP:下载地址(https://www.apachefriends.org/download.html) Mutillidae:下载地址(http://sourceforge.net/proje ...

  10. HTML5学习笔记<二>:元素,属性,格式化

    HTML元素 元素是指从开始标签到结束标签的所有代码. 开始(开放)标签 元素内容 结束(闭合)标签 <p> this is my web page </p> 没有内容的 HT ...