zoukankan      html  css  js  c++  java
  • KNN

    KNN算法也成为k-邻近算法,其是一种通过测量特征值之间的距离来进行的分类算法。

    KNN的工作原理:存在一个样本数 据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据 与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的 特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。一般来说,我们 只选择样本数据集中前k个最相似的数据,这就是k-近邻算法中k的出处,通常k是不大于20的整数。 最后,选择k个最相似数据中出现次数最多的分类,作为新数据的分类。 

    需要特征是离散的,可以被表示为向量。

    步骤:

    1. 解析数据
    2. 分析数据,提取特征,去除异常数据
    3. 归一化数据,由于数据值域越大,越能影响结果,默认情况下我们需要让各特征具有一样的权重,所以需要将他们归一到相同的范围内。
      newValue=(oldValue-min)/(max-min)
    4. 测试算法

    KNN算法没有训练的过程,对于一个新的数据,直接在已有数据集中进行比较。可以用k-d Tree进行加速,不过当维度上万的时候,k-d Tree的计算成本也许会超过直接枚举。

  • 相关阅读:
    HDU 5585 Numbers
    HDU 3308 LCIS
    POJ 2991 Crane
    POJ 1436 Horizontally Visible Segments
    POJ 3667 Hotel
    HaiHongOJ 1003 God Wang
    【SDOI 2008】 递归数列
    5月19日省中提高组题解
    【HDU 1588】 Gauss Fibonacci
    【POJ 3233】Matrix Power Series
  • 原文地址:https://www.cnblogs.com/LukeStepByStep/p/10096714.html
Copyright © 2011-2022 走看看