这节课我们学习4.6节 knn 分类算法。Knn 算法又称 k 近邻算法,他是1968年由 c 和 h 特提出,算法思想非常简单。
Kiin 根据距离函数计算带分类样本 x 与每个训练样本的距离,以这个距离作为相似性,选择与钙分类样本距离最小的 k 个样本作为 x 的 k 近邻,最后以 x 的 k 近邻中的大多数所属的类别作为 x 的类别。
简单地说,有那么一堆你已经知道分类的数据,然后当一个新数据进入的时候,就开始跟训练数据中的每一个点求距离,然后挑出离这个数据最近的 k 个点,看看这 k 个点属于什么类型,然后用少数服从多数的原则给新数据归类。比如使用 knn 算法实现鸢尾花数据的分类代码如课件所示。
首先将150个样本进行划分,15%属于测试集,调用测试函数 knn class file 就可以实现测试集数据的预测了。Knn 算法的思路类似于近朱者赤,近墨者黑的思想,其最大的不足就是分类的速度比较慢。Kiai 运算法的时空复杂度会随着训练及规模和特征维数的增加而快速增加。
使用 knn 算法实现分类的案例很多,我们以机器学习实战书中的约会网站配对实例进行案例讲解。海丽使用约会网站寻找适合自己的约会对象,他将自己的约会对象分为三类,不喜欢,一般喜欢,非常喜欢。海利希望分类软件能很好地帮助他将匹配对象划分到确切的分类中,以便他在不同的时间约会不同的人。海丽收集了一些曾经约会过的人的信息,并把这些信息放在文本文件中。每个样本数据占一行。
样本主要有以下三个特征,每年获得的飞行常客里程数,玩视频游戏所耗时间百分比,每周消耗的冰激淋公生数。每个样本对应着一个分类,用数字一,二,三代替,一代表不喜欢,二代表一般喜欢,三代表非常喜欢。这是数据样本的部分数据集,这是数据样本的类别情况的图示。最后可以针对一个未知类别的人进行预测。海力士可能一般喜欢,非常喜欢还是不喜欢这个人?这种约会配对思路在电视节目中也得到了一些应用,比如相亲类节目非诚勿扰,2019年12月23日,非诚勿扰节目宣布进入二零时代,直推女生服务大数据。相亲就是每个嘉宾出场的时候,根据个人特点和喜好,给他推荐一个系统分析出来的约会对象,这也是一个非常有意思的分类与预测的实际应用案例。好了,本节课的内容我们就讲到这里,同学们,下节课再见。