Имена столбцов в SHAP и среднее значение в numpyPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Имена столбцов в SHAP и среднее значение в numpy

Сообщение Anonymous »

Я пытаюсь вычислить значения 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
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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