考虑一个列比其他列更重要

时间:2018-04-16 08:23:54

标签: machine-learning scikit-learn random-forest xgboost

如果是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'

1 个答案:

答案 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算法)。

相关问题