【机器学习实战】KNN算法

机器学习作为人工智能的重要分支,同时也是数据挖掘中不可或缺的算法支撑。本人接触时间不短,但研究尚浅。我计划用python来实现机器学习中较为常见的算法。

看透了自己,便无须小看别人。 (老舍)


机器学习

机器学习是一类算法的总称,可以分为监督学习和无监督学习。半监督学习是结合监督学习与无监督学习的一种机器学习方法,成为近几年的研究热点。这些算法试图从大量历史数据中挖掘出其中隐含的规律,并用于预测或分类。机器学习的目标是使学到的模型能很好地适用于“新样本”,具有泛化能力。此外,监督学习对应分类和回归,而无监督学习对应聚类和密度估计。半监督学习作为我读研期间的主要研究方向,后面会重点介绍个人的一些成果和心得感悟。下面介绍KNN算法,它非常有效且易于掌握。


KNN算法

k-近邻算法采用测量不同特征值之间的距离方法进行分类。

工作原理

1 有一个训练数据集,并且知道其中数据与其对应标签。
2 输入无标签的新数据之后,将新数据的每个特征和样本集中的数据对应的特征进行比较,然后提取样本数据集中最相似(距离最近)数据的分类标签;
3 把前k个数据标签中出现次数最多的分类,作为新数据的分类结果。


Demo代码

from numpy import *
import operator # 运算符模块(排序)
# from os import listdir

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

# k近邻算法
def classify(inX, dataSet, labels, k): # 待测坐标,训练集,标签,k
    dataSetSize = dataSet.shape[0] # 行数
    diffMat = tile(inX, (dataSetSize,1)) - dataSet
    sqDiffMat = diffMat**2
    sqDistances = sqDiffMat.sum(axis=1)
    distances = sqDistances**0.5 # 欧式距离
    sortedDistIndicies = distances.argsort() #对距离排序并用索引表示 [1 0 3 2]
    classCount={}
    for i in range(k):
        voteIlabel = labels[sortedDistIndicies[i]]
        classCount[voteIlabel] = classCount.get(voteIlabel,0) + 1 # 对k近邻的类分别计数
    sortedClassCount = sorted(classCount.items(), key=operator.itemgetter(1), reverse=True) #对分类与计数的列表排序('A',2),('B',1)
    print (sortedClassCount[0][0])
if __name__ == '__main__':
    group,labels = createDataSet()
    classify([1,0.5],group,labels,3)


A # 分类结果


说明:本文是从相关博文的分享总结与补充而来,如有疑问,还望各位同仁与前辈指正。

附作者相关研究:(望多多支持,感激不尽!)
超级热门工具下载!!!
DirectX修复工具V4.1增强版.zip
https://download.csdn.net/download/qq_35778860/76003621
DirectX修复工具V4.1标准版.zip
https://download.csdn.net/download/qq_35778860/76003426
DirectX修复工具V4.1在线修复版.zip
https://download.csdn.net/download/qq_35778860/76003325
周杰伦
周杰伦婚礼歌单 无损mp3歌曲 适用结婚 基础版+完整版
https://download.csdn.net/download/qq_35778860/80045641
Python:
Python实现线性回归、逻辑回归、KNN、SVM、朴素贝叶斯、决策树、K-Means7种机器学习算法的经典案例——亲测可用,链接
https://download.csdn.net/download/qq_35778860/20715889
Python实现飞机大战的完整代码——亲测可用,链接
https://download.csdn.net/download/qq_35778860/57165535
Python爬虫获取豆瓣网评分Top200的电影——亲测可用,链接
https://download.csdn.net/download/qq_35778860/56379309
Python根据下拉选项绘制雷达图和柱形图(异常预控平台)——亲测可用,链接
https://download.csdn.net/download/qq_35778860/20715210
python实现雷达图——亲测可用,链接
https://download.csdn.net/download/qq_35778860/20695215
基于python的北京房屋出租数据可视化分析与3D展示——亲测可用,链接
https://download.csdn.net/download/qq_35778860/20675051
基于Python设计的web接口聊天机器人
https://download.csdn.net/download/qq_35778860/66662593
用Python进行自然语言处理(中文).rar
https://download.csdn.net/download/qq_35778860/63652414
《机器学习实战》全书python代码——很全很完整
https://download.csdn.net/download/qq_35778860/62203534
Python3实现十大排序算法
https://download.csdn.net/download/qq_35778860/61630851
Python学生信息管理系统.zip
https://download.csdn.net/download/qq_35778860/85006851
C#
成绩管理系统(C/S结构的应用系统,含access数据库)——C#实现
https://download.csdn.net/download/qq_35778860/66967387
C#实现学生信息管理系统(包括增删改查功能)——亲测可用
https://download.csdn.net/download/qq_35778860/61620149
Matlab
极限学习机ELM+OSELM+KELM+半监督SSELM+USELM的matlab程序(附完整代码)
https://download.csdn.net/download/qq_35778860/56378533
BP+近邻KNN+LS最小二乘算法的matlab代码——亲测可用(含实例)
https://download.csdn.net/download/qq_35778860/56378309
基于matlab的卷积神经网络实现手写数字识别
https://download.csdn.net/download/qq_35778860/66667747
基于MATLAB的人工蜂群算法
https://download.csdn.net/download/qq_35778860/66665944
利用MATLABsilulink搭建有源电力滤波器仿真.zip
https://download.csdn.net/download/qq_35778860/63659150
动态规划MATLAB程序.zip
https://download.csdn.net/download/qq_35778860/63658838
基于matlab的模式识别基础实例源代码.zip
https://download.csdn.net/download/qq_35778860/63658486
Matlab_动态窗口法实现机器人在障碍环境下的模拟避碰仿真.zip
https://download.csdn.net/download/qq_35778860/63658232
bp神经网络整定pid参数matlab应用程序.rar
https://download.csdn.net/download/qq_35778860/63656174
利用深度学习的matlab程序编码仿真实现图像分割.zip
https://download.csdn.net/download/qq_35778860/63655267
matlab算法神经网络、粒子群算法、遗传算法、蚁群算法.rar
https://download.csdn.net/download/qq_35778860/74976067
Java
基于java的信息管理系统
https://download.csdn.net/download/qq_35778860/66658535
Java swing学生成绩系统(源码+数据库脚本).rar
https://download.csdn.net/download/qq_35778860/63653951
Jsp
jsp学生信息管理系统(源码+数据库脚本).zip
https://download.csdn.net/download/qq_35778860/63653655
SCN
随机配置网络SCN实现的matlab代码——亲测可用
https://download.csdn.net/download/qq_35778860/61636684
BLS
宽度学习BLS的matlab代码+Mnist数据集
https://download.csdn.net/download/qq_35778860/61635045
Mysql
Mysql增删改查代码操作,很全很完整——亲测可用
https://download.csdn.net/download/qq_35778860/61626574
C
基于单片机的交通灯控制系统设计(含代码,原理图)——C语言实现
https://download.csdn.net/download/qq_35778860/60383113
基于单片机的温度控制系统设计代码(含代码,原理图)——C语言实现
https://download.csdn.net/download/qq_35778860/60379923
郭天祥51单片机书中400例程——亲测可用
https://download.csdn.net/download/qq_35778860/58014293
Linux
一篇非常好的linux学习笔记分享(Linux入门绝佳).docx
https://download.csdn.net/download/qq_35778860/75444944
资料类
最全的事业编制考试计算机基础知识试题.doc
https://download.csdn.net/download/qq_35778860/85005561
江苏事业编制计算机类真题+解析.zip
https://download.csdn.net/download/qq_35778860/85005388
CSDN Share:大会PPT合集下载,纯干货!
https://download.csdn.net/download/qq_35778860/81175779
C语言教程基础篇【全免费】.ppt
https://download.csdn.net/download/qq_35778860/75560127
华为云Stack-8.0.pdf
https://download.csdn.net/download/qq_35778860/75445048
C++ 谭浩强(超级完整版).pptx
https://download.csdn.net/download/qq_35778860/74975782
表白类
999度玫瑰的表白程序源代码.zip
https://download.csdn.net/download/qq_35778860/74975889
网红表白程序-你要愿意爱我一辈子吗?
https://download.csdn.net/download/qq_35778860/74975870
Python设计表白神器无法拒绝的爱——亲测可用
https://download.csdn.net/download/qq_35778860/60723376
软件破解注册机
Matlab R2019b Win64 Crack.zip
https://download.csdn.net/download/qq_35778860/58000811
其他
微信转盘抽奖小程序源码.rar
https://download.csdn.net/download/qq_35778860/63652890

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

youthlost

您的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值