SHAP значения карата, огранки, цвета и т. д.

В этой статье я использую общедоступный набор данных, который содержит информацию о 54 000 записей данных о бриллиантах из прайс-листа на бриллианты Tiffany & Co. Набор данных публично доступен на Kaggle. Полную информацию об анализе можно найти в этой общедоступной записной книжке Kaggle.

Шаг 1 — предварительная обработка данных

Здесь предварительная обработка данных состоит из следующих шагов:

  • log10-преобразование нашей метки — цена бриллианта в долларах США (так что x -> np.log10(x));
  • log10-преобразование каратов и их группировка в более крупные ячейки;
  • исключая записи с нулевыми размерами ромба (x, y или z);
  • создание среднего размера ромба с преобразованием в логарифм 10 (среднее значение по x и y);
  • группировка deep и table в более крупные ячейки;
  • кодирование редких категориальных переменных (огранка, цвет и четкость) с не более чем 60 различными категориями в каждый столбец и не менее 20 записей в каждой категории;
  • наконец, удаление неиспользуемых столбцов.

В результате мы получили очищенный набор данных, содержащий около 53 900 цен на бриллианты от 300 до 18 800 долларов США.

Шаг 2 — настройка модели машинного обучения для прогнозирования цены бриллианта с логарифмическим преобразованием

Данные, подготовленные на предыдущем шаге, случайным образом распределяются между обучающей и тестовой выборками и моделируются с помощью модели CatBoostRegressor, которая явно учитывает категориальные признаки. Среднеквадратическая ошибка (RMSE) полученной модели составляет около 0,045 dex, что улучшение по сравнению со среднеквадратичной ошибкой базовой модели, равной примерно 0,441 dex (при условии, что одинаковая цена около 3,38 балла (или около 2400 долларов США) за каждую запись, представленную в наборе данных).

Шаг 3 — объяснение полученной модели машинного обучения

Здесь мы используем метод Shapley Additive ExPlanations (SHAP), один из наиболее распространенных для изучения объяснимости моделей машинного обучения. Таким образом, единицы значения SHAP выражаются в пунктах dex.

Во-первых, мы изучаем диапазон значений SHAP для основных функций, которые нас интересуют:

Как мы видим, наиболее важными характеристиками для прогнозирования цены на бриллиант являются каратность, чистота, средний размер, цвет, вырез, глубина и таблица.

Что касается карат, неудивительно, что самая высокая цена бриллианта связана с наибольшим количеством каратов (однако обратите внимание на то, что цена выравнивается после 10**0.35 = 2.2 карата):

Что касается чистоты бриллианта, мы видим, что самая высокая цена бриллианта связана с IF (внутренне безупречный), за которым следует VVS1 и VVS2 (очень мало включены)категории ясности:

Что касается среднего размера бриллианта, самая высокая цена на бриллиант связана с относительно большими средними размерами, около 10**1.0 = 10 миллиметров:

Что касается цвета бриллианта, мы видим, что самая высокая цена бриллианта связана с D (исключительно белый +), E (исключительно белый), и цвет F (редкий белый +):

Что касается бриллиантовой огранки, то неудивительно, что самая высокая цена на бриллиант связана с идеальной и премиальной огранкой:

Что касается глубины бриллианта, мы видим, что самая высокая цена бриллианта связана с самой большой (~80%) или средней (55–65%) глубиной:

Наконец, что касается таблицы бриллиантов, примечательно, что самая высокая цена бриллианта связана с относительно небольшими или умеренными (45–55%) значениями таблицы:

Я надеюсь, что эти результаты могут быть полезны для вас. В случае вопросов/комментариев, не стесняйтесь писать в комментариях ниже или свяжитесь со мной напрямую через LinkedIn или Twitter.

Вы также можете подписаться на мои новые статьи или стать приглашенным участником Medium.