当前位置: 首页 > news >正文

K近邻(KNN) 方法来填补缺失值

本文会讲解如何用knn方法填充DataFrame里面的Nan值

一、填充逻辑

1.拆分样本把所有样本分成两类:

完整样本:该行所有特征无缺失
残缺样本:该行存在至少 1 个 NaN,需要补值

2.计算欧氏距离

距离计算规则(只拿共同有效特征算距离)假设样本 A 有缺失,对比样本 B:只挑选A、B 两行都不为空的那些采样点(列),用这些对应数值计算欧式距离,距离越能代表两条波形整体相似度。

3.选取举例最小的前n_neighbors 个样本作为邻居

筛选近邻对残缺样本,算出它和所有完整样本的距离,取距离最小的前 n_neighbors 个样本作为邻居。

4.加权计算

加权计算填充值(weights='distance')距离越近的邻居权重越高

5.填充数据

逐缺失位置循环填充一行里多个 NaN 不会一次性全填,逐个缺失坐标重复上面步骤,全部补完输出完整数值矩阵。

二、读取数据

import pandas as pd
from sklearn.impute import KNNImputer
file_path = "../附件二(测试集) - 副本.xlsx"
df = pd.read_excel(file_path, sheet_name='测试集')

三、提取波形数据

把列名单独存一个变量,然后用这个变量作为参数传输到df这个DataFrame里面提取数据,再把列名的类型换成'字符串',方便后面模型训练(因为模型KNNImputer要求列为字符串类型)

wave_cols = df.columns[4:]
wave_data = df[wave_cols]
wave_data.columns = wave_data.columns.astype(str)

四、定义KNN模型

imputer = KNNImputer(n_neighbors=5,#填补每个缺失值时,KNN会选取5个最相似的邻居样本。weights='distance'#邻居对填补的贡献按距离的倒数加权
)

五、填充数据

wave_filled = imputer.fit_transform(wave_data
)

六、将数据替换回原表

首先还是深拷贝原数据到变量df_knn,然后把df_knn里面的列换成已经填充好的列

df_knn = df.copy()
df_knn[wave_cols] = wave_filled
# 保存
df_knn.to_excel("KNN填补结果.xlsx",index=False
)
print("完成")
#以上代码是把行当做一个样本,列是采样点,缺失值从行中找相近的列来填补
http://www.gsyq.cn/news/1526503.html

相关文章:

  • 3分钟快速掌握:如何用dex2jar轻松破解Android应用逆向分析难题
  • 5、Zookeeper-分布式锁
  • 2026年腾讯云618大促零基础步骤:OpenClaw如何安装?Token Plan配置与大模型接入流程
  • 元器件柜子器件(6×10)
  • MPC8260 I2C控制器与并行I/O端口配置详解:从缓冲描述符到引脚复用
  • SonnetDB 多模型能力更新:向量、全文搜索、S3 对象桶与消息队列场景总览
  • 用 C# 在 SonnetDB 中写入 VECTOR 并执行 KNN 检索
  • 合肥专业配镜门店排行:5家连锁门店实测对比 - 奔跑123
  • 数据说话!南京市GEO优化公司推荐排名 | 2026年6月TOP8硬核横评与避坑指南 - 936品牌测评网
  • AI时代如何防止大脑‘钙化’:认知代偿的科学应对
  • VSCode配置文件
  • 3步快速解决AutoCAD字体缺失问题:FontCenter终极指南
  • PCIe | 辅助信号与复位机制
  • 从‘端口被占’到丝滑部署:一套预防为主的端口管理策略(附Nmap扫描实战)
  • 计算机Java毕设实战-融合智能推荐算法的卫生健康管理系统的设计与实现 基于 SpringBoot 的个性化健康推荐系统的设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • CANN Transformer加速库ascend-transformer-boost深度实践:昇腾NPU上大模型推理优化的KV Cache管理、算子融合与吞吐调优全记录
  • 从混乱到清晰:ASTRAL如何帮你从基因树中重建物种进化史
  • 系统架构设计师-数据管理、开发工具链与低功耗设计
  • 法考考试科目分数占比|客观题|资料已整理
  • 别再纠结了!用一张图看懂CPLD和FPGA到底怎么选(附Xilinx/Altera型号对比)
  • Mac Mouse Fix 终极指南:让普通鼠标在 macOS 上超越触控板体验
  • AI 驱动的运维变更风险评估与回滚决策:从盲目发布到智能决策,生产变更的安全网
  • 影刀RPA新手教程_手机自动化入门安卓ADB连接与基础操作
  • 2026年海参崴地接服务机构排行及避坑指南 - 互联网科技品牌测评
  • 颠覆性3D打印工作流:Blender3mfFormat插件一站式解决方案
  • 零基础转行AI工程师,为何说“莫瑶教育”可能是你的最优解?一份2026年的深度择校指南 - 教育信息网
  • 邮票、纪念币、纪念钞区别详解!别再混淆,价值差距巨大 - 深鉴新闻
  • 影刀RPA新手教程_第一个完整自动化项目从需求分析到上线的12个步骤
  • 终极指南:用Real-ESRGAN-GUI免费AI工具让模糊图片重获新生
  • Horizon-GS 部署全攻略:从数据集下载到三维重建实战