如何解决当我将 IterativeImputer 与 KNeighborsClassifier 一起使用时出现错误“未知标签类型:‘连续’”
这是数据集(原始来自https://www.kaggle.com/jboysen/mri-and-alzheimers):
要估算的变量是“edu”和“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 分类器时,我对此没有任何问题。
你有解决这个问题的想法吗?
谢谢。
解决方法
我才明白为什么它不起作用。这是因为 IterativeImputer 仅适用于连续变量。因此,显然您不能使用 IterativeImputer 对连续变量应用多重插补。 有关于此 here 的讨论。
我看到可以在 python 中对分类变量进行简单的插补。但是,这种类型的变量似乎无法进行多重插补(反正我没有找到)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。