Python3入门机器学习之2.1k近邻算法基础

Python3入门机器学习

2.1 k近邻算法基础

什么是k近邻算法?
K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。
所谓K近邻算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例(也就是上面所说的K个邻居), 这K个实例的多数属于某个类,就把该输入实例分类到这个类中。

下面通过一个实例来进一步说明k近邻算法:

(1).首先准备实验所需要的数据集。raw_data_X表示样本的特征,raw_data_y表示每一个样本所属的类别,用0和1来表示。然后将这些数据集转化成训练数据集X_train和y_train。
在这里插入图片描述
(2).根据数据集绘制散点图,形成一个样本空间,如下图。其中用0标记种类的样本用绿色的点描绘,用1标记种类的样本用红色的点描绘。
在这里插入图片描述
(3).这时若有一个新的样本点,预测它属于哪一部分。下图为散点图中加入这个点,用蓝色来表示。
在这里插入图片描述
(4).定义一个空的列表distances,用于存放各个样本点到这个新加入点x的距离。其中距离也就是欧拉距离。
在这里插入图片描述
(5).调用numpy中的argsort()方法,对一个数组进行排序,但是返回的是相应的排序结果的索引。然后将结果存给nearest这个变量,并且假设k=6。定义一个topK_y存放最近的6个点本来所属的的y。
在这里插入图片描述
(6).首先引入Counter这个方法,用来统计topK_y中每个数字(0和1)出现的频次,并将它赋给votes变量。然后点用most_common()方法找出票数最多的n个元素,我们传入1,也就是找出票数最多的1个元素,返回一个由元组组成的列表,其中元组的第一个元素为类别(0或1),第二个元素为频次。然后获得这个1,将它赋给predict_y这个变量,以求得新的样本所属的类别。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值