如果是3列数据,(在我的测试用例中)我可以看到所有列的值都相等。
random_forest.feature_importances_
array([0.3131602 , 0.31915436, 0.36768544])
有没有办法将waitage添加到其中一列?
更新
我想在这种情况下可以使用xgboost。 我试过了,但是得到了这个错误:
import xgboost as xgb
param = {}
num_round = 2
dtrain = xgb.DMatrix(X, y)
dtest = xgb.DMatrix(x_test_split)
dtrain_split = xgb.DMatrix(X_train, label=y_train)
dtest_split = xgb.DMatrix(X_test)
gbdt = xgb.train(param, dtrain_split, num_round)
y_predicted = gbdt.predict(dtest_split)
rmse_pred_vs_actual = xgb.rmse(y_predicted, y_test)
AttributeError:module' xgboost'没有属性' rmse'
答案 0 :(得分:0)
错误是假设xgb有方法“rmse”:
rmse_pred_vs_actual = xgb.rmse(y_predicted, y_test)
字面意思是:AttributeError: module 'xgboost' has no attribute 'rmse'
使用sklearn.metrics.mean_squared_error
人:
from sklearn.metrics import mean_squared_error
# Your code
rmse_pred_vs_actual = mean_squared_error(y_test, y_predicted)
它会修复您的错误,但仍无法控制功能重要性。
现在,如果您真的想要更改功能的重要性,则需要对如何进行此类更改进行创作。我知道没有教科书解决方案,而且我知道xgboost中没有方法。您可以按照评论中发布的Stev链接查看您的问题,也可以获得一些想法(包括更改ML算法)。