我想用 IterativeImputer 进行多重插补。
这是数据集(原始数据来自https://www.kaggle.com/jboysen/mri-and-alzheimers):
要估算的变量是“educ”和“ses”。由于它们是分类的,我选择使用分类器(来自 sklearn 的 KNeighborsClassifier)。预测变量是连续的(“性别”除外)。
这是代码:
# calling the MICE class
KNN_class_estimator = KNeighborsClassifier()
mice_imputer = IterativeImputer(random_state=0, estimator=KNN_class_estimator, initial_strategy ='mean')
# imputing the missing value with mice imputer
alz_df_imp_categorical = mice_imputer.fit_transform(alz_df_imp_categorical)
错误是:
“未知标签类型:'连续'”
实际上,fit_transform() 函数将数据帧转换为数组,所有变量都转换为浮点类型。因此,由于这种数组转换,要预测的变量不再是分类的。此外,数组中只接受一种类型的变量(因此,我不能只将变量转换为分类预测而让其他变量浮动)。因此,由于目标变量是浮动的,分类器无法工作。所以,我理解错误......但我不知道如何解决它。
我认为,当 KNN 分类器是多种类型的预测器(连续和分类)时,我们可能无法应用它们。但是,当我在 R 中使用 KNN 分类器时,我对此没有任何问题。
你有一些想法来解决这个问题吗?
谢谢你。