python实现knn分类_knn分类算法底层实现(python)
# coding:utf-8
from collections import defaultdict
import numpy as np
from numpy import *
class knn:
def __init__(self):
pass
##给出训练数据以及对应的类别
def createDataSet(self):
group = array([[1.0, 2.0], [1.2, 0.1], [0.1, 1.4], [0.3, 3.5]])
labels = ['A', 'A', 'B', 'B']
return group, labels
###通过KNN进行分类
def classify(self, input, data_set, labels, k):
# 将input扩展成 n行的举证
in_matrix = tile(input, (len(data_set), 1))
# 输入举证和数据集做差 (x1-x2)
diff = in_matrix - data_set
# (x1-x2)**2
diff = diff ** 2
# (x1-x2)** 2 +(y1-y2)**2
sm = np.sum(diff, axis=1)
sm = np.sqrt(sm)
# 将距离排序
si = np.argsort(sm)
label_dict = defaultdict(int)
max_num = 0
target_lb = None
for i in range(k):
index = si[i]
lb = labels[index]
label_dict[lb] += 1
if label_dict[lb] > max_num:
max_num = label_dict[lb]
target_lb = lb
return target_lb
def norm_data_set(self, data_set):
'''
将数据集归一化
:param data_set:
:return:
'''
# 最大和最小的行向量
val_min = np.min(data_set, 0)
val_max = np.max(data_set, 0)
# 数据变动范围向量
val_range = val_max - val_min
row_num = data_set.shape[0]
matrix_range = tile(val_range, (row_num, 1))
matrix_sp = data_set - tile(val_min, (row_num, 1))
matrix_normal = matrix_sp / matrix_range
return matrix_normal
def norm_vec(self, vec, data_set):
'''
将被分类的向量归一化
:param vec:
:param data_set:
:return:
'''
data_set = np.vstack((data_set, vec))
# 最大和最小的行向量
val_min = np.min(data_set, 0)
val_max = np.max(data_set, 0)
# 数据变动范围向量
val_range = val_max - val_min
span = vec - val_min
return span / val_range
if __name__ == '__main__':
k = knn()
g, l = k.createDataSet()
ng = k.norm_data_set(g)
vec = [0.3, 3.2]
n_vec = k.norm_vec(vec, g)
b = k.classify(n_vec, ng, l, 4)
python实现knn分类_knn分类算法底层实现(python)相关推荐
- python数据挖掘 百度云,常用数据挖掘算法总结及Python实现高清完整版PDF_python数据挖掘,python数据分析常用算法...
常用数据挖掘算法总结及Python实现 高清完整版PDF 第一部分数据挖掘与机器学习数学基础 第一章机器学习的统计基础 1.1概率论 l概率论基本概念 样本空间 我们将随机实验E的一切可能基本结果组成 ...
- python二分法查找程序_基础算法——查找(二分法)(python)
基础算法--查找(二分法)(python).二分查找法(BinarySearchST)应用十分广泛,是必须要掌握的查找方法.适用对象是有序数组.具有最优的查找效率和空间需求,能够进行有序相关的操作.但 ...
- python实验室公众号_计算机算法与程序设计(python),中国大学MOOC(慕课)答案公众号搜题...
工业上常利用反应 3Cl2 + 6KOH(热) → KClO3 + 5KCl + 3H2O 制取KClO3(混有KClO).实验室模拟上述制备:在含溶 (1)黄铁矿(FeS2)是制造硫酸的矿物原料,反 ...
- 利用python语言实现分类算法_使用python实现kNN分类算法
k-近邻算法是基本的机器学习算法,算法的原理非常简单: 输入样本数据后,计算输入样本和参考样本之间的距离,找出离输入样本距离最近的k个样本,找出这k个样本中出现频率最高的类标签作为输入样本的类标签,很 ...
- 用python实现KNN算法对鸢尾花的分类
一.KNN算法 邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一.所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接 ...
- python实现KNN算法在电影分类中的应用
使用python实现KNN算法在电影分类中的应用 代码如下: import numpy as np import operator""" 使用KNN算法对电影进行分类 K ...
- Python KNN K近邻分类
Python KNN K近邻分类 1 声明 本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理. 2 KNN简介 相关概念见下: 对于给定的观测来 ...
- 「11」Python实战篇:利用KNN进行电影分类
上一期文章:「10」民主投票法--KNN的秘密 中,我们剖析了KNN算法的本质和特点.局限.这里我们用python代码进行KNN的实现.第1部分是KNN的基础算法步骤,第2部分是一个电影分类的实战项目 ...
- knn算法python代码_KNN算法原理(python代码实现)
kNN(k-nearest neighbor algorithm)算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性 ...
最新文章
- pwn学习总结(一) —— 常用命令
- jQuery 插件-(初体验一)
- Hadoop2调优(一):如何控制job的map任务和reduce任务的数量
- jMatter:提高开发速度10倍!
- 网络安全实验报告 第一章
- python小游戏贪吃蛇源码下载
- 三星5G手机全球销量200万台:年底将翻番
- Ref和Out关键字的区别
- Pandas 数据处理三板斧,你会几板?
- 如何使用Tuxera NTFS for Mac禁用特定NTFS分区
- C# 泛型LIST转DataTable
- 干货分享|Compare essay的写作方法
- SIFT算法特征描述子构建---关键点定位原理及代码
- PDPS软件:工装夹具机械装置运动操作的创建方法
- 使用Windows Server 2003轻松建立森林间信任
- 就是这35个人,率先入选了《共识算法高阶课》第一期!
- 使用 arduino nano DIY小台灯
- Android 开机向导(没有优先启动问题)
- 局域网内QQ代理设置
- windows虚拟主机控制面板哪个比较好用?
热门文章
- 95-190-742-源码-WindowFunction-AllWindowFunction
- 【impala】Impala中的invalidate metadata和refresh
- ANTLR-语法树遍历机制
- Eclipse下,LogCat(deprecated),显示不了内容,或者全部都是Unknown
- RabbitMQ架构模型(一)
- 字节跳动面试流程和考点都在这儿
- Flink从入门到入土
- MySQLi学习笔记 :二( 排序查询,聚合函数,分组查询,分页查询) 约束 多表之间的关系 范式 数据库的备份和还原
- linux sshd进程起不来,linux sshd服务异常
- 【Echarts底层相关】