kNN处理iris数据集-使用交叉验证方法确定最优 k 值

2023-11-11

基本流程:

1、计算测试实例到所有训练集实例的距离;
2、对所有的距离进行排序,找到k个最近的邻居;
3、对k个近邻对应的结果进行合并,再排序,返回出现次数最多的那个结果。

交叉验证:

对每一个k,使用验证集计算,记录k对应的错误次数,取错误数最小的k

iris鸢尾花数据集

网上有很多下载的
http://archive.ics.uci.edu/ml/machine-learning-databases/iris/

代码

# -*- coding: utf-8 -*-
import os
import pandas as pd
import matplotlib.pyplot as plt
import math
import operator

#按照8:2的比例分割数据
#testSetIndex : 第几组为测试样本,取值范围0 - 4
def splitData(trainSet, testSet, testSetIndex):
    #data = pd.read_csv('iris.txt', skiprows=0, skipfooter=0, sep=r'\s+', encoding="utf-8", engine='python', header=None)
    data = pd.read_csv('iris.txt', encoding="utf-8", engine='python', header=None)

    for i in range(150):
        if testSetIndex == (i % 50) / 10:
            testSet.append(data.iloc[i])
        else:
            trainSet.append(data.iloc[i])
    return

#计算欧氏距离
#instance1 : 实例1
#instance2 : 实例2
#dimension :维度
def computeDistance(instance1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kNN处理iris数据集-使用交叉验证方法确定最优 k 值 的相关文章

  • 如何查看Databricks中的所有数据库和表

    我想列出 Azure Databricks 中每个数据库中的所有表 所以我希望输出看起来像这样 Database Table name Database1 Table 1 Database1 Table 2 Database1 Table
  • 使用 psycopg2 在 python 中执行查询时出现“编程错误:语法错误位于或附近”

    我正在运行 Python v 2 7 和 psycopg2 v 2 5 我有一个 postgresql 数据库函数 它将 SQL 查询作为文本字段返回 我使用以下代码来调用该函数并从文本字段中提取查询 cur2 execute SELECT
  • SQLAlchemy 通过关联对象声明式多对多自连接

    我有一个用户表和一个朋友表 它将用户映射到其他用户 因为每个用户可以有很多朋友 这个关系显然是对称的 如果用户A是用户B的朋友 那么用户B也是用户A的朋友 我只存储这个关系一次 除了两个用户 ID 之外 Friends 表还有其他字段 因此
  • 如何在flask中使用g.user全局

    据我了解 Flask 中的 g 变量 它应该为我提供一个全局位置来存储数据 例如登录后保存当前用户 它是否正确 我希望我的导航在登录后在整个网站上显示我的用户名 我的观点包含 from Flask import g among other
  • 通过最小元素比较对 5 个元素进行排序

    我必须在 python 中使用元素之间的最小比较次数来建模对 5 个元素的列表进行排序的执行计划 除此之外 复杂性是无关紧要的 结果是一个对的列表 表示在另一时间对列表进行排序所需的比较 我知道有一种算法可以通过 7 次比较 总是在元素之间
  • 如何在 Python 中检索 for 循环中的剩余项目?

    我有一个简单的 for 循环迭代项目列表 在某些时候 我知道它会破裂 我该如何退回剩余的物品 for i in a b c d e f g try some func i except return remaining items if s
  • python 相当于 R 中的 get() (= 使用字符串检索符号的值)

    在 R 中 get s 函数检索名称存储在字符变量 向量 中的符号的值s e g X lt 10 r lt XVI s lt substr r 1 1 X get s 10 取罗马数字的第一个符号r并将其转换为其等效整数 尽管花了一些时间翻
  • 如何从网页中嵌入的 Tableau 图表中抓取工具提示值

    我试图弄清楚是否有一种方法以及如何使用 python 从网页中的 Tableau 嵌入图形中抓取工具提示值 以下是当用户将鼠标悬停在条形上时带有工具提示的图表示例 我从要从中抓取的原始网页中获取了此网址 https covid19 colo
  • Python 的“zip”内置函数的 Ruby 等价物是什么?

    Ruby 是否有与 Python 内置函数等效的东西zip功能 如果不是 做同样事情的简洁方法是什么 一些背景信息 当我试图找到一种干净的方法来进行涉及两个数组的检查时 出现了这个问题 如果我有zip 我可以写这样的东西 zip a b a
  • Pygame:有没有简单的方法可以找到按下的任何字母数字的字母/数字?

    我目前正在开发的游戏需要让人们以自己的名义在高分板上计时 我对如何处理按键有点熟悉 但我只处理过寻找特定的按键 有没有一种简单的方法可以按下任意键的字母 而不必执行以下操作 for event in pygame event get if
  • Pandas:merge_asof() 对多行求和/不重复

    我正在处理两个数据集 每个数据集具有不同的关联日期 我想合并它们 但因为日期不完全匹配 我相信merge asof 是最好的方法 然而 有两件事发生merge asof 不理想的 数字重复 数字丢失 以下代码是一个示例 df a pd Da
  • 如何在Python中对类别进行加权随机抽样

    给定一个元组列表 其中每个元组都包含一个概率和一个项目 我想根据其概率对项目进行采样 例如 给出列表 3 a 4 b 3 c 我想在 40 的时间内对 b 进行采样 在 python 中执行此操作的规范方法是什么 我查看了 random 模
  • Fabric env.roledefs 未按预期运行

    On the 面料网站 http docs fabfile org en 1 10 usage execution html 给出这个例子 from fabric api import env env roledefs web hosts
  • 每个 X 具有多个 Y 值的 Python 散点图

    我正在尝试使用 Python 创建一个散点图 其中包含两个 X 类别 cat1 cat2 每个类别都有多个 Y 值 如果每个 X 值的 Y 值的数量相同 我可以使用以下代码使其工作 import numpy as np import mat
  • 为字典中的一个键附加多个值[重复]

    这个问题在这里已经有答案了 我是 python 新手 我有每年的年份和值列表 我想要做的是检查字典中是否已存在该年份 如果存在 则将该值附加到特定键的值列表中 例如 我有一个年份列表 并且每年都有一个值 2010 2 2009 4 1989
  • 发送用户注册密码,django-allauth

    我在 django 应用程序上使用 django alluth 进行身份验证 注册 我需要创建一个自定义注册表单 其中只有一个字段 电子邮件 密码将在服务器上生成 这是我创建的表格 from django import forms from
  • 使用 Python 的 matplotlib 选择在屏幕上显示哪些图形以及将哪些图形保存到文件中

    我想用Python创建不同的图形matplotlib pyplot 然后 我想将其中一些保存到文件中 而另一些则应使用show 命令 然而 show 显示all创建的数字 我可以通过调用来避免这种情况close 创建我不想在屏幕上显示的绘图
  • 从列表指向字典变量

    假设你有一个清单 a 3 4 1 我想用这些信息来指向字典 b 3 4 1 现在 我需要的是一个常规 看到该值后 在 b 的位置内读写一个值 我不喜欢复制变量 我想直接改变变量b的内容 假设b是一个嵌套字典 你可以这样做 reduce di
  • 导入错误:没有名为 site 的模块 - mac

    我已经有这个问题几个月了 每次我想获取一个新的 python 包并使用它时 我都会在终端中收到此错误 ImportError No module named site 我不知道为什么会出现这个错误 实际上 我无法使用任何新软件包 因为每次我
  • 如何使用 Pycharm 安装 tkinter? [复制]

    这个问题在这里已经有答案了 I used sudo apt get install python3 6 tk而且效果很好 如果我在终端中打开 python Tkinter 就可以工作 但我无法将其安装在我的 Pycharm 项目上 pip

随机推荐

  • 【自然语言处理】大模型高效微调:PEFT 使用案例

    文章目录 一 PEFT介绍 二 PEFT 使用 2 1 PeftConfig 2 2 PeftModel 2 3 保存和加载模型 三 PEFT支持任务 3 1 Models support matrix 3 1 1 Causal Langu
  • 从新建项目到打包成APK(Cocos2d-x 2.2.1)

    好久没有更新Cocos2d x的学习文章了 最近在整理大学期间做过的东西 同时也新做了几个Cocos2d x的小程序 并且在网上搜索了不少资料 终于成功地打包成APK了 并在两个Android手机上成功运行 小for的环境是Windows8
  • DE-FAKE: Detection and Attribution ofFake Images Generated by Text-to-Image Generation Models

    一 文章信息 论文名称 DE FAKE Detection and Attribution of Fake Images Generated by Text to Image Generation Models 作者团队 二 主要创新 本文
  • 用python-opencv实现简单的人脸检测(代码+理论知识)

    目录 1 理论知识 1 安装opencv 2 opencv人脸检测器 3 加载人脸分类器 2 代码介绍 1 用摄影头调用图像 2 选择图片 3 完整代码 1 理论知识 1 安装opencv 本文实现人脸目标检测的方法是opencv图像采集
  • 华为云CodeArts DevSecOps系列插件——助力更高效的软件研发

    HDC期间入驻华为云 可参与Toolkit插件抽奖活动 活动链接在文末 一 前言 DevOps的概念想必大家都不陌生 它是一组过程 方法与系统的统称 通过它可以对交付速率 协作效率 部署频率速率 质量 安全和可靠性等进行提升改善 相比传统的
  • 基于NAR神经网络的化工产品价格预测的实现(Matlab)

    clear all clc 清除环境 xlsread styrene xls 读取苯乙烯价格序列 ans 系统会显示具体值 styrene ans 变换为行向量 lag 3 自回归阶数 iinput styrene n length iin
  • JSP实现简单的两数加法运算

    Request对象的作用 1 获取http请求行中信息 请求方式和请求路径 2 获取客户端信息 如ip 3 获取请求资源路径 4 域对象 具体需求 在浏览器上实现两个整数的加法运算 利用request携带参数实现加法运算 测试代码如下
  • Layui实现点击文字、缩略图查看图片功能

    刚完成一个客户需求 同一个页面上要有点击缩略图查看大图功能 也有点击图片名称查看原图的功能 点击缩略图查看大图的功能 点击缩略图查看大图的功能实现用的是layui开发文档内的layer photos 相册层 官方开发文档里photos支持传
  • weboffice 6版本实现在线word

    公司最近需要开发一个在线word功能 开始用pageoffice开发的功能被否决因为pageoffice的版权问题 后采用点聚weboffice的免费版开发 因为多个页面需要使用在线word功能 对于weboffice提供的activeX对
  • PHP代码审计示例(一)——淡然点图标系统SQL注入漏洞审计

    今天继续给大家介绍渗透测试相关知识 本文主要内容是PHP代码审计示例 淡然点图标系统SQL注入漏洞审计 免责声明 本文所介绍的内容仅做学习交流使用 严禁利用文中技术进行非法行为 否则造成一切严重后果自负 再次强调 严禁对未授权设备进行渗透测
  • Intellij多行同时缩进或者同时空格

    在使用JetBrains旗下的集成软件 如IDEA Pycharm PhpStorm Clion等时 通常需要整体向前或者向后缩进代码 以更加美观地编写代码 此时 可通过以下两个快捷键实现该功能 1 代码整体向后缩进 选中多行代码 按下ta
  • day9:JAVA中while的用法

    一 while循环 while循环是先判断条件是否为真 如果条件为真 则执行循环体 语句形式 while 循环条件 一条语句 多条语句 循环体 二 do while循环 do while循环是先执行循环体 再根据条件确定是否能在执行循环体
  • 【RabbitMQ】Consumer之消费模式、消息确认与拒绝 - 基于AMQP 0-9-1

    这篇文章主要和大家分享RabbitMQ Consumer端的知识点 主要包括Consumer的消费模式 消息是如何确认以及如何拒绝的 当消息拒绝之后 如何让消息重新进入队列 推模式 RabbitMQ支持推和拉两种消费模式 推模式就是由Bro
  • Windows下命令行修改IP及DNS

    需求 在频繁更换网段的情况下 通过动本修改比较方便 修改IP netsh interface ip set address 以太网 static 192 168 1 136 255 255 255 0 192 168 1 1 修改DNS n
  • 原生input实现上传文件

    1 先设置一下input 在change事件传一个参数
  • envi的纹理特征统计量_数据特征的选取

    图像特征的提取和选择是图像处理过程中很重要的环节 对后续图像分类有着重要的影响 并且对于图像数据具有样本少 维数高的特点 要从图像中提取有用的信息 必须对图像特征进行降维处理 特征提取与特征选择就是最有效的降维方法 其目的是得到一个反映数据
  • STM32学习笔记:gps两种解码的方式

    做为现在的物联网行业 手持设备中 缺少不了的就是GPS定位功能 GPS模块和STM32的串口进行通信 将GPS的数据发送给M3的串口 由M3进行GPS协议的解码 解析出来后保存在响应的结构体中 在进行显示 这里分别介绍2中解析协议的方法 第
  • 数据中心网络的电路交换域

    buffer 的意义在用带宽平滑统计突发 流量波动越大 统计复用能效越高 假设没有 buffer 将大量溢出和空载并存 但如果流量是可预期的 也可以转向相反的方向 比如虚电路 数据中心与 Internet 不同 流量类型相对固定 典型的如
  • java封装与继承

    封 装 防止用户在main 方法中设置错误变量数值 因此采用private关键字封装 私有化后主函数将无法直接调用被private定义的属性 方法 构造器和内部类 体现 私有化 private 后 因无法直接调用 所以将提供公共 publi
  • kNN处理iris数据集-使用交叉验证方法确定最优 k 值

    基本流程 1 计算测试实例到所有训练集实例的距离 2 对所有的距离进行排序 找到k个最近的邻居 3 对k个近邻对应的结果进行合并 再排序 返回出现次数最多的那个结果 交叉验证 对每一个k 使用验证集计算 记录k对应的错误次数 取错误数最小的