K-近邻算法鸢尾花种类预测--流程实现

Posted ZSYL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了K-近邻算法鸢尾花种类预测--流程实现相关的知识,希望对你有一定的参考价值。

1. 再识K-近邻算法API

  • sklearn.neighbors.KNeighborsClassifier(n_neighbors=5,algorithm=‘auto’)

    • n_neighbors:
      • int,可选(默认= 5),k_neighbors查询默认使用的邻居数
    • algorithm:{‘auto’,‘ball_tree’,‘kd_tree’,‘brute’}
      • 快速k近邻搜索算法,默认参数为auto,可以理解为算法自己决定合适的搜索算法。除此之外,用户也可以自己指定搜索算法ball_tree、kd_tree、brute方法进行搜索,
        • brute是蛮力搜索,也就是线性扫描,当训练集很大时,计算非常耗时。
        • kd_tree,构造kd树存储数据以便对其进行快速检索的树形数据结构,kd树也就是数据结构中的二叉树。以中值切分构造的树,每个结点是一个超矩形,在维数小于20时效率高。
        • ball tree是为了克服kd树高维失效而发明的,其构造过程是以质心C和半径r分割样本空间,每个节点是一个超球体。

2. 案例:鸢尾花种类预测

2.1 数据集介绍

Iris数据集是常用的分类实验数据集,由Fisher, 1936收集整理。Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集。关于数据集的具体介绍:

在这里插入图片描述

2.2 步骤分析

  • 1.获取数据集
  • 2.数据基本处理
  • 3.特征工程
  • 4.机器学习(模型训练)
  • 5.模型评估

2.3 代码过程

  • 导入模块
from sklearn.datasets import load_iris  # 加载数据
from sklearn.model_selection import train_test_split  # 数据基本处理:分割训练集与测试集
from sklearn.preprocessing import StandardScaler  # 特征工程:特征预处理
from sklearn.neighbors import KNeighborsClassifier  # 机器学习中需要的KNN算法
  • 先从sklearn当中获取数据集,然后进行数据集的分割
# 1.获取数据
iris = load_iris()

# 2.数据基本处理,(random_state训练的随机数种子不同,训练的模型不同)
x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=22)  # 特征值,目标值
  • 进行数据标准化

    • 特征值的标准化
# 3.特征工程 - 特征预处理
transfer = StandardScaler()  # 实例化一个标准化对象
# 传入特征值,test值,进行标准化处理,数据满足 0,1标准正态分布
x_train = transfer.fit_transform(x_train)  # 计算当前的均值和标准差
x_test = transfer.transform(x_test)
  • 模型进行训练预测
# 4.机器学习-KNN
# 4.1 实例化一个估计器
estimator = KNeighborsClassifier(n_neighbors=5)
# 4.2 模型训练
estimator.fit(x_train, y_train)

# 5.模型评估
# 5.1 获取预测值,结果输出
y_pre = estimator.predict(x_test)  # 使用测试值进行预测目标值
print('预测值是:\\n', y_pre)
print('真实值:\\n', y_test)
print('预测值和真实值的对比是:\\n', y_pre == y_test)

# 5.2 准确率计算
score = estimator.score(x_test, y_test)
print('准确率:\\n', score)

在这里插入图片描述
加油!

感谢!

努力!

以上是关于K-近邻算法鸢尾花种类预测--流程实现的主要内容,如果未能解决你的问题,请参考以下文章

机器学习k近邻算法鸢尾花种类预测

K-近邻算法鸢尾花种类预测

Python-机器学习-K近邻算法的原理与鸢尾花数据集实现详解

K-近邻算法(KNN)

使用KNN算法对鸢尾花种类预测

使用KNN算法对鸢尾花种类预测