gpt4 book ai didi

python - python中分类变量的knn插补

转载 作者:行者123 更新时间:2023-11-30 08:46:30 26 4
gpt4 key购买 nike

我正在尝试从数据集上的 fancyimpute 模块实现 kNN。我能够使用以下代码实现数据集连续变量的代码:

knn_impute2=KNN(k=3).complete(train[['LotArea','LotFrontage']]) 

它产生如下理想的答案:This show how the original dataset looks like and how it has changed using knn imputation

我尝试为分类数据集实现相同的代码,但出现错误:

could not convert string to float: 'female'

这是我使用的代码(我正在尝试使用Imputer):

from sklearn.preprocessing import Imputer
imp = Imputer(missing_values='NaN', strategy='most_frequent', axis=0)
imp.fit(df['sex'])
print(imp.transform(df['sex']))

我做错了什么?

回顾一下,我想在此数据集上使用 knn 插补来插补性别列。以下是数据集。

The dataset i want to impute using knn imputation with k value 2

我怎样才能用 knnimpute 做到这一点,或者我需要编写自己的函数。如果是的话,任何人都可以帮助我。谢谢

最佳答案

我能够使用下面列出的步骤来估算分类变量。我很乐意欢迎任何遗漏或可以自动执行此类任务的程序

第 1 步:将对象的数据类型(全部)子集到另一个容器中

第2步:将np.NaN更改为对象数据类型,例如None。现在,容器仅由对象数据类型

组成

第三步:将整个容器更改为分类数据集

第四步:对数据集进行编码(我使用的是.cat.codes)

Step5:将编码后的None值改回np.NaN

第五步:使用 KNN(来自 fancyimpute)来估算缺失值

第 6 步:将编码数据集重新映射到其初始名称

关于python - python中分类变量的knn插补,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43518364/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com