Scikitlearn的(0.22.1)KNI计算机返回错误数量的值

2024-06-16 11:54:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我的原始数据集形状是(790215,20),其中包含的功能大约有60-80%缺少值。我决定使用scikit learn的KNI计算机,如下所示

import pandas as pd
from sklearn.impute import KNNImputer

# Loading the data
dataset = pd.read_csv('Dataset.csv')

# To avoid 'MemoryError' imputing individually

#Loading the first feature
X = dataset.iloc[:,0].values

#Imputing with default parameters 
imputer = KNNImputer()

#Reshaping to meet the dimensional requirement
X_imp  = imputer.fit_transform(X.reshape(1,-1))

现在X_imp的形状是(1,729026)

我不确定我做错了什么。为什么790215改为729026

更新

{}是{}

X.reshape(1,-1).shape(1,790215)

X.reshape(1,-1)array([[ nan, 97., 89., ..., 140., 120., 115.]])


Tags: csvtheimport功能原始数据scikitlearndataset
1条回答
网友
1楼 · 发布于 2024-06-16 11:54:22

你使用reshape的方式就是问题所在。您已经通过给出.reshape(1, -1)将数据转换为单个数据点。表示一行790215列。因此,在转换KNIMPUTER时,会删除只有nan值的列。这就是下降的原因

相反,您需要使用.reshape(-1,1),这将使它成为790215行和1列

注意:对KNIMPUTER使用单一功能可能无法正常工作。最好一次使用3-5个功能。你也可以看看SimpleImputer

相关问题 更多 >