如何编码和归类分类数据?

问题描述 投票:0回答:1

我有一列包含分类数据和一些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)

我不知道该如何处理:

  1. 编码(LabelEncoder)->免疫(KNNImputer)-> OneHotEncoder
  2. Impute(KNNImputer)->编码(LabelEncoder)-> OneHotEncoder

我将不胜感激。

python scikit-learn encode categorical-data ml
1个回答
0
投票

LabelEncoder如果与TypeError一起使用,则会引发np.nan。首先用虚拟字符串替换它们。并将其标签编码后,将与空值相对应的标签替换回np.nan,这是在您应用KNNImputer

© www.soinside.com 2019 - 2024. All rights reserved.