проблема < /strong>
Я использую Lightgbmmodel через дротики с некоторыми (будущими) ковариатами. Я хочу понять актуальность различных (отстающих) функций. В объекте модели LightGBM после подгонки я могу увидеть только общие имена столбцов ("column_0", "column_1"). Как я могу подключить это к значимым именам (например, target_lag_1, target_lag_2, name_of_covariate_lag_1, ...). < /P>
Я хочу включить несколько будущих ковариат (например, несколько атрибутов dateTime, таких как день недели с различными кодировками). Не имеет значения, где создаются атрибуты DateTime (например, используя Pandas, используя сами DARTS). < /P>
минимальный воспроизводимый пример < /strong>
Я принял пример из документации < /p>
Это код из документации, просто устанавливая данные и подходящие для модели:
это код, просто устанавливая данные и подходит для модели:
.from darts.datasets import WeatherDataset
from darts.models import LightGBMModel
series = WeatherDataset().load()
# predicting atmospheric pressure
target = series['p (mbar)'][:100]
# optionally, use past observed rainfall (pretending to be unknown beyond index 100)
past_cov = series['rain (mm)'][:100]
# optionally, use future temperatures (pretending this component is a forecast)
future_cov = series['T (degC)'][:106]
# predict 6 pressure values using the 12 past values of pressure and rainfall, as well as the 6 temperature
# values corresponding to the forecasted period
model = LightGBMModel(
lags=12,
lags_past_covariates=12,
lags_future_covariates=[0,1,2,3,4,5],
output_chunk_length=6,
verbose=-1
)
model.fit(target, past_covariates=past_cov, future_covariates=future_cov)
< /code>
Установив модель, теперь я хочу проанализировать важность функций. < /p>
for i, estimator in enumerate(model.model.estimators_):
print(f"Target {i} Importance (Gain):")
# Access LightGBM booster
booster = estimator.booster_
# Get feature names
feature_names = booster.feature_name()
# Get gain-based importance
importance = booster.feature_importance(importance_type='gain')
# Create mapping
named_importance = dict(zip(feature_names, importance))
print(named_importance)
< /code>
Это возвращает важность функции для нескольких столбцов в каждом оценке. Но имена функций - это общие имена, сгенерированные LightGBM ('column_1', 'column_2', ...). Я не знаю, как связать это с исходными именами столбцов в объекте TimeShies из DARTS (например, «Дождь (мм)», '' t (degc) ') с дополнительной информацией, которая отстает от важности функции.
Подробнее здесь: https://stackoverflow.com/questions/795 ... ure-import
DARTS и LightgBM: Имена исходных столбцов не могут быть получены для важности функции ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Почему имена переменных в Java не могут иметь одинаковые имена, что и ключевые слова?
Anonymous » » в форуме JAVA - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-