1、K最近邻 (k-nearest neighbours, KNN) 算法
问题:橙子还是柚子 ?
一般而言, 柚子更大、 更红。 这个水果又大又红, 因此很可能是柚子。但下面这样的水果呢?
一种办法是看它的邻居。 来看看离它最近的三个邻居。
在这三个邻居中, 橙子比柚子多, 因此这个水果很可能是橙子。这就是使用K最近邻 (k-nearest neighbours, KNN) 算法进行了分类!其中邻居的数目即为k的值。
2、k最近邻的应用
KNN可以用来做两项基本工作——分类和回归:
- 分类就是编组;
- 回归就是预测结果(如一个数字) 。
3、特征选取
4、小结
- KNN用于分类和回归, 需要考虑最近的邻居。
- 分类就是编组。
- 回归就是预测结果(如数字) 。
- 特征抽取意味着将物品(如水果或用户) 转换为一系列可比较的数字。
- 能否挑选合适的特征事关KNN算法的成败。
5、练习
- 在Netflix示例中, 你使用距离公式计算两位用户的距离, 但给电影打分时, 每位用户的标准并不都相同。 假设你有两位用户——Yogi和Pinky, 他们欣赏电影的品味相同, 但Yogi给喜欢的电影都打5分, 而Pinky更挑剔, 只给特别好的电影打5分。 他们的品味一致, 但根据距离算法, 他们并非邻居。 如何将这种评分方式的差异考虑进来呢?
- 假设Netflix指定了一组意见领袖。 例如, Quentin Tarantino和WesAnderson就是Netflix的意见领袖, 因此他们的评分比普通用户更重要。请问你该如何修改推荐系统, 使其偏重于意见领袖的评分呢?
- Netflix的用户数以百万计, 前面创建推荐系统时只考虑了5个最近的邻居, 这是太多还是太少了呢?
太少了。 如果考虑的邻居太少, 结果很可能存在偏差。 一个不错的经验规则是: 如果有N 位用户, 应考虑sqrt(N )个邻居。