考虑一列比其他列更重要

Considering one column more important than others

如果是 3 列数据,(在我的测试用例中)我可以看到所有列的值都相等。

random_forest.feature_importances_

array([0.3131602 , 0.31915436, 0.36768544])

有没有办法将等待时间添加到其中一列?


更新:

我想这种情况下可以使用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: 模块 'xgboost' 没有属性 'rmse'

错误是假设 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 中的方法。您可以关注 link Stev 在对您的问题发表的评论中,也许会得到一些想法(包括更改您的 ML 算法)。