我已经应用了一个热编码,然后决策树,并得到了一个很好的分数为我的部门和数量列。
当我这样做:
prediction = dt_clf.predict([[0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0]])
print(prediction)
我得到以下输出:
ValueError: could not convert string to float: 'Beef'
但是我想把它转换成pickle并部署到pythonflask,这样用户就可以给予并检索预测。
我必须做一个热编码再次如果是这样请纠正这段代码为我:
from sklearn.tree import DecisionTreeRegressor
from sklearn.model_selection import train_test_split
# Split the data into training and test sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=10)
# Train a decision tree regression model with the best hyperparameters found by grid search
dt_clf = DecisionTreeRegressor(criterion='friedman_mse', splitter='random')
dt_clf.fit(X_train, y_train)
# Evaluate the model on the test set
dt_score = dt_clf.score(X_test, y_test)
print("Decision Tree Regression Test Score:", dt_score)`
我希望用户通过网页给予他们的输入来预测。有什么反馈吗?
1条答案
按热度按时间kr98yfug1#
您需要确保数据格式在训练、评估和测试中保持一致。对于one-hot-encoding,您需要在训练集上调用
fit_transform()
编码器,然后只在测试中调用transform()
。参见here以获取官方文档。您需要决定如何处理未知数(即,如果测试集包含训练集中看不到的标签)。一个简单的例子改编自文档: