我正在对分类数据进行一次热编码。在测试时,我会执行以下操作:
data.append(train_data_X)
data.append(test_data_X)
one_hot_encode(data)
model.test(data[:test_data_X.shape[0])
我想知道是否有一种方法可以测试我的测试数据,而无需访问我的训练数据。
最佳答案
通常的最佳做法是使用scikit-learn
的OneHotEncoder
函数,以完全避免出现问题。
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/