【问题标题】:Considering one column more important than others考虑一列比其他列更重要
【发布时间】:2025-12-04 17:10:01
【问题描述】:

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

【问题讨论】:

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


【解决方案1】:

错误是假设 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 算法)。

【讨论】:

    最近更新 更多