一、本周学习内容
知识点描述:用代码打开AI的大门
本周是机器学习小组第一期的第一周,我们这周从最简单的机器学习算法“K-近邻算法”开始,通过代码走进机器学习的大门,搞定传统机器学习算法。
我们的学习目标有三个:了解kNN算法的思想及其原理
使用python手动实现kNN算法
在sklearn中调用kNN算法了解监督学习和非监督学习的概念
二、学习资料
为了方便大家学习,我们推荐了相关的参考资料。
首先,建议阅读《机器学习的敲门砖:kNN算法》https://mp./s?__biz=MzI4MjkzNTUxMw==&mid=2247483857&idx=1&sn=c888f2c4d40fb64eec5f5e78a3467b1a&chksm=eb932867dce4a171e5e9dba9f46a4e46127f063d1f9e817d250c5a5c18c1dd55f2acfa3c2662&token=2129819246&lang=zh_CN#rd 全文,理解算法思想及其原理,并尝试实现文中代码。
西瓜书p225,介绍了kNN算法的相关内容。
推荐一篇网络上比较好的博文帮助理解:/gemine/p/11130032.html 大家也可以自行查找其他资料。
每人每周输出一(多)篇笔记,内容为知识点总结、实践代码或者是案例分析。建议有两种输出方式:学习模式:以公众号推送的参考资料为基础,对相关知识点进行自主学习。将自己的理解进行归纳总结,形成一篇学习笔记。即加强了对知识的梳理,又方便日后复习。了解模式:通读学习资料,从整体上了解相关知识。再加上从网上copy一些知识点,整体出一篇文章,待日后加强学习。
本周介绍比较简单的kNN算法的基本原理,然后依据原理手动实现算法,最后使用sklearn中提供的机器学习库完成一些小demo。
kNN算法思想朴素,没有数学公式,非常适合入门学习。相比大家学完之后会发现,算法其实也没那么难。大家加油!
三、自我学习
1)knn算法的思想及原理
knn算法就是基于投票思想进行的,核心是要选择一个合适恰当的k值(一般先取一个较小值,然后通过交叉验证法来调整),在已知的数据中,选择离预测数据距离最近的k个值,对这k个值所属类型进行投票,哪个y值的票数高,预测数据就属于哪一个y。
一般流程为:
计算测试对象到训练集中每个对象的距离
按照距离的远近排序
选取与当前测试对象最近的k的训练对象,作为该测试对象的邻居
统计这k个邻居的类别频次
k个邻居里频次最高的类别,即为测试对象的类别
2)knn算法的手动实现
按照算法思路,进行手动实现:a.求各训练数据到预测数据的距离,通常使用欧式距离;b.对这些距离进行排序;c.选择离得最近的k个,将它们对应的label放入数组中以供参考;d.对数组中的label进行统计投票,谁的票数高,谁就是预测数据对应的label。
3)调用skelearn实现knn算法
sklearn中有几乎所有常见的机器学习算法可以调用,直接调用knn classifier,约定k值,训练模型并预测即可。
4)关于sklearn中的KNeighborsClassifier方法:
5)其他--面试中的一些易考点
对比k-means与knn
第一期的学习内容非常简单,就这样啦~下周见👋
如果觉得《机器学习小组系列笔记---(一)knn算法》对你有帮助,请点赞、收藏,并留下你的观点哦!