【发布时间】:2020-09-30 04:40:28
【问题描述】:
我有一列包含分类数据和一些 nan 值。我想填充 nan 值而不是删除它们。一开始我真的不知道该怎么做-编码还是估算?我尝试首先使用 LabelEncoder 进行编码,然后使用 KNNImputer 进行估算,但这对我不起作用。最后,我想使用 OneHotEncoder 以适当的形式获取值,以将它们用作 ML 模型的输入。我从这样的事情开始,但这是错误的:(
import numpy as np
import pandas as pd
from sklearn.preprocessing import OneHotEncoder
from sklearn.preprocessing import LabelEncoder
from sklearn.impute import KNNImputer
data = ["coupe", "coupe", "SUV", "coupe", "SUV", "sedan", np.nan, "sedan", np.nan, "coupe"]
X = pd.DataFrame({"type": data})
le = LabelEncoder()
X = le.fit_transform(X)
我不知道如何处理这个问题:
- 编码(LabelEncoder)-->输入(KNNImputer)-->OneHotEncoder
- Impute(KNNImputer)-->编码(LabelEncoder)-->OneHotEncoder
如果有任何帮助,我将不胜感激。
【问题讨论】:
标签: python scikit-learn encode categorical-data