zoukankan      html  css  js  c++  java
  • Kiggle:Digit Recognizer

    题目链接: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是样本个数

  • 相关阅读:
    [CTSC2017]吉夫特(Lucas定理,DP)
    [CTSC2017]游戏(Bayes定理,线段树)
    [BZOJ3551][ONTAK2010]Peaks(加强版)(Kruskal重构树,主席树)
    [BZOJ4337][BJOI2015]树的同构(树的最小表示法)
    [BZOJ3786]星系探索(伪ETT)
    [CTSC2017]密钥
    PKUSC2018训练日程(4.18~5.30)
    [NOI2016]优秀的拆分
    [SDOI2008]Sandy的卡片
    [JSOI2007]字符加密
  • 原文地址:https://www.cnblogs.com/chenyang920/p/7271901.html
Copyright © 2011-2022 走看看