机器学习Python代码实战(二)分类算法:k-最近邻

一.k-最近邻算法步骤

1.选择适当的k值。它表示在预测新的数据点时要考虑的邻居数量。

2.计算距离。计算未知点与其他所有点之间的距离。常用的距离计算方法主要有欧氏距离,曼哈顿距离等。

3.选择邻居。在训练集中选择与要预测的数据点距离最近的k个邻居。

4.预测响应。统计这k个邻居中各类别的数量,并将要预测的数据点预测为这k个邻居中数量最多的类别。

下面以使用K-最近邻算法预测糖尿病(不需要特征标准化)为例说明k-最近邻算法的使用。

二.导入库和数据集

其中变量的中文含义如下:

Pregnancies:怀孕次数

Glucose:葡萄糖测试值

BloodPressure:血压

SkinThickness:皮肤厚度

Insulin:胰岛素

BMI:身体质量指数

Predigree:糖尿病遗传函数

Age:年龄

Outcome:糖尿病标签(即预测结果)

三.数据清洗

可以看到在上一步中某些列均出现了异常值0,此时需要进行数据清洗把异常值先替换为NaN,然后用该列的平均值填充。

四.划分测试集和训练集

先获取x,y如下。

然后进行训练集和测试集的划分,依旧是训练集占80%,测试集占20%。打印x的测试集如下。

五.模型训练

由于本数据集的自变量之间的数量级差别不是很大,故不需要使用特征标准化。

先导入k-最近邻分类器,再开始在训练集上训练模型

六.预测结果并输出混淆矩阵

混淆矩阵可视化如下:

采用准确率(Accurancy),精确率(precision),召回率(Recall),F1分数(F1 score)来评估模型。

模型的准确率、精确率、召回率和 F1 分数都在 50% 到 70% 之间,说明模型有一定的预测能力,但效果并不是特别好。

因此,我们尝试改进模型。

七.尝试优化

试着采用改变K值的方法。

把k值设置为6,运行。得到混淆矩阵如下。

可视化如下:

接下来计算指标值。

模型的准确率、精确率、召回率和 F1 分数都在 50% 到 80% 之间,说明模型有较好的预测能力,但仍有改进空间。

至于后续的优化,可能就需要继续调整k值或者采用其他的分类算法了,在这里不做过多讨论。

欢迎各位大佬批评指正,别忘了点赞加关注喔~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/748507.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

当大模型开始「考上」一本

参加 2024 河南高考,豆包和文心 4.0 过了一本线,但比 GPT-4o 还差点。 今天的大模型,智力水平到底如何? 2024 年高考陆续出分,我们想要解开这个过去一年普罗大众一直争论不休的话题。高考是衡量人类智力和学识水平的…

【数据建模】微分方程与动力系统

文章目录 微分方程与动力系统1. 微分方程的理论基础1.1 函数、导数与微分1.2 一阶线性微分方程的解1.3 二阶常系数线性微分方程的解 2. 使用python求解微分方程2.1 求解微分2.2 求解定积分2.2.1 quad函数求解2.2.2 梯型法则求解 3. 使用Scipy和Sympy解微分方程3.1 使用sympy求解…

记录一个80端口被占用导致软件打不开的问题

今天有个电脑,安装完我们的软件后,在浏览器上面打不开。但是我看虚拟机里面的配置啥的都很正常,我感觉不是软件挂了,应该是系统哪里的配置出了问题,导致软件打不开。 跟做软件的联系了,他让我直接访问虚拟机…

酷开系统丨开启家庭智能教育让学习成为一种乐趣

在数字化时代,孩子们接触的信息日益增多,而酷开系统洞察到了家长对孩子成长环境的关切。酷开系统,作为家庭娱乐与教育的融合平台,不仅注重提供丰富的教育资源,更致力于创造一个健康、有益的学习和娱乐环境。 在酷开系…

OPenFast软件中的NRELOffshrBsline5MW_Onshore_ServoDyn.dat文件详解

我先简单概括一下,后续我再详细总结:文件“NRELOffshrBsline5MW_Onshore_ServoDyn.dat”是用于NREL 5.0 MW基准风力发电机的ServoDyn模块的输入文件。它定义了仿真控制、变桨控制、发电机和扭矩控制、偏航控制以及输出设置等各种参数。以下是主要内容的总…

Uniapp的使用

为什么要使用uniapp uniapp 可以进行多端开发,uniapp 在设计的时候就拥有许多兼容性代码,可以兼容很多的平台 如 支付宝小程序 html页面 微信小程序等,注重开发效率而不是运行效率时 ,就可以考虑一下 uniapp 当然也可以去…

mysql窗口函数选择每个窗口的第一条数据

需求 假设我们有一个名为sales的表,我们想要按product分组,并为每个产品选择销售额最高的那一天 sales表 首先给每个产品按照销售量进行排名 SELECT product,sale_date,sales_amount,ROW_NUMBER() OVER (PARTITION BY product ORDER BY sales_amount …

Langchain-Chatchat 搭建知识库教程,老奶奶都能看懂的教程

本文将在 google 实验室中使用 Langchain-Chatchat 搭建一个知识库,还可以进行聊天等功能。 由于是在 google 实验室上面跑代码,所以本地电脑什么配置都无所谓! 效果图 运行起来后可以上传各种文档文件到知识库。 Langchain-Chatchat 是什…

sheng的学习笔记-hadoop,MapReduce,yarn,hdfs框架原理

目录 搭建hadoop 下载hadoop JAVA 下载bin windows 改环境变量 将winutils.exe和hadoop.dll放到C:\Windows\System32下,然后重启 修改配置 vim core-site.xml vim hdfs-site.xml hadoop-env.sh mapred-site.xml yarn-site.xml 格式化命令 启动集群 …

浅谈 MySQL 复制架构

Author:Arsen Date:2024/06/26 目录 前言一、参数设置1.1 slave_exec_mode1.2 max_allowed_packet1.3 binlog-do-db1.4 binlog-ignore-db1.5 replicate-ignore-db1.6 replicate-ignore-table1.7 replicate-wild-ignore-table1.8 slave_compressed_protoc…

【React】变量 useState

开发需要,随便学学react。上手第一天,感觉这个JS语法很怪,没有什么逻辑性,比较抽象。随便写写笔记。 跟着网上找的项目写写感觉这个项目还不错: 分享给码友 https://zh-hans.react.dev/learn/tutorial-tic-tac-toe 参…

最新MDYS14源码影视视频网站模板/苹果CMS系统/附搭建教程

最新MDYS14源码影视视频网站模板/苹果CMS系统/附搭建教程 基本介绍: 1、后台增加自定义参数,对应会员升级页面,以及积分充值 2、视频,演员,专题,收藏,会员系统模块齐全,支持子分类…

Taro + vue3 中微信小程序中实现拉起支付

在前端开发中 H5 的拉起支付和微信小程序的拉起支付 是不太一样的 现在分享一下微信小程序中的拉起支付 逻辑都在后端 我是用的Taro 框架 其实就是一个Api Taro 文档

【vue3】【vant】 移动端古诗词句子发布收藏项目

更多项目点击👆👆👆完整项目成品专栏 【vue3】【vant】 移动端古诗词句子发布收藏项目 获取源码方式项目说明:其中功能包括素材包含:项目运行环境运行截图 获取源码方式 加Q群:632562109项目说明&#xf…

2024智能驾驶兴趣人群研究报告

来源:百分点舆情中心 近期历史回顾: 劳动力效能提升指引白皮书》人效研究院.pdf 【标准】企业ESG管理体系(T-CERDS 5—2023).pdf 【实用标准】GB_T 43868-2024 电化学储能电站启动验收规程.pdf 【实用模板】用户侧新型储能项目管理流程图及备案资料清单…

二叉树——另一颗树的子树

目录 1:题目分析及思路 2:代码实现和分析 1:代码 2:分析 1:题目分析及思路 给我们两棵二叉树,分别是 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在&…

Planned independent reguirement can only be maintained via the network

背景:用户上线ps系统,物料用策略70跑需求 但是因为通用料被改了策略,改成其他的了,影响到计划独立需求了。 如果用户不需要了哪个料就会把数量改为0,或者直接删掉物料。之前建议是改成0,这样还有个记录在…

Pandas中的数据转换[细节]

今天我们看一下Pandas中的数据转换,话不多说直接开始🎇 目录 一、⭐️apply函数应用 apply是一个自由度很高的函数 对于Series,它可以迭代每一列的值操作: 二、⭐️矢量化字符串 为什么要用str属性 替换和分割 提取子串 …

如何ubuntu安装wine/deep-wine运行exe程序(包括安装QQ/微信/钉钉)

1.失败的方法: ubuntu22.04尝试下面这个链接方法没有成功, ubuntu22.04安装wine9.0_ubuntu 22.04 wine-CSDN博客 上面链接里面也提供了wine官方方法,链接如下:https://wiki.winehq.org/Ubuntu_zhcn 但是运行最后一个命令时候报…

HTTP-02

常用HTTP状态码是怎么分类的 常用的HTTP状态码是按照以下几个分类进行的: 1xx 信息类状态码:表示请求已被接收,需要进一步处理。 2xx 成功类状态码:表示请求已成功被服务器接收、理解和处理。 3xx 重定向类状态码:表…