点击关注上方“小田学python”,获取更多精彩内容
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径。
那么多余的内容就不说了,想必大家都明白,网上内容实在太多了。接下来进入正题,第一个机器学习算法——KNN。
01
原理透析
KNN算法即K-近邻算法,是机器学习算法当中相对较为简单的一个分类算法,它属于上图分类中的监督学习算法,监督学习是指利用一组已知类别的样本进行训练,来推断新的数据,也就是用打过标签的数据来训练。
它的判决是通过特征值的欧几里得距离:
欧式距离是最常见的距离量度,衡量的是多维空间中各个点之间的绝对距离。
具体判别方法是:一个样本在其特征空间里的K个最邻近的样本中进行投票,该样本属于投票数量较多的那个类别,K的取值要结合具体内容来调节。单凭文字看的很懵,那就上图吧:
上图描述的就是一个KNN算法的过程(数据位置随机,仅为介绍原理),其中五角星是待测数据,三角形和正方形分别是两个类别,K-近邻算法是在K个最近的样本中进行投票。例如,设置K=3,那么就计算得所有样本的欧氏距离,进行排序,取最近的3个,那么也就是其中的蓝色圈范围。其中包括两个三角形,一个正方形,其概率也就是:三角形 2/3,正方形 1/3,因此可以判别出该五角星属于三角形一类。
下面通过一个例子告诉你,KNN算法该如何实现: