K-NN近邻算法-Python实现
2018-02-08 11:31
453 查看
K-近邻算法的一般流程: (1)收集数据:比如问卷法,观察法等等。 (2)准备数据:距离计算所需的数值,最好是结构化的数据格式。 (3)分析数据:聚类分析、因子分析、相关分析、对应分析、回归分析、方差分析等。 (4)训练算法:在k-近邻中一般不用。 (5)测试算法:计算错误率。 (6)使用算法:首先需要输入样本数据和结构化的输出结果,然后运行k-近邻算法判定输入数据
分别属于哪个分类,最后应用对计算出的分类执行后续的处理。我们来实施kNN算法,为每组数据分类,先给出其实现思路如下:对未知类别属性的数据集中的每个点依次执行以下操作:(1)计算已知类别数据集中的每个点与当前点之间的距离:(2)按照距离递增次序排序;(3)选取与当前距离最小的k个点;(4)确定前k个点所在类别的出现频率;(5)返回前k个点出现频率最高的类别作为当前点的预测分类。实现代码如下:# !/usr/bin/env python
# -*-coding:utf-8-*-
# Author:TG
# Python实现K-NN算法
from numpy import *
import operator
def createDataSet():
group = array([[1.0, 1.1], [1.0, 1.0], [0, 0], [0, 0.1]])
labels = ['A', 'A', 'B', 'B']
return group, labels
group, labels = createDataSet()
# 用Pyton实现K-NN(邻近)算法
def classify(inX, dataSet, labels, k):
dataSetSize = dataSet.shape[0]
print dataSetSize # 输出DataSetSize
diffMat = tile(inX, (dataSetSize, 1)) - dataSet
print tile(inX, (dataSetSize, 1))
print "================================="
print diffMat
sqDiffMat = diffMat ** 2
sqDistances = sqDiffMat.sum(axis=1)
distance = sqDistances ** 0.5
# ==================================
sortedDisIndicies = distance.argsort()
print sortedDisIndicies
classCount = {}
print "================================="
for i in range(k):
votellable = labels[sortedDisIndicies[i]]
print i
print sortedDisIndicies[i], votellable
classCount[votellable] = classCount.get(votellable, 0) + 1
sortedClassCount = sorted(classCount.iteritems(), key=operator.itemgetter(1), reverse=True)
print (sortedClassCount)
return sortedClassCount[0][0]
# 调用测试数据
classify([0, 0.2], group, labels, 3)
相关文章推荐
- k-近邻算法(k-NN)及其Python实现
- [python][numpy]简单K-近邻算法实现
- 机器学习—K近邻,KD树算法python实现
- k近邻(kNN)算法的Python实现(基于欧氏距离)
- K-近邻算法的Python实现(一)
- Python实现k-近邻算法
- K近邻分类算法实现 in Python
- K近邻分类算法实现 in Python
- 机器学习实战(第二篇)-k-近邻算法Python实现
- K近邻分类算法实现 in Python
- k-近邻算法 python实现(学习笔记no.1)
- 机器学习经典算法详解及Python实现–K近邻(KNN)算法
- 【机器学习】K-近邻算法的Python实现
- K-近邻算法python实现
- 机器学习实战python3 K近邻(KNN)算法实现
- K-近邻算法的Python实现 : 源代码分析
- python实现的 K-近邻算法代码详细解释
- K-近邻算法的python实现代码分享
- K-近邻算法(kNN)python实现
- 机器学习经典算法详解及Python实现--K近邻(KNN)算法