在数据挖掘,智能推荐以及机器学习中KNN算法是一种最简单的算法,它的核心思想就是一个样本在特征空间中的k个最相邻的样本中的大多数都属于某一个类别,则该样本就是属于该类别。
我们就拿判断电影类型来说明这个这个算法。电影数据如下:
现在我们要判断唐人街探案的电影类型,那我们就需要先计算唐人街探案中的搞笑,拥抱、打斗镜头和其他电影之间的距离。怎么算?我们就用类似于勾股定理的方法或者曼哈顿距离来算,就把这些镜头数分别相减在平方,再总的相加然后开根号处理,得到最终的距离。d = math.sqrt((x[] - v[]) **2+ (x[1] - v[1]) **2+ (x[2] - v[2]) **2)
将计算的距离经行排序,然后去前k个数据,然后再看这K个数据中谁的类型出现次数最多,那么唐人街探案的电影类型就是它。
下面给出python中knn的核心代码。
其中shape、tile、sum、argsort都是numpy中的方法,所以在最开始的时候需要导入这个包,tile函数是将指定的内容进行重复。
领取专属 10元无门槛券
私享最新 技术干货