一、题目:

原生python实现knn分类算法,用鸢尾花数据集

二、算法设计

1. 准备数据,对数据进行预处理

2. 选用合适的数据结构存储训练数据和测试元组

3. 设定参数,如k

4.维护一个大小为k的的按距离由大到小的优先级队列,用于存储最近邻训练元组。随机从训练元组中选取k个元组作为初始的最近邻元组,分别计算测试元组到这k个元组的距离,将训练元组标号和距离存入优先级队列

5. 遍历训练元组集,计算当前训练元组与测试元组的距离,将所得距离L 与优先级队列中的最大距离Lmax

6. 进行比较。若L>=Lmax,则舍弃该元组,遍历下一个元组。若L < Lmax,删除优先级队列中最大距离的元组,将当前训练元组存入优先级队列。

7. 遍历完毕,计算优先级队列中k 个元组的多数类,并将其作为测试元组的类别。

8. 测试元组集测试完毕后计算误差率,继续设定不同的k值重新进行训练,最后取误差率最小的k 值。

(来源于:百度百科)

三、源代码

编辑器:Spyder(Python3.6)

# -*- coding: utf-8 -*-
"""
Created on Sun Oct 13 10:38:54 2019"""from sklearn.datasets import load_iris      #导入鸢尾花数据集
from sklearn.model_selection import train_test_split      #train_test_split 函数可以打乱数据集并进行拆分
from sklearn.neighbors import KNeighborsClassifier
import numpy as np#加载鸢尾花数据集
iris_dataset=load_iris()
#分割数据为训练集和测试集
X_train,X_test,y_train,y_test = train_test_split(iris_dataset['data'],iris_dataset['target'],random_state=0)
#设置模型参数,邻居数目为2
knn = KNeighborsClassifier(n_neighbors=2)
#输入训练集数据
knn.fit(X_train,y_train)
#做出预测,预测花萼长5cm宽2.9cm,花瓣长1cm宽0.2cm的花
X_new = np.array([[5,2.9,1,0.2]])
prediction = knn.predict(X_new)
print("Prediction:{}".format(prediction))
print("Predicted target name:{}".format(iris_dataset['target_names'][prediction]))#评估模型
print("Test set score:{:.2f}".format(knn.score(X_test,y_test)))

四、运行

用鸢尾花数据集实现knn分类算法相关推荐

  1. python KNN分类算法 使用鸢尾花数据集实战

    KNN分类算法,又叫K近邻算法,它概念极其简单,但效果又很优秀. 如觉得有帮助请点赞关注收藏啦~~~ KNN算法的核心是,如果一个样本在特征空间中的K个最相似,即特征空间中最邻近的样本中的大多数属于某 ...

  2. 逻辑回归算法实现鸢尾花数据集的二分类

    1.介绍 前言   为了更好的理解本章内容,请参考下面的网址,自主学习一些矩阵求导运算. https://zhuanlan.zhihu.com/p/158182135机器学习约定规则: 向量对标量求导 ...

  3. Python实现knn分类算法(Iris 数据集)

    1.KNN分类算法 KNN分类算法(K-Nearest-Neighbors Classification),又叫K近邻算法,是一个概念极其简单,而分类效果又很优秀的分类算法. 他的核心思想就是,要确定 ...

  4. python分类算法_用Python实现KNN分类算法

    本文实例为大家分享了Python KNN分类算法的具体代码,供大家参考,具体内容如下 KNN分类算法应该算得上是机器学习中最简单的分类算法了,所谓KNN即为K-NearestNeighbor(K个最邻 ...

  5. KNN 分类算法原理代码解析

    作者 | Charmve 来源 | 迈微AI研习社 k-最近邻算法是基于实例的学习方法中最基本的,先介绍基x`于实例学习的相关概念. 基于实例的学习 已知一系列的训练样例,很多学习方法为目标函数建立起 ...

  6. 用Python开始机器学习(4:KNN分类算法)

    转自: http://blog.csdn.net/lsldd/article/details/41357931 1.KNN分类算法 KNN分类算法(K-Nearest-Neighbors Classi ...

  7. k近邻算法(KNN)-分类算法

    k近邻算法(KNN)-分类算法 1 概念 定义:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别. k-近邻算法采用测量不同特征值之间的 ...

  8. 利用python语言实现分类算法_使用python实现kNN分类算法

    k-近邻算法是基本的机器学习算法,算法的原理非常简单: 输入样本数据后,计算输入样本和参考样本之间的距离,找出离输入样本距离最近的k个样本,找出这k个样本中出现频率最高的类标签作为输入样本的类标签,很 ...

  9. 《机器学习实战》学习总结(一)KNN分类算法原理

    kNN分类算法属于有监督类学习算法. 该分类算法不需要训练算法,直接对待分类点进行决策分类. 算法实现过程如下: 1.计算测试点与已知类别数据集中点的距离: 2.对距离进行排序(递增). 3.选取与测 ...

最新文章

  1. 错误:You can't specify target table 'xxx' for update in FROM clause的解决
  2. 【青少年编程】【答疑】控制Scratch异步代码的执行顺序
  3. 定积分证明题例题_第二十天(20,11,27):积分中值定理
  4. 大连开发区取暖费能微信支付吗_下半年教资报考人数增加,那到底能不能异地报考呢?...
  5. ARM 编译 phddns
  6. Ubuntu“无法解析或打开软件包的列表或是状态文件”的解决办法。
  7. 大数据应用智能交通有哪些意义
  8. Java集合之一—HashMap
  9. SharePoint 网站搬迁
  10. 【WEB基础】HTML CSS 基础入门(2)选取工具:VS2019安装使用
  11. 世界是平的,这本书主要是写给美国人看的
  12. 计算机网络 ——网络原理之初识
  13. 遗传算法matlab_三分钟学会遗传算法
  14. Markdown入门指南【我为什么要推荐你学习Markdown?】
  15. 【Python学习笔记②】——基础的数据结构【两万字总结 + 字符串、列表、元组、字典 + 增删查改】
  16. 大学生创新创业项目管理系统
  17. 读OpenSceneGraph快速入门指导(Paul Martz著王锐钱学雷译)有感
  18. 前端面试题:讲一下jQuery
  19. WEB在线预览PDF,WORD方案总结
  20. AI为职业病做了啥贡献,了解一下

热门文章

  1. SQL Server 127个SQL server热门资料汇总
  2. Django模型修改数据
  3. 【点云系列】PoinNetVLAD:Deep Point Cloud Based Retrieval for Large-Scale Place Recognition
  4. 在Carla中添加新的地图
  5. stm32通用定时器用做外部脉冲计数器的例程
  6. Ksh if判断中与文件相关的选项整理
  7. ERP实施跨越五大难题(Zt)
  8. 【NKOJ-1096】母牛回家
  9. Webinar Replay: Dynamic routing at 1 million per second with Spring Integration
  10. 网络中的A类、B类、C类地址的划分