首先引入需要的包

%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. 关于开发中使用writeToFile时的注意事项

    总会有一些坑在前面等着你 我们先来看一下后台返回的部分json数据,稍后再来分析问题,仔细看一下userId和userCode两个字段,其他不用看 "list": [{ " ...

  2. 禁止Linux系统被 ping

    echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf sysctl -p 生效 开启ping功能: 删除 ...

  3. Docker存储驱动之OverlayFS简介

    简介 OverlayFS是一种和AUFS很类似的文件系统,与AUFS相比,OverlayFS有以下特性: 1) 更简单地设计: 2) 从3.18开始,就进入了Linux内核主线: 3) 可能更快一些. ...

  4. 获取手机 IP

    /** *  获取用户ip * *  @return 获取用户ip */ + (NSString *)getIPAddress { NSString *address = @"an erro ...

  5. SQL一次查出相关类容避免长时间占用表(上)

    /* server: db: EDI */ -- 以下案例多次查询同一张表,仅有组合条件Name+Direction不同 --可以使用一次查出相关类容避免长时间占用表 USE EDI GO DECLA ...

  6. Xamarin自定义布局系列——PivotPage,多页面切换控件

    PivotPage ---- 多页面切换控件 PivotPage是一个多页面切换控件,类似安卓中的ViewPager和UWP中的Pivot枢轴控件. 起初打算直接通过ScrollView+StackL ...

  7. maven 的 snapshot 和 release 的区别

    release 是发行版,通常正式发布使用. snapshot 快照版本.在开发过程中,每提交一次修改,编译好响应的jar包,都会更新到仓库中,所有添加了这个jar包的依赖都会把远程仓库里的jar包更 ...

  8. JAVA连接数据库后,对数据库进行增删改查

    1.Statement 增删改: 方法:execute(String SQL) String url="jdbc:Access:///E://A//shop.mdb"; Conne ...

  9. CentOS7搭建Confluence Wiki

    前言 在艾佳生活实习时,有三款团队协作系统特别喜欢:Wiki.Jira和Jenkins.对于Jenkins的搭建,之前<自动部署工具Jenkins>有过记录.这次,搭建一个Wiki,作为知 ...

  10. Angular2发布思路(整理官网Deployment页面)

    本文是按着ng2官网的高级内容“Deployment”的思路整理得出的,原文虽然在angular2的中文站下挂着,截止目前却还是英文版未翻译,笔者就在这里结合自己的理解给出原文的一点点整理.这是原文地 ...