题目链接: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. 测试开发面试的Linux面试题总结之二:常用命令

    (1)Linux的文件系统目录配置要遵循FHS规范,规范定义的两级目录规范如下:        /home  每个账号在该目录下都有一个文件夹,进行数据的管理        /usr 有点像windo ...

  2. Linux之进程通信20160720

    好久没更新了,今天主要说一下Linux的进程通信,后续Linux方面的更新应该会变缓,因为最近在看Java和安卓方面的知识,后续会根据学习成果不断分享更新Java和安卓的方面的知识~ Linux进程通 ...

  3. django 配置xamdin遇到的坑

    是在 Django==1.11.7 这个版本下配置的,需要说明的是,不是通过pip install xadmin方式安装的 在github上下载的xadmin源码包,需要在项目的根目录下创建extra ...

  4. 2017 济南精英班 Day1

    不管怎么掰都是n*m-1 #include<cstdio> using namespace std; int main() { freopen("bpmp.in",&q ...

  5. MongoDB - MongoDB CRUD Operations, Insert Documents

    MongoDB provides the following methods for inserting documents into a collection: db.collection.inse ...

  6. MongoDB - MongoDB CRUD Operations, Query Documents, Iterate a Cursor in the mongo Shell

    The db.collection.find() method returns a cursor. To access the documents, you need to iterate the c ...

  7. 调试android chrome web page简明备忘

    必备工具 adb tools.android chrome 先开启手机调试模式 adb forward tcp:9919 localabstract:chrome_devtools_remote 成功 ...

  8. MagicB.0—怎样设置电脑自动关机?

    天太晚了,该睡觉了,可是你的东西也许正在下载,软件正在更新,总之电脑还有一些工作没有完成,又不需要你人为的守着,随他去吧!可是电脑已经工作了一天了,它也要休息一下,再者也不能浪费电力资源呀,那么就来使 ...

  9. 【洛谷P2515【HAOI2010】】软件安装

    题目描述 现在我们的手头有N个软件,对于一个软件i,它要占用Wi的磁盘空间,它的价值为Vi.我们希望从中选择一些软件安装到一台磁盘容量为M计算机上,使得这些软件的价值尽可能大(即Vi的和最大). 但是 ...

  10. vue-cli使用说明

    一.安装npm install -g vue-cli 推荐使用国内镜像 先设置cnpm npm install -g cnpm --registry=https://registry.npm.taob ...