При интерпретации вывода прогностических данных убедитесь, что каждый шаг выполняется тщательно. Чтобы удовлетворить потребности пользователей, необходимо обеспечить простоту понимания. Это можно сделать, усовершенствовав процесс моделирования. Можно сосредоточиться на простых моделях, а не на сложных. Например, линейные модели помогут вам с легкой интерпретацией. Однако при избыточном объеме данных использование сложных моделей дает многочисленные преимущества. С такой моделью вы можете привнести свои передовые компромиссы в точный и интерпретируемый вывод. Вы можете выбирать из множества различных методов для решения сложных задач. Однако эти решения не подразумевают, как эти методы соотносятся друг с другом. Кроме того, нет данных, которые подтверждали бы, почему один метод лучше другого.
SHAP-конструирование черпает вдохновение в предыдущей унифицированной структуре. Этот новый подход к SHAP-конструированию использует значения Shapely. Ниже вы можете понять определение SHAP и то, как вы можете реализовать концепцию с помощью пакета Python.
Что такое SHAP?
Shapley Additive exPlanations или SHAP – это подход, используемый в теории игр. С помощью SHAP вы можете объяснить выходную мощность вашей модели машинного обучения. Эта модель соединяет локальное объяснение оптимального распределения кредитов с помощью значений Shapely. Этот подход высокоэффективен в теории игр.
Как вы можете рассчитать Формальные значения.
SHAP представляет собой характеризующее значение среднего предельного вклада среди всех возможных комбинаций признаков. Ниже мы обсудим, как SHAP или Shapely Additive exPlanations становится популярной методикой в машинном обучении. Мы можем понять эту концепцию на следующем примере:
Мы можем рассмотреть моменты, которые команда забивает в каждом матче сезона. Предположим, мы хотим найти средний балл игрока А и его вклад в командный результат в матче. Для этого нам нужно найти вклад Игрока А в сотрудничестве Игрока Б и Игрока С.
ПРИМЕЧАНИЕ
Во время проведения эксперимента необходимо убедиться в том, что в отношении совпадений соблюдены следующие условия:
1. Перед проведением эксперимента ты должен предположить, что испытание игроков уже завершено.
2. Также необходимо предположить, что каждый игрок может выступить хотя бы в одном матче, чтобы мы могли основывать результат на соответствующих данных.
3. Должен быть матч, в котором один игрок недоступен, в то время как другие два игрока доступны.
4. Ниже ты найдешь только пример. Вы можете взять любую метрику в соответствии с рейтингом турнира. Ниже вы найдете общую сумму очков в качестве метрики:
Шаг 1: Когда игрок A не играет, но игрок B и C играют в комбинации.
В этом условии необходимо брать средние очки в матчах. Вы должны помнить, что Игрок A не играет, поэтому среднее будет включать только баллы Игрока B, а C. Вы также можете взять одну случайную выборку, чтобы найти ответ. В этом примере вы предполагаете, что средний общий балл равен 60 очкам.
Шаг 2: Когда Игрок С не играет, но Игроки А и В играют в комбинации.
Теперь мы рассмотрим среднее значение игроков A и B, в то время как игрок C не играет. Предположим, что общий балл команды составляет 90 очков.
Так как все игроки, сыгравшие в любом из матчей, теперь мы можем найти общее количество очков игрока A, вычитая от 85 до 65. Ответ будет 30 очков. Вы также можете провести эксперимент, вычислив среднее значение эксперимента несколько раз и найдя разницу.
Внедрение кодов
Для начала необходимо импортировать все необходимые библиотеки с помощью следующих кодов:
импортировать панд как pd
импорт онемелый как пшт
форма импорта
из sklearn.model_selection import train_test_split
из sklearn.metrics импортировать mean_squared_error
от sklearn.linear_model импорт LinearRegression
из импорта sklearn.tree DecisionTreeRegressor
от sklearn.ensemble import RandomForestRegressor
от xgboost.sklearn импорт XGBRegressor
из импорта sklearn.preproprocessing OneHotEncoder, LabelEncoder
дерево импорта шкурки
импорт matplotlib.pyplot как plt
%матплотлиб в линии
предупреждения об импорте
warnings.filterwarnings(‘ignore’)
Предварительная обработка данных после считывания
Следующий пример касается недвижимости. Тем не менее, вы можете использовать любой набор данных, чтобы найти вывод с помощью этого метода. Это всего лишь пример, поэтому вменение и предварительная обработка не важны. Но когда вы проходите оригинальный тест, вам необходимо следовать полной процедуре:
# прочитать данные
data = pd.read_csv(‘data.csv’)# Удаление функций с высокими нулевыми значениями
data.drop([‘PoolQC’, ‘MiscFeature’, ‘Fence’, ‘FireplaceQu’,
‘LotFrontage’], inplace=True, axis=1)# Drop null values
data.dropna(inplace=True)# Готовьте X и Y.
X = pd.get_dummies(data)
X.drop([‘SalePrice’], inplace=True, axis=1)
y = data[‘SalePrice’]
Подогнать под вашу модель
На этом шаге вам нужно подогнать модель под набор данных:
model = XGBRegressor(n_estimators=1000, max_depth=10, learning_rate=0.001)# Подгонка модели
model.fit(X, y)
Важные особенности Shap Values
Теперь вам нужно использовать библиотеку SHAP. Это самая мощная из доступных библиотек. Проверьте участки, которые они предлагают.
– Сначала вам нужно запустить код JS-визуализации в вашей библиотеке.
# загрузить JS код визуализации в блокнот.
shap.initjs()
– Теперь вы можете объяснить предсказание вашей модели.
– Вы можете начать с сбора значений SHAP и объяснения.
shap_values.
пояснитель = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X)
Сообщите результаты
Форс-черчение
i = 5
shap.force_plot(explainer.expected_value, shap_values[i], features=X.iloc[i], feature_names=X.columns)
Заключение
С помощью приведенного выше объяснения, вы можете просмотреть функции, которые способствуют нахождению выхода вашей модели и нажать базовое значение. Базовое значение представляет собой среднее значение выходных данных модели, которое мы получаем с помощью обучающих данных.