DARTS и LightgBM: Имена исходных столбцов не могут быть получены для важности функцииPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 DARTS и LightgBM: Имена исходных столбцов не могут быть получены для важности функции

Сообщение Anonymous »

проблема < /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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»