码迷,mamicode.com
首页 > 其他好文 > 详细

最邻近分类

时间:2016-05-06 23:15:21      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:

数据集seeds.tsv

技术分享
15.26    14.84    0.871    5.763    3.312    2.221    5.22    Kama
14.88    14.57    0.8811    5.554    3.333    1.018    4.956    Kama
14.29    14.09    0.905    5.291    3.337    2.699    4.825    Kama
13.84    13.94    0.8955    5.324    3.379    2.259    4.805    Kama
16.14    14.99    0.9034    5.658    3.562    1.355    5.175    Kama
14.38    14.21    0.8951    5.386    3.312    2.462    4.956    Kama
14.69    14.49    0.8799    5.563    3.259    3.586    5.219    Kama
14.11    14.1    0.8911    5.42    3.302    2.7    5.0    Kama
16.63    15.46    0.8747    6.053    3.465    2.04    5.877    Kama
16.44    15.25    0.888    5.884    3.505    1.969    5.533    Kama
15.26    14.85    0.8696    5.714    3.242    4.543    5.314    Kama
14.03    14.16    0.8796    5.438    3.201    1.717    5.001    Kama
13.89    14.02    0.888    5.439    3.199    3.986    4.738    Kama
13.78    14.06    0.8759    5.479    3.156    3.136    4.872    Kama
13.74    14.05    0.8744    5.482    3.114    2.932    4.825    Kama
14.59    14.28    0.8993    5.351    3.333    4.185    4.781    Kama
13.99    13.83    0.9183    5.119    3.383    5.234    4.781    Kama
15.69    14.75    0.9058    5.527    3.514    1.599    5.046    Kama
14.7    14.21    0.9153    5.205    3.466    1.767    4.649    Kama
12.72    13.57    0.8686    5.226    3.049    4.102    4.914    Kama
14.16    14.4    0.8584    5.658    3.129    3.072    5.176    Kama
14.11    14.26    0.8722    5.52    3.168    2.688    5.219    Kama
15.88    14.9    0.8988    5.618    3.507    0.7651    5.091    Kama
12.08    13.23    0.8664    5.099    2.936    1.415    4.961    Kama
15.01    14.76    0.8657    5.789    3.245    1.791    5.001    Kama
16.19    15.16    0.8849    5.833    3.421    0.903    5.307    Kama
13.02    13.76    0.8641    5.395    3.026    3.373    4.825    Kama
12.74    13.67    0.8564    5.395    2.956    2.504    4.869    Kama
14.11    14.18    0.882    5.541    3.221    2.754    5.038    Kama
13.45    14.02    0.8604    5.516    3.065    3.531    5.097    Kama
13.16    13.82    0.8662    5.454    2.975    0.8551    5.056    Kama
15.49    14.94    0.8724    5.757    3.371    3.412    5.228    Kama
14.09    14.41    0.8529    5.717    3.186    3.92    5.299    Kama
13.94    14.17    0.8728    5.585    3.15    2.124    5.012    Kama
15.05    14.68    0.8779    5.712    3.328    2.129    5.36    Kama
16.12    15.0    0.9    5.709    3.485    2.27    5.443    Kama
16.2    15.27    0.8734    5.826    3.464    2.823    5.527    Kama
17.08    15.38    0.9079    5.832    3.683    2.956    5.484    Kama
14.8    14.52    0.8823    5.656    3.288    3.112    5.309    Kama
14.28    14.17    0.8944    5.397    3.298    6.685    5.001    Kama
13.54    13.85    0.8871    5.348    3.156    2.587    5.178    Kama
13.5    13.85    0.8852    5.351    3.158    2.249    5.176    Kama
13.16    13.55    0.9009    5.138    3.201    2.461    4.783    Kama
15.5    14.86    0.882    5.877    3.396    4.711    5.528    Kama
15.11    14.54    0.8986    5.579    3.462    3.128    5.18    Kama
13.8    14.04    0.8794    5.376    3.155    1.56    4.961    Kama
15.36    14.76    0.8861    5.701    3.393    1.367    5.132    Kama
14.99    14.56    0.8883    5.57    3.377    2.958    5.175    Kama
14.79    14.52    0.8819    5.545    3.291    2.704    5.111    Kama
14.86    14.67    0.8676    5.678    3.258    2.129    5.351    Kama
14.43    14.4    0.8751    5.585    3.272    3.975    5.144    Kama
15.78    14.91    0.8923    5.674    3.434    5.593    5.136    Kama
14.49    14.61    0.8538    5.715    3.113    4.116    5.396    Kama
14.33    14.28    0.8831    5.504    3.199    3.328    5.224    Kama
14.52    14.6    0.8557    5.741    3.113    1.481    5.487    Kama
15.03    14.77    0.8658    5.702    3.212    1.933    5.439    Kama
14.46    14.35    0.8818    5.388    3.377    2.802    5.044    Kama
14.92    14.43    0.9006    5.384    3.412    1.142    5.088    Kama
15.38    14.77    0.8857    5.662    3.419    1.999    5.222    Kama
12.11    13.47    0.8392    5.159    3.032    1.502    4.519    Kama
11.42    12.86    0.8683    5.008    2.85    2.7    4.607    Kama
11.23    12.63    0.884    4.902    2.879    2.269    4.703    Kama
12.36    13.19    0.8923    5.076    3.042    3.22    4.605    Kama
13.22    13.84    0.868    5.395    3.07    4.157    5.088    Kama
12.78    13.57    0.8716    5.262    3.026    1.176    4.782    Kama
12.88    13.5    0.8879    5.139    3.119    2.352    4.607    Kama
14.34    14.37    0.8726    5.63    3.19    1.313    5.15    Kama
14.01    14.29    0.8625    5.609    3.158    2.217    5.132    Kama
14.37    14.39    0.8726    5.569    3.153    1.464    5.3    Kama
12.73    13.75    0.8458    5.412    2.882    3.533    5.067    Kama
17.63    15.98    0.8673    6.191    3.561    4.076    6.06    Rosa
16.84    15.67    0.8623    5.998    3.484    4.675    5.877    Rosa
17.26    15.73    0.8763    5.978    3.594    4.539    5.791    Rosa
19.11    16.26    0.9081    6.154    3.93    2.936    6.079    Rosa
16.82    15.51    0.8786    6.017    3.486    4.004    5.841    Rosa
16.77    15.62    0.8638    5.927    3.438    4.92    5.795    Rosa
17.32    15.91    0.8599    6.064    3.403    3.824    5.922    Rosa
20.71    17.23    0.8763    6.579    3.814    4.451    6.451    Rosa
18.94    16.49    0.875    6.445    3.639    5.064    6.362    Rosa
17.12    15.55    0.8892    5.85    3.566    2.858    5.746    Rosa
16.53    15.34    0.8823    5.875    3.467    5.532    5.88    Rosa
18.72    16.19    0.8977    6.006    3.857    5.324    5.879    Rosa
20.2    16.89    0.8894    6.285    3.864    5.173    6.187    Rosa
19.57    16.74    0.8779    6.384    3.772    1.472    6.273    Rosa
19.51    16.71    0.878    6.366    3.801    2.962    6.185    Rosa
18.27    16.09    0.887    6.173    3.651    2.443    6.197    Rosa
18.88    16.26    0.8969    6.084    3.764    1.649    6.109    Rosa
18.98    16.66    0.859    6.549    3.67    3.691    6.498    Rosa
21.18    17.21    0.8989    6.573    4.033    5.78    6.231    Rosa
20.88    17.05    0.9031    6.45    4.032    5.016    6.321    Rosa
20.1    16.99    0.8746    6.581    3.785    1.955    6.449    Rosa
18.76    16.2    0.8984    6.172    3.796    3.12    6.053    Rosa
18.81    16.29    0.8906    6.272    3.693    3.237    6.053    Rosa
18.59    16.05    0.9066    6.037    3.86    6.001    5.877    Rosa
18.36    16.52    0.8452    6.666    3.485    4.933    6.448    Rosa
16.87    15.65    0.8648    6.139    3.463    3.696    5.967    Rosa
19.31    16.59    0.8815    6.341    3.81    3.477    6.238    Rosa
18.98    16.57    0.8687    6.449    3.552    2.144    6.453    Rosa
18.17    16.26    0.8637    6.271    3.512    2.853    6.273    Rosa
18.72    16.34    0.881    6.219    3.684    2.188    6.097    Rosa
16.41    15.25    0.8866    5.718    3.525    4.217    5.618    Rosa
17.99    15.86    0.8992    5.89    3.694    2.068    5.837    Rosa
19.46    16.5    0.8985    6.113    3.892    4.308    6.009    Rosa
19.18    16.63    0.8717    6.369    3.681    3.357    6.229    Rosa
18.95    16.42    0.8829    6.248    3.755    3.368    6.148    Rosa
18.83    16.29    0.8917    6.037    3.786    2.553    5.879    Rosa
18.85    16.17    0.9056    6.152    3.806    2.843    6.2    Rosa
17.63    15.86    0.88    6.033    3.573    3.747    5.929    Rosa
19.94    16.92    0.8752    6.675    3.763    3.252    6.55    Rosa
18.55    16.22    0.8865    6.153    3.674    1.738    5.894    Rosa
18.45    16.12    0.8921    6.107    3.769    2.235    5.794    Rosa
19.38    16.72    0.8716    6.303    3.791    3.678    5.965    Rosa
19.13    16.31    0.9035    6.183    3.902    2.109    5.924    Rosa
19.14    16.61    0.8722    6.259    3.737    6.682    6.053    Rosa
20.97    17.25    0.8859    6.563    3.991    4.677    6.316    Rosa
19.06    16.45    0.8854    6.416    3.719    2.248    6.163    Rosa
18.96    16.2    0.9077    6.051    3.897    4.334    5.75    Rosa
19.15    16.45    0.889    6.245    3.815    3.084    6.185    Rosa
18.89    16.23    0.9008    6.227    3.769    3.639    5.966    Rosa
20.03    16.9    0.8811    6.493    3.857    3.063    6.32    Rosa
20.24    16.91    0.8897    6.315    3.962    5.901    6.188    Rosa
18.14    16.12    0.8772    6.059    3.563    3.619    6.011    Rosa
16.17    15.38    0.8588    5.762    3.387    4.286    5.703    Rosa
18.43    15.97    0.9077    5.98    3.771    2.984    5.905    Rosa
15.99    14.89    0.9064    5.363    3.582    3.336    5.144    Rosa
18.75    16.18    0.8999    6.111    3.869    4.188    5.992    Rosa
18.65    16.41    0.8698    6.285    3.594    4.391    6.102    Rosa
17.98    15.85    0.8993    5.979    3.687    2.257    5.919    Rosa
20.16    17.03    0.8735    6.513    3.773    1.91    6.185    Rosa
17.55    15.66    0.8991    5.791    3.69    5.366    5.661    Rosa
18.3    15.89    0.9108    5.979    3.755    2.837    5.962    Rosa
18.94    16.32    0.8942    6.144    3.825    2.908    5.949    Rosa
15.38    14.9    0.8706    5.884    3.268    4.462    5.795    Rosa
16.16    15.33    0.8644    5.845    3.395    4.266    5.795    Rosa
15.56    14.89    0.8823    5.776    3.408    4.972    5.847    Rosa
15.38    14.66    0.899    5.477    3.465    3.6    5.439    Rosa
17.36    15.76    0.8785    6.145    3.574    3.526    5.971    Rosa
15.57    15.15    0.8527    5.92    3.231    2.64    5.879    Rosa
15.6    15.11    0.858    5.832    3.286    2.725    5.752    Rosa
16.23    15.18    0.885    5.872    3.472    3.769    5.922    Rosa
13.07    13.92    0.848    5.472    2.994    5.304    5.395    Canadian
13.32    13.94    0.8613    5.541    3.073    7.035    5.44    Canadian
13.34    13.95    0.862    5.389    3.074    5.995    5.307    Canadian
12.22    13.32    0.8652    5.224    2.967    5.469    5.221    Canadian
11.82    13.4    0.8274    5.314    2.777    4.471    5.178    Canadian
11.21    13.13    0.8167    5.279    2.687    6.169    5.275    Canadian
11.43    13.13    0.8335    5.176    2.719    2.221    5.132    Canadian
12.49    13.46    0.8658    5.267    2.967    4.421    5.002    Canadian
12.7    13.71    0.8491    5.386    2.911    3.26    5.316    Canadian
10.79    12.93    0.8107    5.317    2.648    5.462    5.194    Canadian
11.83    13.23    0.8496    5.263    2.84    5.195    5.307    Canadian
12.01    13.52    0.8249    5.405    2.776    6.992    5.27    Canadian
12.26    13.6    0.8333    5.408    2.833    4.756    5.36    Canadian
11.18    13.04    0.8266    5.22    2.693    3.332    5.001    Canadian
11.36    13.05    0.8382    5.175    2.755    4.048    5.263    Canadian
11.19    13.05    0.8253    5.25    2.675    5.813    5.219    Canadian
11.34    12.87    0.8596    5.053    2.849    3.347    5.003    Canadian
12.13    13.73    0.8081    5.394    2.745    4.825    5.22    Canadian
11.75    13.52    0.8082    5.444    2.678    4.378    5.31    Canadian
11.49    13.22    0.8263    5.304    2.695    5.388    5.31    Canadian
12.54    13.67    0.8425    5.451    2.879    3.082    5.491    Canadian
12.02    13.33    0.8503    5.35    2.81    4.271    5.308    Canadian
12.05    13.41    0.8416    5.267    2.847    4.988    5.046    Canadian
12.55    13.57    0.8558    5.333    2.968    4.419    5.176    Canadian
11.14    12.79    0.8558    5.011    2.794    6.388    5.049    Canadian
12.1    13.15    0.8793    5.105    2.941    2.201    5.056    Canadian
12.44    13.59    0.8462    5.319    2.897    4.924    5.27    Canadian
12.15    13.45    0.8443    5.417    2.837    3.638    5.338    Canadian
11.35    13.12    0.8291    5.176    2.668    4.337    5.132    Canadian
11.24    13.0    0.8359    5.09    2.715    3.521    5.088    Canadian
11.02    13.0    0.8189    5.325    2.701    6.735    5.163    Canadian
11.55    13.1    0.8455    5.167    2.845    6.715    4.956    Canadian
11.27    12.97    0.8419    5.088    2.763    4.309    5.0    Canadian
11.4    13.08    0.8375    5.136    2.763    5.588    5.089    Canadian
10.83    12.96    0.8099    5.278    2.641    5.182    5.185    Canadian
10.8    12.57    0.859    4.981    2.821    4.773    5.063    Canadian
11.26    13.01    0.8355    5.186    2.71    5.335    5.092    Canadian
10.74    12.73    0.8329    5.145    2.642    4.702    4.963    Canadian
11.48    13.05    0.8473    5.18    2.758    5.876    5.002    Canadian
12.21    13.47    0.8453    5.357    2.893    1.661    5.178    Canadian
11.41    12.95    0.856    5.09    2.775    4.957    4.825    Canadian
12.46    13.41    0.8706    5.236    3.017    4.987    5.147    Canadian
12.19    13.36    0.8579    5.24    2.909    4.857    5.158    Canadian
11.65    13.07    0.8575    5.108    2.85    5.209    5.135    Canadian
12.89    13.77    0.8541    5.495    3.026    6.185    5.316    Canadian
11.56    13.31    0.8198    5.363    2.683    4.062    5.182    Canadian
11.81    13.45    0.8198    5.413    2.716    4.898    5.352    Canadian
10.91    12.8    0.8372    5.088    2.675    4.179    4.956    Canadian
11.23    12.82    0.8594    5.089    2.821    7.524    4.957    Canadian
10.59    12.41    0.8648    4.899    2.787    4.975    4.794    Canadian
10.93    12.8    0.839    5.046    2.717    5.398    5.045    Canadian
11.27    12.86    0.8563    5.091    2.804    3.985    5.001    Canadian
11.87    13.02    0.8795    5.132    2.953    3.597    5.132    Canadian
10.82    12.83    0.8256    5.18    2.63    4.853    5.089    Canadian
12.11    13.27    0.8639    5.236    2.975    4.132    5.012    Canadian
12.8    13.47    0.886    5.16    3.126    4.873    4.914    Canadian
12.79    13.53    0.8786    5.224    3.054    5.483    4.958    Canadian
13.37    13.78    0.8849    5.32    3.128    4.67    5.091    Canadian
12.62    13.67    0.8481    5.41    2.911    3.306    5.231    Canadian
12.76    13.38    0.8964    5.073    3.155    2.828    4.83    Canadian
12.38    13.44    0.8609    5.219    2.989    5.472    5.045    Canadian
12.67    13.32    0.8977    4.984    3.135    2.3    4.745    Canadian
11.18    12.72    0.868    5.009    2.81    4.051    4.828    Canadian
12.7    13.41    0.8874    5.183    3.091    8.456    5.0    Canadian
12.37    13.47    0.8567    5.204    2.96    3.919    5.001    Canadian
12.19    13.2    0.8783    5.137    2.981    3.631    4.87    Canadian
11.23    12.88    0.8511    5.14    2.795    4.325    5.003    Canadian
13.2    13.66    0.8883    5.236    3.232    8.315    5.056    Canadian
11.84    13.21    0.8521    5.175    2.836    3.598    5.044    Canadian
12.3    13.34    0.8684    5.243    2.974    5.637    5.063    Canadian
View Code

 

最近邻算法knn.py

#coding:utf-8
import numpy as np
def learn_model(k, features, labels):
    return k, features.copy(),labels.copy()

def plurality(xs):#xs最近邻的标签
    from collections import defaultdict #支持缺省值的集合子类
    counts = defaultdict(int)    #给字典value元素添加默认类型 int
    for x in xs:
        counts[x] += 1    #对 xs 中的元素进行计数
    maxv = max(counts.values())    #返回出现次数最多的标签
    for k,v in counts.items():
        if v == maxv:
            return k

def apply_model(features, model):#训练集、训练标签
    k, train_feats, labels = model#k, features.copy(),labels.copy()
    results = []
    for f in features:
        label_dist = []  #用来存(k维最近邻,标签)元组
        for t,ell in zip(train_feats, labels):
            label_dist.append( (np.linalg.norm(f-t), ell) )#(norm(f-t)n维的距离、标签) norm:向量标准化
        label_dist.sort(key=lambda d_ell: d_ell[0])#按元祖第一个元素排序
        label_dist = label_dist[:k] #取前 k (k = 1) 个数值
        results.append(plurality([ell for _,ell in label_dist]))# _ 无实际意义
    return np.array(results)    #返回预测标签数组

def accuracy(features, labels, model):
    preds = apply_model(features, model)
    return np.mean(preds == labels)

 

主函数seeds_knn.py

#coding:utf-8
from load import load_dataset
import numpy as np
from knn import learn_model, apply_model, accuracy

features,labels = load_dataset(seeds) #数据特征、标签

def cross_validate(features, labels):
    error = 0.0
    for fold in range(10):                #十折交叉验证
        training = np.ones(len(features), bool)
        training[fold::10] = 0
        testing = ~training
        model = learn_model(1, features[training], labels[training])#k = 1
        test_error = accuracy(features[testing], labels[testing], model)#预测值与真实值比较
        error += test_error

    return error/ 10.0    #取十次的平均

error = cross_validate(features, labels) #数据集、标签
print(Ten fold cross-validated error was {0:.1%}..format(error))

features -= features.mean(0)    #转化为无量纲  从特征值中减去特征的平均值
features /= features.std(0)                        #将特征值除以它的标准差
error = cross_validate(features, labels)
print(Ten fold cross-validated error after z-scoring was {0:.1%}..format(error))

 

k分别取不同值时的结果:

技术分享

 

最邻近分类

标签:

原文地址:http://www.cnblogs.com/yuanzhenliu/p/5467304.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!