近水楼台先得月翻译(近水楼台先得月全诗句)
导语:武汉课工场JAVA培训:“近水楼台先得月”——理解KNN算法
武汉课工场JAVA培训:——理解KNN算法
古语云:“近水楼台先得月”,意思是临近在水边的楼台就能优先得到月亮的光芒,也比喻由于接近某些人或事物而抢先得到某种利益或便利。还有一句类似的话:“远亲不如近邻”,说的是人在有需要时,邻居比远处的亲戚更加能获得支持和帮助。在人工智能领域,有一种算法,非常贴近上述的形象比喻,这就是KNN算法,即K最近邻算法(K-NearestNeighbors,简称KNN),它是一个比较简单的机器学习算法,也是一个理论上比较成熟的、运用基于样本估计的最大后验概率规则的判别方法。本文对KNN算法做一个通俗易懂的介绍,并通过python进行编码示范,让读者朋友对该算法有较好的理解。
“牛”还是“羊”——理解KNN
K最近邻算法的比较贴近的一个比喻场景是:一个牧场里,放养着许多牛和羊,它们交叉聚集生活在一起,有时某只动物自己都可能分不清自己是牛还是羊。按照K最近邻算法,它判别自己是牛或者羊的依据是——“我”周边离“我”最近的类别(牛或者羊),且在一定范围内是数量最多的类别,那“我”就是这个类别。归结到K最近邻算法中,就是在一个数据集中,新的数据点离哪一类最近且一定范围内最多,就和这一类属于同一类。
其中,这个一定范围就是邻居们(Neighbors)的数量,也就是K最近邻算法的“K”这个字母代表的数量(最近邻的个数)。在人工智能领域,大家所熟知的scikit-learn库中,K最近邻算法的K值可以通过n_neighbors参数来调节的,默认值是5。
“近水楼台”——KNN预测实战
“近水楼台先得月”可以很好地诠释KNN算法,下面我们进行一个KNN算法的实际应用,以方便读者更好地理解KNN算法。
当今每届大学生在毕业前一年都非常关注研究生考试,能进入硕士级别进一步深造,也是大多数学生所渴望的,本文将模拟某年部分硕士研究生的入学考试数据集,通过python编程演练一个KNN算法机器学习的建模、训练、预测过程,展示KNN算法的效果。
一、了解数据集
我们采用的数据集包含如下字段:
其中,2、3、4、5,分别是研究生入学考试的基础课程、政治课程、外语课程、专业课程的分数。
6是考试学生的本科学校分类,分类粗略的分为三级:3-超一流(如清北)、2-双一流、1-普通高校。
7是考试学生的目标硕士高校学校的分类,分类粗略的分为四级:3-超一流(如清北)、2-双一流、1-普通高校、0-表示未被录取。
二、导入和查看、准备数据集
三、生成训练集和测试集、使用KNN算法建模并评估模型分数
四、预测新成绩的分类
我们可以利用上面步骤建立的KNN模型来预测一下,看看他们目前的考试成绩能够进入研究生高校的类别是哪些:是成功登上清华北大的超一流神圣殿堂或者普通高校,还是遗憾地铩羽而归。经过这样的预测后,相信他们也会有一定的信心或者更加强化自身的学习力度,力争能考入心仪的理想学校。
说明,如果按他们的模拟考试成绩,A同学分类预测结果为“1-普通高校”,即KNN模型预测他能够考入一般的普通高校的研究生;B同学分类预测结果为“3-超一流高校(如清北)”,即KNN模型预测他能进入清北超一流殿堂,值得庆祝;C同学分类预测结果为“0-未被录取”,很遗憾,KNN模型预测他成绩不理想,无法考上研究生。
通过这个数据集和例子可以得出一定的推论:考试成绩好且在超一流高校读本科的学生,更容易被超一流的高校(如清北)的硕士学位录取,超一流高校(如清北)的学生可以说是“近水楼台”,比其他学生更容易“先得月”,也比较好地诠释了KNN算法的工作原理。
免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请反馈,一经查实立刻删除内容。本文内容由快快网络小涵创作整理编辑!