机器学习实战-k近邻分类

k-近邻算法(KNN)

一。工作原理

存在一个样本数据集合,即训练样本集,并且样本集中每个数据都存在标签(样本集中每一数据与所属分类的对应关系),

输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据的分类标签,

一般只选择样本数据集中前k个最相似结果,通常k是不大于20的整数,将k个最相似数据中出现次数最多的分类,作为新数据的分类。

二。一般流程

1.收集数据

2.准备数据,计算所需要的数值

3.分析数据

4.训练数据

5.测试数据

6.使用算法:首先输入样本数据和结构化的输出结果,然后运行k-近邻算法判定输入数据分别属于哪个分类,最后应用

对计算出的分类执行后续的处理。

 三。代码

from numpy import *
import operatordef createDataSet() :group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])labels = ['A','A','B','B']return group, labelsdef classify0(inX, dataSet, labels, k) :dataSetSize = dataSet.shape[0]#calculate the distance between the inx and other traning datadiffMat = tile(inX, (dataSetSize,1)) - dataSet #titl for arraysqDiffMat = diffMat**2sqDistances = sqDiffMat.sum(axis=1) #calculate the sumprint "sqDistances=",sqDistancesdistances = sqDistances**0.5print "distances=",distancessortedDistIndicies = distances.argsort()print "sorted=",sortedDistIndicies#find the k nearest neighboursclassCount = {}for i in range(k) :voteIlabel = labels[sortedDistIndicies[i]]classCount[voteIlabel] = classCount.get(voteIlabel,0) +1sortedClassCount = sorted(classCount.iteritems(), key = operator.itemget
ter(1), reverse = True)<pre name="code" class="html"><span style="white-space:pre">	</span>print sortedClassCountreturn sortedClassCountif __name__=='__main__' :group, labels = createDataSet()classify0([0,0],group, labels, 3)

 

四。执行

在终端执行: python KNN.py

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/818861.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

脚本开发与自动化运维----shell脚本开发及其在DevOps中的应用

一.正则表达式 正则表达式(Regular Expression、regex 或 regexp, 缩写为RE), 又称规则表达式,是计算机科学中的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式是对字符串(包括普通字符(例如&#xff0c; a 到 z 之间的字母)和特殊字符(称为“…

信也科技网络自动化实践-网络策略管理

1、背景 随着各种法律法规和行业标准的出台和更新&#xff0c;企业或组织需要遵守各种安全合规性要求。网络安全策略管理需要符合这些要求&#xff0c;从而保障企业或组织的安全和合规性。网络安全策略管理需要涵盖企业或组织的整个网络生命周期&#xff0c;包括网络规划、设计…

场景文本检测识别学习 day04(目标检测的基础概念)

经典的目标检测方法 one-stage 单阶段法&#xff1a;YOLO系列、SSD系列 one-stage方法&#xff1a;仅预测一次&#xff0c;直接在特征图上预测每个物体的类别和边界框输入图像之后&#xff0c;使用CNN网络提取特征图&#xff0c;不加入任何补充&#xff08;锚点、锚框&#x…

第二十章hive

1) 窗口函数 over&#xff08;partition by 分组字段 order by 排序字段 rows between 起始行 and 结束行&#xff09; 窗口计算范围的指定 需要使用rows 进行指定 计算行数 范围的确认&#xff1a; 默认情况下没有指定partition by 的字段&#xff0c;范围是全表&#xff…

Kafka 架构深入介绍 及搭建Filebeat+Kafka+ELK

目录 一 架构深入介绍 &#xff08;一&#xff09;Kafka 工作流程及文件存储机制 &#xff08;二&#xff09;数据可靠性保证 &#xff08;三&#xff09;数据一致性问题 &#xff08;四&#xff09;故障问题 &#xff08;五&#xff09;ack 应答机制 二 实…

蓝桥杯2024年第十五届省赛

E:宝石组合 根据给的公式化简后变为gcd(a,b,c)根据算数基本定理&#xff0c;推一下就可以了 然后我们对1到mx的树求约数&#xff0c;并记录约数的次数&#xff0c;我们选择一个最大的且次数大于等3的就是gcd int mx; vector<int> g[N]; vector<int> cnt[N]; int…

关于Cortex-M3单片机出现Fault故障,应该如何判断和解决

一、Fault故障的种类及检查思路 Cortex-M3单片机出现Fault故障可能是由于多种原因引起的&#xff0c;包括软件错误、硬件故障或者外部环境因素等。以下是一些常见的方法来判断和解决这些故障&#xff1a; 查看Fault类型&#xff1a;Cortex-M3处理器有多种Fault类型&#xff0c…

基于贝叶斯算法的机器学习在自动驾驶路径规划中的应用实例

目录 第一章 引言 第二章 数据准备 第三章 贝叶斯路径规划模型训练 第四章 路径规划预测 第五章 路径执行 第六章 实验结果分析 第一章 引言 自动驾驶技术的发展带来了自动驾驶车辆的出现&#xff0c;而路径规划作为自动驾驶车辆的关键功能之一&#xff0c;对于确定最佳行…

Android Dialog圆角设置无效的问题

一&#xff0c;参考 Android Dialog圆角设置无效的问题 https://blog.csdn.net/woshi_awei/article/details/99664527 Android自定义Dialog实现通用圆角对话框 https://cloud.tencent.com/developer/article/1740956 二&#xff0c;原因 Diallog的默认背景是白色&#xff0…

JVM之JVM栈的详细解析

Java 栈 Java 虚拟机栈&#xff1a;Java Virtual Machine Stacks&#xff0c;每个线程运行时所需要的内存 每个方法被执行时&#xff0c;都会在虚拟机栈中创建一个栈帧 stack frame&#xff08;一个方法一个栈帧&#xff09; Java 虚拟机规范允许 Java 栈的大小是动态的或者是…

【Go】 编码解码基础,encoding标准库:base64、binrary、json、xml、gob、hex、pem、csv

目录 base64 binary json xml CSV GOB HEX PEM 总结 在 Go 语言中&#xff0c;encoding 标准库提供了多种用于数据编码和解码的包&#xff0c;如 asn1、base64、binary、json、xml 等。下面我将分别介绍这些包的基本使用方法。 base64 encoding/base64 包用于处理 Ba…

标准版uni-app移动端页面添加/开发操作流程

页面简介 uni-app项目中&#xff0c;一个页面就是一个符合Vue SFC规范的.vue文件或.nvue文件。 .vue页面和.nvue页面&#xff0c;均全平台支持&#xff0c;差异在于当uni-app发行到App平台时&#xff0c;.vue文件会使用webview进行渲染&#xff0c;.nvue会使用原生进行渲染。…

centos开机自启的方式总结

centos管理服务的开机自启的方式有这些&#xff1a; 1. systemctl systemctl使用enable/disable来开机自启和禁用开机自启&#xff1a; systemctl enable sshd 开机自动的配置文件存储在/etc/systemd下。 2.chkconfig 这个命令是用于简化服务的管理&#xff0c;和systemct…

用海豚调度器定时调度从Kafka到HDFS的kettle任务脚本

在实际项目中&#xff0c;从Kafka到HDFS的数据是每天自动生成一个文件&#xff0c;按日期区分。而且Kafka在不断生产数据&#xff0c;因此看看kettle是不是需要时刻运行&#xff1f;能不能按照每日自动生成数据文件&#xff1f; 为了测试实际项目中的海豚定时调度从Kafka到HDF…

ActiveMQ主从架构和集群架构的介绍及搭建

一、主从和集群架构的特点 1.1 主从架构的-Master/slave模式特点 读写分离&#xff0c;纵向扩展&#xff0c;所有的写操作一般在master上完成&#xff0c;slave只提供一个热备 1.2 集群架构-Cluster模式特点 分布式的一种存储&#xff0c;水平的扩展&#xff0c;消息的分布…

CCleaner怎么清理软件缓存 CCleaner清理要勾选哪些 ccleanerfree下载

CCleaner软件是一款优秀的数据清理软件&#xff0c;其中没有硬盘和内存的设置&#xff0c;也不含任何广告软件&#xff0c;其出色的注册表清洁功能能够保证您的电脑更稳定运行。本文将围绕CCleaner怎么清理软件缓存&#xff0c;CCleaner清理要勾选哪些的相关内容进行介绍。 一、…

计算机网络——DNS协议

目录 前言 前篇 引言 IP地址与域名 DNS协议的工作流程 DNS服务器节点之间是如何维护上下级关系的 前言 本博客是博主用于复习计算机网络的博客&#xff0c;如果疏忽出现错误&#xff0c;还望各位指正。 这篇博客是在B站掌芝士zzs这个UP主的视频的总结&#xff0c;讲的非…

将本地项目上传到Github

首先安装git、创建github账号 1、创建一个新的仓库 2、创建SSH KEY。先看一下你C盘用户目录下有没有.ssh目录&#xff0c;有的话看下里面有没有id_rsa和id_rsa.pub这两个文件&#xff0c;有就跳到下一步&#xff0c;没有就通过下面命令创建。 ssh-keygen -t rsa -C "you…

面试算法-174-二叉树的层序遍历

题目 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[[3],[9,20],[15,7]] 解 class Solut…

代码随想录Day41:动态规划Part3

Leetcode 343. 整数拆分 讲解前&#xff1a; 毫无头绪 讲解后&#xff1a; 这道题的动态思路一开始很不容易想出来&#xff0c;虽然dp数组的定义如果知道是动态规划的话估摸着可以想出来那就是很straight forward dp定义&#xff1a;一维数组dp[i], i 代表整数的值&#xf…