《算法图解》——第十章 K最近邻算法

       第十章    K最近邻算法

1  K最近邻(k-nearest neighbours,KNN)——水果分类


 

 

2  创建推荐系统

利用相似的用户相距较近,但如何确定两位用户的相似程度呢?

①特征抽取

对水果分类来说:个头和颜色就是特征

再根据这些特征绘图,然后根据毕达哥拉斯公式(欧氏距离呗)计算距离

对于推荐系统而言,同样是如此。

练习
10.1 在Netflix示例中,你使用距离公式计算两位用户的距离,但给电影打分时,每位用户的标准并不都相同。假设你有两位用户——Yogi和Pinky,他们欣赏电影的品味相同,但Yogi给喜欢的电影都打5分,而Pinky更挑剔,只给特别好的电影打5分。他们的品味一致,但根据距离算法,他们并非邻居。如何将这种评分方式的差异考虑进来呢?

归一化(normalization)

10.2 假设Netflix指定了一组意见领袖。例如,Quentin Tarantino和Wes Anderson就是Netflix的意见领袖,因此他们的评分比普通用户更重要。请问你该如何修改推荐系统,使其偏重于意见领袖的评分呢?

权重问题。

 

②回归

KNN中回归就是预测结果。

如果要使用KNN的话,一定要研究余弦相似度(cosine similarity),余弦相似度不计算两个矢量的距离,而比较它们的角度。

 

③挑选合适的特征

特征的标准:与要推荐的电影紧密相关的特征;

不偏不倚的特征(例如,如果只让用户给喜剧片打分,就无法判断他们是否喜欢动作片)。

 

练习
10.3 Netflix的用户数以百万计,前面创建推荐系统时只考虑了5个最近的邻居,这是太多还是太少了呢?

太少了。如果考虑的邻居太少,结果很可能存在偏差。一个不错的经验规则是:如果有N位用户,应考虑sqrt(N)个邻居。


 

 

3  机器学习简介

一个🌰:OCR是光学字符识别(optical character recognition),这意味着你可拍摄印刷页面的照片,计算机将自动识别出其中的文字。

OCR如何工作的?如何识别这个数字的?

KNN:①浏览大量的数字图像,将这些数字的特征提取出来。

②遇到新图像时,你提取该图像的特征,再找出它最近的邻居都是谁!

OCR算法提取线段、点和曲线等特征

OCR的第一步是查看大量的数字图像并提取特征,这被称为训练(training)。大多数机器学习算法都包含训练的步骤:要让计算机完成任务,必须先训练它。


 

 

4  小结

KNN用于分类和回归,需要考虑最近的邻居。
分类就是编组。
回归就是预测结果(如数字)。
特征抽取意味着将物品(如水果或用户)转换为一系列可比较的数字。
能否挑选合适的特征事关KNN算法的成败。

 

posted @ 2018-04-24 14:39  方玲是个小可爱  阅读(373)  评论(0编辑  收藏  举报