k近邻原理


#返回目录


K近邻原理

  • 目录
    • 模型介绍
    • 投票机制
    • sklearn实现


模型介绍

近邻
K近邻

样本分类的另一种方法,从样本属性出发,区别于感知机样本权重乘以权重.

投票机制

顿时想起了poll仰卧起坐的代码

    topKList = np.argsort(np.array(distList))[:topK]        #升序排序
    #建立一个长度时的列表,用于选择数量最多的标记
    #3.2.4提到了分类决策使用的是投票表决,topK个标记每人有一票,在数组中每个标记代表的位置中投入
    #自己对应的地方,随后进行唱票选择最高票的标记
    labelList = [0] * 10
    #对topK个索引进行遍历
    for index in topKList:
        #trainLabelMat[index]:在训练集标签中寻找topK元素索引对应的标记
        #int(trainLabelMat[index]):将标记转换为int(实际上已经是int了,但是不int的话,报错)
        #labelList[int(trainLabelMat[index])]:找到标记在labelList中对应的位置
        #最后加1,表示投了一票
        labelList[int(trainLabelMat[index])] += 1
    #max(labelList):找到选票箱中票数最多的票数值
    #labelList.index(max(labelList)):再根据最大值在列表中找到该值对应的索引,等同于预测的标记
    return labelList.index(max(labelList))
sklearn实现
from sklearn import datasets, neighbors, linear_model

X_digits, y_digits = datasets.load_digits(return_X_y=True)
X_digits = X_digits / X_digits.max()

n_samples = len(X_digits)

X_train = X_digits[:int(.9 * n_samples)]
y_train = y_digits[:int(.9 * n_samples)]
X_test = X_digits[int(.9 * n_samples):]
y_test = y_digits[int(.9 * n_samples):]

knn = neighbors.KNeighborsClassifier()
logistic = linear_model.LogisticRegression(max_iter=1000)

print('KNN score: %f' % knn.fit(X_train, y_train).score(X_test, y_test))
print('LogisticRegression score: %f'% logistic.fit(X_train, y_train).score(X_test, y_test))

文章作者: Jerry
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明来源 Jerry !
 本篇
k近邻原理 k近邻原理
#返回目录 K近邻原理 目录 模型介绍 投票机制 sklearn实现 模型介绍近邻 K近邻 样本分类的另一种方法,从样本属性出发,区别于感知机样本权重乘以权重. 投票机制 顿时想起了poll仰卧起坐的代码 top
下一篇 
逻辑斯蒂模型 逻辑斯蒂模型
#返回目录 逻辑斯蒂 目录 模型介绍 条件概率模型 sklearn实现 模型介绍 逻辑斯蒂 条件概率模型 作用 :1.解决极小距离差别带来的+1和-1的天壤之别2.预测式子可微 原理 代码 预测函数,从之前的si
  目录