k-临近算法
来源:互联网 发布:淘宝主图图标素材 编辑:程序博客网 时间:2024/09/21 09:25
####################### 该代码文件可以直接运行,无需修改,输入数据 inx 可以自由修改以测试该分类器
import operator
from numpy import *####创建和准备的数据集
def createDataSet():
group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]]) ###这里有4组数据,每组数据抽象出两个特征
labels = ['A','A','B','B'] ######每组数据所属的类别
return group,labels
def classify0(inx,dataset,labels,k): ##########创建一个分类器,功能:判断数据 inx 属于哪个类别
datasetsize = dataset.shape[0] 获得训练样本集的大小
####计算距离
diffmat = tile(inx,(datasetsize,1)) - dataset
print diffmatsqdiffmat = diffmat ** 2
sqdistances = sqdiffmat.sum(axis = 1)
distances = sqdistances ** 0.5
print distances
########排序,sortdistinedicies存储的是下标(按距离从小到大排序)
sortdistindicies = distances.argsort()print sortdistindicies
classcount = {}
############选取距离最小的k个点,并保存成字典形式(类别:该类别频率)
for i in range(k):votelabel = labels[sortdistindicies[i]]
classcount[votelabel] = classcount.get(votelabel,0) + 1
print votelabel, classcount[votelabel]
###########对这k个点按照类别频率进行排序(从高到低)
###sortedclasscount = sorted(classcount.iteritems(),key = operator.itemgetter(1),reverse = True)sortedclasscount = sorted(classcount.iteritems(),key = lambda d:d[1],reverse = True)
print sortedclasscount[0] ###打印出现频率最高的类别,即为数据 inx 的类别
print sortedclasscount1[0]
def main():
dataset,labels = createDataSet()
print dataset
classify0([0,0],dataset,labels,3)
if __name__ == '__main__':
main()
0 0
- K临近算法
- k-临近算法
- k-临近算法
- opencv K临近算法(knearest)
- K-means算法和K临近算法
- k临近算法(k nearest neighbors)
- K临近算法k-Nearest Neighbor algorithm
- python机器学习k临近算法
- K-临近算法介绍和实践
- 聚类算法——K临近(KNN)
- 机器学习实战(python)一 k临近算法。
- 机器学习实战:k-临近算法(一)
- 机器学习实战:k-临近算法(二)
- KNN(K最临近算法)的python实现
- KNN-临近算法
- 机器学习实战_02-k临近
- hdoj 1007 临近点对算法模板
- KNN(NearestNeighbor)临近算法,自然语言讲解
- zsh切换bash bash切换zsh
- 补不manjaro系统
- Google Test 测试架构探究
- 数据归一化方法大全
- C语言的小知识(二)
- k-临近算法
- linu学习笔记(2)-shell命令简介
- poj 1258 Agri-Net【Kruskal】
- HDOJ 1811 Rank of Tetris(拓扑+并查集)
- Spring 使用注解方式进行事务管理
- 大数据---Spark1.5.0之2W2H
- gentoo安装个人总结2015版
- org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
- PCL 室内三维重建