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

时间:2022-08-16 05:45:46

       第十章    K最近邻算法

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

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


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  机器学习简介

一个