@[TOC]《机器学习实战》-KNN算法心得)
准备开始在CSDN上用博客记录学习心得,同时也分享一些其中自己产生的脑洞(想法)
PS:第一次在CSDN上写,还不习惯这个编写方式
在写之前说一下,因为书里很多代码在python3以后都会编译错误,所以关于《机器学习实战》的总结,不会具体分析代码,代码问题在overstackflow或者matplotlib官网都能搜索到。
KNN是处理分类问题的,而且是监督的,即需要预先认为的给出一些已知类别的数据供KNN计算。其中对一个物体,需要人为的分成多个属性,并求出每个属性的值。它对属性的值要求可以是连续也可以是离散的。
书里介绍的KNN算法算是全书中最好理解的一部分了。其核心理论是将类别的多个属性看做是多维空间的参数,将已经识别的类数据库根据属性的值放置在这个多维空间中,然后用未知类别物体的属性值与已知的各个点进行距离计算(sqrt(x12+x22+x3^2……)),离得最近的点的类别就是这个未知类别物体的类别,当然,考虑到可能存在的误差,它取了前K个最近距离点,统计其中出现的类别次数,并返回出现次数最多的类别。
关于空间距离的说法,在很多机器学习的论文里,都会提到多维或者超维或者降维的问题,因为当初学线性代数的时候一上来就是行列式,所以以前没理解,后来看了一本《introduce to Linear algebra》(强烈推荐),上面一开