【发布时间】:2020-02-01 22:37:29
【问题描述】:
这是我的代码
import pandas as pd
import numpy as np
from sklearn.preprocessing import OneHotEncoder
train = pd.DataFrame({
'users':['John Johnson','John Smith','Mary Williams']
})
test = pd.DataFrame({
'users':[None,np.nan,'John Smith','Mary Williams']
})
ohe = OneHotEncoder(sparse=False,handle_unknown='ignore')
ohe.fit(train)
train_transformed = ohe.fit_transform(train)
test_transformed = ohe.transform(test)
print(test_transformed)
我希望 OneHotEncoder 能够处理测试数据集中的 np.nan,因为
handle_unknown='ignore'
但它给出了 ValueError。它虽然能够处理 None 值。为什么会失败?我该如何绕过它(除了 Imputer)?
来自文档 (https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html) 看来这就是 handle_unknown 的用途。
【问题讨论】:
标签: machine-learning scikit-learn