使用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 ...
随机推荐
- javascript中加var和不加var的区别
Javascript是遵循ECMAScript标准下的一个产物,自然ECMAScript的标准其要遵循. 先来看下var关键字的定义和用法 var 语句用于声明变量. JavaScript 变量的创建 ...
- .net程序员必知必会
1.C#,.Net和ASP.Net的区别: C#(Csharp): .net平台下的一种语言:注:(其他语言也可以开发.Net程序) .net : ...
- JavaWeb之DBUtils
一.什么是DBUtils及作用 DBUtils是apache公司写的.DBUtils是java编程中的数据库操作实用工具,小巧简单实用. DBUtils封装了对JDBC的操作,简化了JDBC操作.可以 ...
- 北邮OJ
90. 字符串转换 时间限制 1000 ms 内存限制 65536 KB 题目描述 我们将仅由若干个同一小写字母构成的字符串称之为简单串,例如"aaaa"是一个简单串,而" ...
- WeMall微信商城源码插件会员卡代码详情
WeMall微信商城源码插件会员卡代码是用于商业推广的比较有效的方式,分享了部分比较重要的代码,供技术员学习参考 Index_index.html <html> <head> ...
- 3407: [Usaco2009 Oct]Bessie's Weight Problem 贝茜的体重问题
3407: [Usaco2009 Oct]Bessie's Weight Problem 贝茜的体重问题 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: ...
- ObjC中的AOP--面向切面编程
上篇博客我们类比着Java的Spring框架中的依赖注入的实现方式,也试着使用Objective-C来写了一下OC中的依赖注入的实现方式.当然,我们是使用的PList文件来加载的依赖注入时用到的依赖关 ...
- Dark的项链(树链剖分)
P2272 - Dark的锁链 Description 无向图中有N个节点和两类边,一类边被称为主要边,而另一类被称为附加边.Dark有N – 1条主要边,并且Dark的任意两个节点之间都存在一条只由 ...
- Entity Framework — ( Database First )
什么是Entity Framework Entity Framework是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案.将数据存储从域对象自动映射到关系 ...
- MySQL二进制日志总结
二进制日志简单介绍 MySQL的二进制日志(binary log)是一个二进制文件,主要用于记录修改数据或有可能引起数据变更的MySQL语句.二进制日志(binary log)中记录了对MySQL数据 ...