KNN算法实现鸢尾花的分类
- 题目
原生python实现knn分类算法,用鸢尾花数据集。
- 题目分析
KNN算法:
- 准备数据:来源百度下载鸢尾花数据集,共150组数据,将数据分为训练数据和测试数据,训练数据为120组,测试数据为30组。(KNN算法中训练集与测试集的比例应为0.74:0.25)。
- 设置特征数据和标签:花萼长度、花萼宽度、花瓣长度、花瓣宽度作为特征数据,鸢尾花种类为标签
- 设置邻居个数
- 选择距离的计算方式(采用欧几里得距离)
- 遍历进行求解距离(测试数据与训练数据之间的距离)
- 对每个测试数据求得的距离数据进行排序,按照邻居个数进行选择邻居,即选择距离最小的几个邻居。
- 预测结果,与其真实类别进行比较,计算准确率
- 算法设计
对数据的处理:
训练数据的处理:(测试数据同训练数据的处理方法)
对数据按行处理,去空格并按“,”将数据进行分割,前四列为特征数据,第五列为标签即鸢尾花的类别,使用了np.zeros(shape, dtype=float, order='C')返回:返回来一个给定形状和类型的用0填充的数组;
利用欧几里得公式计算测试机与训练集函数之间的距离
欧几里得距离:
对邻居的选择:
对每个测试数据求得的距离进行排序,选择距离最小的k 个邻居
对邻居的预测类别进行分类,得出预测结果
计算预测的正确率,即判断预测结果与实际类别是否相同
- 运行结果
- 总结
这次编程首先学习了对文本文件的处理,文本的读入,对数据的处理在这块卡了很久,后来是在一个博客里面看到的文本数据的处理方式,将数据进行分割,了解到了zeros()函数,使用的很僵硬,数据处理结束就是对KNN算法的设计了,该算法主要是距离的求解方法和邻居个数的选择,在求解距离时复习了距离的求解方法,在此采用的欧几里得距离,使用sort()函数对距离进行排序,按距离最小选择邻居,进行预测类别和真实类别的比较得出准确率。在此次编程时还学习了python中函数的使用,将每一个功能分别用函数的方式进行呈现。
KNN算法实现鸢尾花的分类相关推荐
- KNN算法实现鸢尾花数据集分类
KNN算法实现鸢尾花数据集分类 作者介绍 数据集介绍 KNN算法介绍 用KNN实现鸢尾花分类 作者介绍 乔冠华,女,西安工程大学电子信息学院,2020级硕士研究生,张宏伟人工智能课题组. 研究方向:机 ...
- 用python实现KNN算法对鸢尾花的分类
一.KNN算法 邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一.所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接 ...
- 【基础机器学习算法原理与实现】使用感知器算法LDA、最小二乘法LSM、Fisher线性判别分析与KNN算法实现鸢尾花数据集的二分类问题
本文设计并实现了PerceptronLA.PseudoIA.LeastSM.LinearDA.KNN等五个算法类,以及DataProcessor的数据处理类.对感知器算法LDA.最小二乘法LSM的伪逆 ...
- KNN算法解决鸢尾花分类案例
KNN算法解决鸢尾花分类案例 本文分别通过KNN底层算法实现和sklearn中的KNeighbors Classifier(K近邻分类模拟)和对3中不同的鸢尾花的分类. 一.K近邻(KNN)算法介绍 ...
- Knn算法实现鸢尾花分类
文章目录 前言 引例 KNN算法实现鸢尾花分类 1获取数据 2划分数据集 3特征工程:标准化数据 4模型训练 5模型评估 总结 前言 近朱者赤近墨者黑,物以类聚人以群分.KNN算法就是计算和别人和自己 ...
- 使用KNN算法对鸢尾花种类预测
使用KNN算法对鸢尾花种类预测 一. 数据集介绍 1.1 小数据集获取 load_* 1.2 大数据集获取 fetch_* 1.3 查看数据分布 seaborn画图的 二. 数据集的划分 三. 特征工 ...
- 机器学习:KNN算法对鸢尾花进行分类
机器学习:KNN算法对鸢尾花进行分类 1.KNN算法的理解: 1.算法概述 KNN(K-NearestNeighbor)算法经常用来解决分类与回归问题, KNN算法的原理可以总结为"近朱者赤 ...
- k近邻算法_K近邻(knn)算法是如何完成分类的?
摘要:K近邻算法是机器学习中的一个非常基础的算法.本文通过自生成数据,通过绘图的方式演示KNN算法的思路,让你不看数学公式就看了解什么是KNN算法. 关键词:KNN算法 1 生成一个二分类的数据集 本 ...
- KNN算法(附鸢尾花分类实现)
1.k近邻算法 k近邻学习(K-Nearest Neighbor,简称KNN)学习是一种常用的监督学习方法,其工作机制非常简单:给定测试样本,基于某种距离度量找出训练集中与其距离最近的k个样本,然 ...
最新文章
- TCP/IP详解--第七章
- 开发工具 | git、github使用场景总结
- mina应用程序架构(翻译)
- C#刷遍Leetcode面试题系列连载(4): No.633 - 平方数之和
- 用python将指定目录下的所有json文件合并成一个csv文件
- 机器学习之Stacking原理与实战
- Python---String 字符串类型
- RN react-navigation使用
- 在VS中查看MSI项目的Product Code
- Android使用adb命令
- c++ qt5范例开发大全_237页建设工程监理内业资料全套范例,附百份案例表格,快拿走...
- 如何用iMazing Profile Editor编辑配置文件
- 给MDK5/KEIL5安装51/ARM编译坏境
- 计算机管理打不开路径不存在,电脑打不开软件提示路径不正确如何解决
- 开机动画适配方案_修改开机动画教程
- pvp服务器有什么项目,N服PVP服率先回归!压测后未来3-4周正式开服
- C语言实现关机的小代码,不怎么完善,新人勿喷!
- 小游戏------扫雷
- 操作系统概论【引入操作系统中的基本概念和操作】
- java中library找不到了,java web 找不到java.library.path途径
热门文章
- php vip卡,vip.php
- Iphone6/6s刷机常见问题
- 计算机网络是主要的功能在于,计算机网络最基本功能之一是()。
- python连续输入直到回车退出_详解Python实现按任意键继续/退出的功能
- jquery手写table行列自动计算(自动计算小计和合计)
- STM32使能/屏蔽外部中断
- 极光推送完整流程测试
- Java下载文件时文件名中的中文变成下划线,其他正常
- 在osgEarth中添加模型的简单示例
- 计算机主板测试配件,如何检测主板是否有问题_如何诊断主板是否损坏,没有图形步骤...