我正在对分类数据进行独热编码。在测试时,我做了类似这样的操作:
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 OneHotEncoderencoder = 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来评估它。