题目链接:Kiggle:Digit Recognizer

Each image is 28 pixels in height and 28 pixels in width, for a total of 784 pixels in total.

  给的是28像素的高和宽,所以总共有784像素,在处理的过程中,先用PCA进行降维,对数据进行主要的特征分量;然后通过KNN(K-邻近算法)进行对测试数据的预测分类。

  1、对于PCA算法:主成分分析,是通过线性变质将原始数据转换程一组各维度无关的表示,可以用于提取数据的主要特征分量,用于高维数据的降维。

  步骤:

    1.将原始数据按行组成n行m列的矩阵X

    2.将X的每一行进行零均值化,即减去每一行的均值

    3.求出协方差矩阵

    4.求出协方差矩阵的特征值以及对应的特征向量

    5.将特征向量按对应特征值的大小从上到下按行排序,排列成矩阵,取前K行组成矩阵P

    6.Y=PX,即为降维到K维的数据

PCA算法相关函数:

pca(n_componments=n,copy=True,whiten=False)

n_componments:表示PCA想要保留的主要成分的个数,既保留下来的特征值的个数,当参数为“mle”时,将自动选取特征个数。

copy:bool类型,默认为True,表示在运行原始数据时,是否将原始数据复制一份,True为原始数据不变。

Whiten:默认为False,使每个特征具有相同的方差。

fit(x,y=None)

表示数据X是用来训练的数据

fit_transform(x)

表示用X来作为训练PCA的模型,同时返回降维后的数据,newX = fit_transform(x),newX是降维后的数据

inverse_tracnsform()

表示将降维后的数据返回到原始数据,X = pca.inverse_transform(newX)

transform(x)

将数据C转换成降维后的数据

   2、KNN算法

    步骤:

      1.计算测试数据与各个训练样本数据之间的距离,距离有两种计算方法,分别是欧式距离和曼哈顿距离

      2.按照距离的递增关系进行排序

      3.选取距离最近的前K个点

      4.确定前K个点的所在类别的出现频率

      5.返回前K个点中,出现频率最高的类别作为测试数据的预测类型

    样本属性:是在前K个最相似的样本中大多数属于的那一类

    KNN算法的时间复杂度是:O(D*N),D是特征维度,N是样本个数

Kiggle:Digit Recognizer的更多相关文章

  1. kaggle实战记录 =>Digit Recognizer

    date:2016-09-13 今天开始注册了kaggle,从digit recognizer开始学习, 由于是第一个案例对于整个流程目前我还不够了解,首先了解大神是怎么运行怎么构思,然后模仿.这样的 ...

  2. Kaggle—Digit Recognizer竞赛

    Digit Recognizer 手写体数字识别  MNIST数据集 本赛 train 42000样例 test 28000样例,原始MNIST是 train 60000 test 10000 我分别 ...

  3. DeepLearning to digit recognizer in kaggle

    DeepLearning to digit recongnizer in kaggle 近期在看deeplearning,于是就找了kaggle上字符识别进行练习.这里我主要用两种工具箱进行求解.并比 ...

  4. Kaggle入门(一)——Digit Recognizer

    目录 0 前言 1 简介 2 数据准备 2.1 导入数据 2.2 检查空值 2.3 正则化 Normalization 2.4 更改数据维度 Reshape 2.5 标签编码 2.6 分割交叉验证集 ...

  5. Kaggle 项目之 Digit Recognizer

    train.csv 和 test.csv 包含 1~9 的手写数字的灰度图片.每幅图片都是 28 个像素的高度和宽度,共 28*28=784 个像素点,每个像素值都在 0~255 之间. train. ...

  6. kaggle赛题Digit Recognizer:利用TensorFlow搭建神经网络(附上K邻近算法模型预测)

    一.前言 kaggle上有传统的手写数字识别mnist的赛题,通过分类算法,将图片数据进行识别.mnist数据集里面,包含了42000张手写数字0到9的图片,每张图片为28*28=784的像素,所以整 ...

  7. 适合初学者的使用CNN的数字图像识别项目:Digit Recognizer with CNN for beginner

    准备工作 数据集介绍 数据文件 train.csv 和 test.csv 包含从零到九的手绘数字的灰度图像. 每张图像高 28 像素,宽 28 像素,总共 784 像素.每个像素都有一个与之关联的像素 ...

  8. 使用sklearn进行集成学习——实践

    系列 <使用sklearn进行集成学习——理论> <使用sklearn进行集成学习——实践> 目录 1 Random Forest和Gradient Tree Boosting ...

  9. SMO序列最小最优化算法

    SMO例子: 1 from numpy import * 2 import matplotlib 3 import matplotlib.pyplot as plt 4 5 def loadDataS ...

随机推荐

  1. 【BZOJ4516】生成魔咒(后缀自动机)

    [BZOJ4516]生成魔咒(后缀自动机) 题面 BZOJ Description 魔咒串由许多魔咒字符组成,魔咒字符可以用数字表示.例如可以将魔咒字符 1.2 拼凑起来形成一个魔咒串 [1,2]. ...

  2. poj2373 Dividing the Path

    Dividing the Path Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5060   Accepted: 1782 ...

  3. virt-manager管理器新建虚拟机时出错:unsupported format character

    启动管理器出错:unsupported format character ‘��0xffffffef) at index 30 经验证,解决办法如下: 1.获取virt-manager的rpm包,并强 ...

  4. re正则模块

    1.正则表达式的常用符号 '.' 默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行 '^' 匹配字符开头,若指定flags MULTILINE,这种也可以匹配上 ...

  5. MSBuild问题积累

    我想要当属性ConfigurationType定义为StaticLibrary时,将其重新定义为StaticLibrary,按照以下来做,实现不了. <ConfigurationType> ...

  6. CSS常用标签-手打抄录-感谢原未知博主-拜谢了

    CSS常用标签   CSS常用标签 一 CSS文字属性 color : #999999; /*文字颜色*/ font-family : 宋体,sans-serif; /*文字字体*/ font-siz ...

  7. C11线程管理:原子变量&单调函数

    1.原子变量 C++11提供了原子类型std::atomic<T>,可以使用任意类型作为模板参数,使用原子变量就不需要使用互斥量来保护该变量,用起来更加简洁. 举个例子,如果要做一个计数器 ...

  8. Bargaining Table

    Bargaining Table time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...

  9. input美化问题

    对于前端来说,一个比较大的问题是,当HTML提供的最原始的控件长的很丑可是又没有相应的属性去更改,碰到这个问题时我们应该怎么办?比如radio的那个单选框我觉得好丑啊,怎么办呢?一个很好的思路就是把它 ...

  10. Java学习遇到的问题

    一. Java中泛型如何比较大小,继承Comparable类,然后实现其唯一的方法compareTo(): public class GenericClass<E extends Compara ...