iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中怎么利用KNN算法处理缺失数据
  • 928
分享到

Python中怎么利用KNN算法处理缺失数据

2023-06-16 02:06:01 928人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章将为大家详细讲解有关python中怎么利用KNN算法处理缺失数据,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。KNN代表" K最近邻居",这是一种简单算法,可根据

这篇文章将为大家详细讲解有关python中怎么利用KNN算法处理缺失数据,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

KNN代表" K最近邻居",这是一种简单算法,可根据定义的最接近邻居数进行预测。 它计算从您要分类的实例到训练集中其他所有实例的距离。

正如标题所示,我们不会将算法用于分类目的,而是填充缺失值。 本文将使用房屋价格数据集,这是一个简单而著名的数据集,仅包含500多个条目。

这篇文章的结构如下:

  • 数据集加载和探索

  • KNN归因

  • 归因优化

  •  结论

数据集加载和探索

如前所述,首先下载房屋数据集。 另外,请确保同时导入了Numpy和pandas。 这是前几行的外观:

Python中怎么利用KNN算法处理缺失数据

默认情况下,数据集缺失值非常低-单个属性中只有五个:

Python中怎么利用KNN算法处理缺失数据

让我们改变一下。 您通常不会这样做,但是我们需要更多缺少的值。 首先,我们创建两个随机数数组,其范围从1到数据集的长度。  第一个数组包含35个元素,第二个数组包含20个(任意选择):

i1 = np.random.choice(a=df.index, size=35)  i2 = np.random.choice(a=df.index, size=20)

这是第一个数组的样子:

Python中怎么利用KNN算法处理缺失数据

您的数组将有所不同,因为随机化过程是随机的。 接下来,我们将用NAN替换特定索引处的现有值。 这是如何做:

df.loc[i1, 'INDUS'] = np.nan  df.loc[i2, 'TAX'] = np.nan

现在,让我们再次检查缺失值-这次,计数有所不同:

Python中怎么利用KNN算法处理缺失数据

这就是我们从归因开始的全部前置工作。 让我们在下一部分中进行操作。

KNN归因

整个插补可归结为4行代码-其中之一是库导入。  我们需要sklearn.impute中的KNNImputer,然后以一种著名的Scikit-Learn方式创建它的实例。 该类需要一个强制性参数–  n_neighbors。 它告诉冒充参数K的大小是多少。

首先,让我们选择3的任意数字。稍后我们将优化此参数,但是3足以启动。  接下来,我们可以在计算机上调用fit_transfORM方法以估算缺失的数据。

最后,我们将结果数组转换为pandas.DataFrame对象,以便于解释。 这是代码:

from sklearn.impute import KNNImputer  imputer = KNNImputer(n_neighbors=3) imputed = imputer.fit_transform(df) df_imputed = pd.DataFrame(imputed, columns=df.columns)

非常简单。 让我们现在检查缺失值:

Python中怎么利用KNN算法处理缺失数据

尽管如此,仍然存在一个问题-我们如何为K选择正确的值?

归因优化

该住房数据集旨在通过回归算法进行预测建模,因为目标变量是连续的(MEDV)。  这意味着我们可以训练许多预测模型,其中使用不同的K值估算缺失值,并查看哪个模型表现最佳。

但首先是导入。 我们需要Scikit-Learn提供的一些功能-将数据集分为训练和测试子集,训练模型并进行验证。 我们选择了"随机森林"算法进行训练。  RMSE用于验证:

from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import mean_squared_error  rmse = lambda y, yhat: np.sqrt(mean_squared_error(y, yhat))

以下是执行优化的必要步骤:

迭代K的可能范围-1到20之间的所有奇数都可以

  • 使用当前的K值执行插补

  • 将数据集分为训练和测试子集

  • 拟合随机森林模型

  • 预测测试集

  • 使用RMSE进行评估

听起来很多,但可以归结为大约15行代码。 这是代码段:

def optimize_k(data, target):     errors = []     for k in range(1, 20, 2):         imputer = KNNImputer(n_neighbors=k)         imputed = imputer.fit_transform(data)         df_imputed = pd.DataFrame(imputed, columns=df.columns)                  X = df_imputed.drop(target, axis=1)         y = df_imputed[target]         X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)          model = RandomForestRegressor()         model.fit(X_train, y_train)         preds = model.predict(X_test)         error = rmse(y_test, preds)         errors.append({'K': k, 'RMSE': error})              return errors

现在,我们可以使用修改后的数据集(在3列中缺少值)调用optimize_k函数,并传入目标变量(MEDV):

k_errors = optimize_k(data=df, target='MEDV')

就是这样! k_errors数组如下所示:

Python中怎么利用KNN算法处理缺失数据

以视觉方式表示:

Python中怎么利用KNN算法处理缺失数据

关于Python中怎么利用KNN算法处理缺失数据就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: Python中怎么利用KNN算法处理缺失数据

本文链接: https://www.lsjlt.com/news/282074.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中怎么利用KNN算法处理缺失数据
    这篇文章将为大家详细讲解有关Python中怎么利用KNN算法处理缺失数据,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。KNN代表" K最近邻居",这是一种简单算法,可根据...
    99+
    2023-06-16
  • PyTorch中怎么处理缺失数据
    在PyTorch中处理缺失数据通常需要使用一些数据预处理技术或者特定的模型结构。以下是几种常见的处理缺失数据的方法: 将缺失数据...
    99+
    2024-03-05
    PyTorch
  • 怎么在python中通过KNN来填充缺失值
    怎么在python中通过KNN来填充缺失值?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。# 加载库import numpy as npf...
    99+
    2023-06-15
  • Python中缺失值怎么处理
    这篇文章主要介绍“Python中缺失值怎么处理”,在日常操作中,相信很多人在Python中缺失值怎么处理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中缺失值怎么处理”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-21
  • Python-OpenCV中如何利用 KNN 算法识别手写数字
    手写数字数据集 MNIST 介绍为了保证完整性,从算法所用的训练数据讲起,训练数据是由 MNIST 手写数字组成的,MNIST 数据集来自美国国家标准与技术研究所,由来自 250 个不同人手写的数字构成,其中训练集包含 60000 张图片,...
    99+
    2023-06-22
  • MATLAB中怎么处理缺失数据或NaN值
    在MATLAB中,可以使用以下方法处理缺失数据或NaN值: 删除包含NaN值的行或列: data = [1 2 NaN 4; 5...
    99+
    2024-04-03
    MATLAB
  • Python-OpenCV实战:利用KNN算法识别手写数字
    目录前言手写数字数据集 MNIST 介绍基准模型——利用 KNN 算法识别手写数字改进模型1——参数 K 对识别手写数字精确度的影响改进模型2——训练数据量对识别手写数字精确度的影响...
    99+
    2024-04-02
  • Python数据分析中如何处理缺失值
    小编给大家分享一下Python数据分析中如何处理缺失值,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!让我们首先创建一个示例数据框并向其中添加一些缺失值。我们有一个 10 行 6 列的数据框。下一步是添加缺失值。 我们将使用...
    99+
    2023-06-25
  • PyTorch中怎么处理缺失数据和异常值
    在PyTorch中处理缺失数据和异常值的方法可以分为以下几种: 缺失数据处理: 使用torch.isnan()函数判断数据是否...
    99+
    2024-03-05
    PyTorch
  • 怎么用python代码实现knn算法
    下面是一个简单的示例代码,实现了knn算法:```pythonimport numpy as npfrom collections ...
    99+
    2023-10-11
    python knn算法
  • 使用Python处理KNN分类算法的实现代码
    目录KNN分类算法的介绍测试数据Python代码实现结果分析简介: 我们在这世上,选择什么就成为什么,人生的丰富多彩,得靠自己成就。你此刻的付出,决定了你未来成为什么样的人...
    99+
    2024-04-02
  • 详解pandas中缺失数据处理的函数
    目录一、缺失值类型1、np.nan2、None3、NA标量二、缺失值判断1、对整个dataframe判断缺失2、对某个列判断缺失三、缺失值统计1、列缺失2、行缺失3、缺失率四、缺失值...
    99+
    2024-04-02
  • Python数据分析的八种处理缺失值方法详解
    目录1. 删除有缺失值的行或列2. 删除只有缺失值的行或列3. 根据阈值删除行或列4. 基于特定的列子集删除5. 填充一个常数值6. 填充聚合值7. 替换为上一个或下一个值8. 使用...
    99+
    2024-04-02
  • 处理数据缺失的结构化解决办法
    数据缺失是数据科学家在处理数据时经常遇到的问题,本文作者基于不同的情境提供了相应的数据插补解决办法。没有完美的数据插补法,但总有一款更适合当下情况。 我在数据清理与探索性分析中遇到的...
    99+
    2024-04-02
  • Python 中怎么利用Pandas处理复杂的Excel数据
    本篇文章为大家展示了Python 中怎么利用Pandas处理复杂的Excel数据,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。问题缘起pandas  read_excel函数在读取Exce...
    99+
    2023-06-16
  • 如何在Python中进行数据缺失值处理和填充的最佳实践和算法选择
    如何在Python中进行数据缺失值处理和填充的最佳实践和算法选择引言数据分析中常常会遇到缺失值的情况。缺失值的存在可能会严重影响数据分析和模型训练的结果。因此,对于缺失值的处理和填充成为了数据分析的重要一环。本文将介绍在Python中进行数...
    99+
    2023-10-22
    Python 填充 关键词: 缺失值处理
  • Python数据预处理时缺失值的不同处理方式总结
    目录1. 固定值填充2. 均值填充3. 中位数填充4. 插补法填充在使用python做数据分析的时候,经常需要先对数据做统一化的处理,缺失值的...
    99+
    2022-12-22
    Python数据预处理 缺失值 Python数据预处理 Python 预处理
  • 怎么利用python处理原始音频数据
    本篇内容介绍了“怎么利用python处理原始音频数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、基础知识PCM(pulse code ...
    99+
    2023-06-22
  • Python数据分析之缺失值检测与处理详解
    目录检测缺失值缺失值处理删除缺失值填补缺失值检测缺失值 我们先创建一个带有缺失值的数据框(DataFrame)。 import pandas as pd df = pd.Dat...
    99+
    2024-04-02
  • 如何在Python中处理多维数组中的缺失值?
    在Python中,多维数组是一种常见的数据结构。然而,多维数组中存在的缺失值可能会影响数据的分析和处理。因此,处理多维数组中的缺失值是数据分析的一个重要步骤。本文将介绍如何在Python中处理多维数组中的缺失值。 一、什么是缺失值 缺失值是...
    99+
    2023-09-11
    二维码 大数据 数组
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作