机器学习之KNN的使用

本文介绍了KNN算法在分类问题中的应用,通过鸢尾花数据集进行实践。详细讲解了如何计算模型准确率,手动实现KNN算法,并探讨了KNN决策边界的选取,包括线性与非线性。同时强调了特征缩放的重要性,介绍了线性归一化和标准差归一化的两种方法,以确保算法的稳定性和准确性。
摘要由CSDN通过智能技术生成

KNN算法主要用于分类问题,算法适合于低维空间。

它的核心思想是:

  1. 给定一个预测目标
  2. 计算预测目标和所有样本之间的距离或者相似度
  3. 选择距离最近的前K个样本
  4. 通过投票来决定分类

sklearn包中自带的iris样本数据集,这里用这个数据集来练习knn算法。

1、iris数据集的介绍

参考:这一块内容昨天看了一篇博文,忘记地址了。

数据集内包含 3 类共 150 条记录,每类各 50 个数据。
每条记录都有 4 个特征:花萼长度、花萼宽度、花瓣长度、花瓣宽度。
鸢尾花有三个品种:iris-setosa, iris-versicolour, iris-virginica。
通过这4个特征预测鸢尾花属于哪个品种。

需导入库:

from sklearn.datasets import load_iris #导入样本数据集
import pandas as pd #处理数据
import numpy as np

获得数据:

dataSet = load_iris() 
data = dataSet['data']  # 数据
label = dataSet['target'] # 数据对应的标签
feature = dataSet['feature_names'] # 特征的名称
target = dataSet['target_names'] # 标签的名称

查看数据:

#创建DateFrame
df = pd.DataFrame(np.column_stack((data,label)),columns = np.append(feature,'label'))
pd.set_option('max_columns', 1000) #设置最大显示列数为1000
pd.set_option('max_row', 300)  #设置最大显示行数为300
df.set_value #删除和重置多索引的列名
print(df)

2、计算模型准确率的代码实现

需要导入的库:

#导入一个样本数据集
from sklearn import datasets
#用来做数据集的分割,把数据分成训练集和测试集
from sklearn.model_selection import train_test_split
#导入了KNN的模块,是sklearn提供的现成算法
from sklearn.neighbors import KNeighborsClassifier
import numpy as np

导入数据集:

iris = datasets.load_i
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值