K最近邻

# -*- coding: utf-8 -*-
import sys
import os
import time
from numpy import *
import numpy as np
import matplotlib.pyplot as plt
import operator
from test1 import *
# 夹角余弦距离公式
def cosdist(vector1,vector2):
return dot(vector1,vector2)/(linalg.norm(vector1)*linalg.norm(vector2)) # kNN分类器
# 测试集:testdata
# 训练集:trainSet
# 类别标签:listClasses
# k:k个邻居数
def classify(testdata, trainSet, listClasses, k):
# 返回样本集的行数
#dataSetSize = trainSet.shape[0]
dataSetSize=len(trainSet)#计算出训练集文本数,上面这两种方法都可以
# 计算测试集与训练集之间的距离:夹角余弦
#print(dataSetSize)
classcount={}
distances = array(zeros(dataSetSize))
print(distances)
for i in range(dataSetSize):
distances[i]=cosdist(testdata,trainSet[i])
print(distances)
sortdistances=argsort(distances)
print(sortdistances)
for indx in range(k):
votelabel=listClasses[sortdistances[indx]]
classcount[votelabel]=classcount.get(votelabel,0)+1
print(classcount)
print(classcount)
sortedclasscount=sorted(classcount.items(),key=operator.itemgetter(1),reverse=True)
return sortedclasscount[0][0] #d = sorted(s.iteritems(), key=lambda t: t[1], reverse=False)
dataSet,listClasses = loadDataSet()
nb = NBayes()
nb.train_set(dataSet,listClasses)
k = 3
print(classify(nb.tf[3], nb.tf, listClasses, k))
K最近邻的更多相关文章
- 转载: scikit-learn学习之K最近邻算法(KNN)
版权声明:<—— 本文为作者呕心沥血打造,若要转载,请注明出处@http://blog.csdn.net/gamer_gyt <—— 目录(?)[+] ================== ...
- K最近邻算法
K最近邻(K-Nearest-Neighbour,KNN)算法是机器学习里简单易掌握的一个算法.通过你的邻居判断你的类型,“近朱者赤,近墨者黑”表达了K近邻的算法思想. 一.算法描述: 1.1 KNN ...
- 分类算法——k最近邻算法(Python实现)(文末附工程源代码)
kNN算法原理 k最近邻(k-Nearest Neighbor)算法是比较简单的机器学习算法.它采用测量不同特征值之间的距离方法进行分类,思想很简单:如果一个样本在特征空间中的k个最近邻(最相似)的样 ...
- kNN算法:K最近邻(kNN,k-NearestNeighbor)分类算法
一.KNN算法概述 邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一.所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它 ...
- 【算法】K最近邻算法(K-NEAREST NEIGHBOURS,KNN)
K最近邻算法(k-nearest neighbours,KNN) 算法 对一个元素进行分类 查看它k个最近的邻居 在这些邻居中,哪个种类多,这个元素有更大概率是这个种类 使用 使用KNN来做两项基本工 ...
- 机器学习---K最近邻(k-Nearest Neighbour,KNN)分类算法
K最近邻(k-Nearest Neighbour,KNN)分类算法 1.K最近邻(k-Nearest Neighbour,KNN) K最近邻(k-Nearest Neighbour,KNN)分类算法, ...
- 图说十大数据挖掘算法(一)K最近邻算法
如果你之前没有学习过K最近邻算法,那今天几张图,让你明白什么是K最近邻算法. 先来一张图,请分辨它是什么水果 很多同学不假思索,直接回答:“菠萝”!!! 仔细看看同学们,这是菠萝么?那再看下边这这张图 ...
- 《算法图解》——第十章 K最近邻算法
第十章 K最近邻算法 1 K最近邻(k-nearest neighbours,KNN)——水果分类 2 创建推荐系统 利用相似的用户相距较近,但如何确定两位用户的相似程度呢? ①特征抽取 对水果 ...
- 12、K最近邻算法(KNN算法)
一.如何创建推荐系统? 找到与用户相似的其他用户,然后把其他用户喜欢的东西推荐给用户.这就是K最近邻算法的分类作用. 二.抽取特征 推荐系统最重要的工作是:将用户的特征抽取出来并转化为度量的数字,然后 ...
- [笔记]《算法图解》第十章 K最近邻算法
K最近邻算法 简称KNN,计算与周边邻居的距离的算法,用于创建分类系统.机器学习等. 算法思路:首先特征化(量化) 然后在象限中选取目标点,然后通过目标点与其n个邻居的比较,得出目标的特征. 余弦相似 ...
随机推荐
- python多线程下载
# -*- coding=utf-8 -*- import sys import os import os.path import time import urllib.request, urllib ...
- JavaWeb学习总结(十五)--过滤器的应用
一.解决全站字符乱码(post和get中文编码问题) 乱码问题: 获取请求参数中的乱码问题: POST请求:request.setCharacterEncoding("utf-8" ...
- 【Todo】蒙特卡洛(蒙特卡罗)树 & 卷积网络
https://www.zhihu.com/question/41176911/answer/90066752 这里面有关于Deep Learning和蒙特卡洛树的一些内容 https://www.z ...
- iOS 开发之照片框架详解(3)
http://kayosite.com/ios-development-and-detail-of-photo-framework-part-three.html 三. 常用方法的封装 虽然 Phot ...
- Boostrap学习心得
进入新公司,前端用到各种页面元素几乎都是bootStrap框架里的,下面介绍下某些页面控件怎么运用,作为知识点备份,提供有需要人观看: 首先下载bootstrap,地址http://www.bootc ...
- Linux系统的介绍
一.linux的特点: Linux是一个开源(源代码公开),免费的操作系统,其稳定性,安全性(也会有病毒,但因为linux是开源的,所以一旦有病毒就会有人去搞定它),处理多并发(月,NEC(日本电气股 ...
- Python语言及其应用 - 知识点遍历
遍历python语法 2.基本元素:数字.字符串和变量 2.1 python有哪些基本类型? 布尔型(True, False),整型(42,100000),浮点型(3.14159,1.0e8) ...
- ajax的详细学习
地址:http://www.cnblogs.com/Garden-blog/archive/2011/03/11/1981778.html
- 【CodeForces 651B】Beautiful Paintings 排序+贪心
题目大意: 给定集合,对于任意一个的排列,记,求. 很明显每次搞出一个长度为的最长上升序列,然后把元素给删掉,答案增加. 直接暴力需要. 但是可以进行优化. 设有个,将个数从小到大排序,记为长度为的数 ...
- 三张图彻底了解Java中字符串的不变性
转载: 三张图彻底了解Java中字符串的不变性 定义一个字符串 String s = "abcd"; s中保存了string对象的引用.下面的箭头可以理解为"存储他的引用 ...