k-NN算法

来源:互联网 发布:c语言初级题 编辑:程序博客网 时间:2024/05/16 00:47

    • 1-NN算法
    • k-NN算法
    • TF-IDF
    • 距离的描述
      • 1最常用的欧氏距离
      • 2 cosine similarity
    • graphlab里K-NN算法的使用

本内容整理自coursera,欢迎交流转载。

1. 1-NN算法

对于数据集,
initialize dis=+for i=1,2,,N    compute: δ=dis(xi,xq)     if δ<dis:       set dis=dis(x1,xq)return most similiar data

2. k-NN算法

下面介绍k-NN算法。
Initialize dis=sort(δ1,δ2,,δk)[便k,]for i=k+1,,N:    compute:δ=distance(xi,sq)    if δ<dis[k]:        find j such that δ>dis[j1] but lower than dis[j]        remove further data and shift queue        dis[j+1:k]=dis[j:k1]        dis[j]=δreturn k most similar data

3.TF-IDF

相关内容请参阅我的这篇博客。

4.距离的描述

4.1最常用的欧氏距离:

disiq=Dj=1[xi[j]xq[j]]2  D
很多时候我们希望不同的特征具有不同的权重,于是我们得到scaled euclidean distance:
disiq=Dj=1[xi[j]xq[j]]2  D          =(xixq)TA(xixq)
这里写图片描述

4.2 cosine similarity

定义:
cosine similarity=dj=1xi[j]xq[j]dj=1x2i[j]dj=1x2q[j]
那么:
dis=1cosine similarity
距离范围是(-1,1)

5 graphlab里K-NN算法的使用

model = graphlab.nearest_neighbors.create(wiki, label='name', features=['word_count'],method='brute_force', distance='euclidean')model.query(wiki[wiki['name']=='Barack Obama'], label='name', k=10)
1 0
原创粉丝点击