通过在一个热编码数据上训练的模型预测新值
predicitng new value through a model trained on one hot encoded data
这看起来像是一个微不足道的问题。但是我陷入了预测模型结果的困境。我的问题是这样的:
我有一个形状为 1000 x 19 的数据集(目标特征除外),但经过一次热编码后它变成了 1000 x 141。
由于我在形状为 1000 x 141 的数据上训练了模型,因此我需要形状为 1 x 141(至少)的数据进行预测。
我也知道 python,我可以使用
进行未来预测
model.predict(data)
但是,由于我通过 1 x 19 形状的门户网站从最终用户那里获取数据。现在我很困惑我应该如何进一步根据用户数据进行预测。
如何将形状为 1 x 19 的数据转换为 1 x 141,因为我必须保持与 train/test 数据相同的顺序,这意味着列的顺序不应不同?
在这方面的任何帮助将不胜感激。
我假设要创建一个单热编码,您正在使用 sklearn onehotencoder。如果你使用它,那么问题应该很容易解决。由于您在训练数据上安装了一个热编码器
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder(categories = "auto", handle_unknown = "ignore")
X_train_encoded = encoder.fit_transform(X_train)
所以现在在上面的代码中,你的编码器被安装在你的训练数据上,所以当你得到测试数据时,你可以使用这个安装的编码器将它转换成相同的编码数据。
test_data = encoder.transform(test_data)
现在您的测试数据也将是 1x141 形状。您可以使用
检查形状
(pd.DataFrame(test_data.toarray())).shape
这看起来像是一个微不足道的问题。但是我陷入了预测模型结果的困境。我的问题是这样的:
我有一个形状为 1000 x 19 的数据集(目标特征除外),但经过一次热编码后它变成了 1000 x 141。 由于我在形状为 1000 x 141 的数据上训练了模型,因此我需要形状为 1 x 141(至少)的数据进行预测。 我也知道 python,我可以使用
进行未来预测model.predict(data)
但是,由于我通过 1 x 19 形状的门户网站从最终用户那里获取数据。现在我很困惑我应该如何进一步根据用户数据进行预测。
如何将形状为 1 x 19 的数据转换为 1 x 141,因为我必须保持与 train/test 数据相同的顺序,这意味着列的顺序不应不同? 在这方面的任何帮助将不胜感激。
我假设要创建一个单热编码,您正在使用 sklearn onehotencoder。如果你使用它,那么问题应该很容易解决。由于您在训练数据上安装了一个热编码器
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder(categories = "auto", handle_unknown = "ignore")
X_train_encoded = encoder.fit_transform(X_train)
所以现在在上面的代码中,你的编码器被安装在你的训练数据上,所以当你得到测试数据时,你可以使用这个安装的编码器将它转换成相同的编码数据。
test_data = encoder.transform(test_data)
现在您的测试数据也将是 1x141 形状。您可以使用
检查形状(pd.DataFrame(test_data.toarray())).shape