我正在对分类数据进行一次热编码。在测试时,我会执行以下操作:

data.append(train_data_X)
data.append(test_data_X)
one_hot_encode(data)
model.test(data[:test_data_X.shape[0])


我想知道是否有一种方法可以测试我的测试数据,而无需访问我的训练数据。

最佳答案

通常的最佳做法是使用scikit-learnOneHotEncoder函数,以完全避免出现问题。

from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder(categories = "auto", handle_unknown = 'ignore')
X_train_encoded = encoder.fit_transform(X_train)
X_test_encoded = encoder.transform(X_test)


这样可以确保对测试集实施相同的一次热编码。
因此,您可以使用X_train_encoded训练模型,然后使用X_test_encoded评估模型。

关于python - 如果我进行一次热编码,是否总是必须保留一份训练数据副本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54896335/

10-11 10:21
查看更多