KNN
KNN算法也成为k-邻近算法,其是一种通过测量特征值之间的距离来进行的分类算法。
KNN的工作原理:存在一个样本数 据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据 与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的 特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。一般来说,我们 只选择样本数据集中前k个最相似的数据,这就是k-近邻算法中k的出处,通常k是不大于20的整数。 最后,选择k个最相似数据中出现次数最多的分类,作为新数据的分类。
需要特征是离散的,可以被表示为向量。
步骤:
- 解析数据
- 分析数据,提取特征,去除异常数据
- 归一化数据,由于数据值域越大,越能影响结果,默认情况下我们需要让各特征具有一样的权重,所以需要将他们归一到相同的范围内。
newValue=(oldValue-min)/(max-min)
- 测试算法
KNN算法没有训练的过程,对于一个新的数据,直接在已有数据集中进行比较。可以用k-d Tree进行加速,不过当维度上万的时候,k-d Tree的计算成本也许会超过直接枚举。