Я пытаюсь вычислить значения SHAP моих данных в модели RandomForest. Проблема в том, что мои данные представляют собой данные временных рядов, и мне нужно получить среднее значение всех значений SHAP в этих интервалах и нормализовать их. вот мои воспроизводимые данные и код:
import pandas as pd
from pandas.tseries.offsets import MonthBegin, MonthEnd
from sklearn.preprocessing import StandardScaler
import shap
import numpy as np
from sklearn.ensemble import RandomForestRegressor
def adjust_dates_by_month(_dax_df: pd.DataFrame, _all_df: pd.DataFrame, _standardize: bool, _tone_WA_LM_ML_Hedo: int, base_year: int, base_month: int, interval: int):
# Calculate the new base date
base_date = pd.Timestamp(year=base_year, month=base_month, day=1) + pd.DateOffset(months=interval)
# Define the training period start and end dates
train_start = base_date
train_end = train_start + pd.DateOffset(months=2)
# Define the evaluation period
evaluate_start = train_end + MonthBegin(1)
evaluate_end = evaluate_start + pd.DateOffset(months=1) - pd.DateOffset(days=1)
# Define the prediction period
to_be_predicted_start = evaluate_end + MonthBegin(1)
to_be_predicted_end = to_be_predicted_start + pd.DateOffset(years=1) - pd.DateOffset(days=1)
# Assign dates to the dataframe
_all_df['date'] = pd.to_datetime(_all_df[['year', 'month']].assign(day=1))
# Filter rows for the training dataset
train_df = _all_df[(_all_df['date'] >= train_start) & (_all_df['date'] = evaluate_start) & (_all_df['date'] = to_be_predicted_start) & (_all_df['date']
как мне нормализовать данные, чтобы сумма была равна 1?
[/list]
Этот код каким-то образом работает, когда интервал равен 1, но больше 1 тогда не работает
all_shap_values = np.array(shap_values_list)
mean_shap_values = np.mean(all_shap_values, axis=0)
normalized_shap_values = mean_shap_values / np.sum(mean_shap_values)
shap.summary_plot(normalized_shap_values, plot_type='bar', show=False)
bars = plt.gca().get_children()
plt.xlabel('')
plt.show()
Подробнее здесь: https://stackoverflow.com/questions/790 ... n-in-numpy
Имена столбцов в SHAP и среднее значение в numpy ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение