Пакет Python для краткого, прозрачного и точного прогнозирующего моделирования.
Все, совместимые с Sklearn и просты в использовании.
Для интерпретации в NLP, ознакомьтесь с нашим новым пакетом: imodelsx
Документы • Демонстрационные записные книжки
Современные модели машинного обучения становятся все более сложными, часто затрудняя их интерпретацию. Этот пакет предоставляет простой интерфейс для подгонки и использования самых современных интерпретируемых моделей, совместимых с Scikit-Learn. Эти модели часто могут заменить модели черных ящиков (например, случайные леса) более простыми моделями (например, списками правил), одновременно повышая интерпретацию и вычислительную эффективность, не жертвуя точностью прогнозирования! Просто импортируйте классификатор или регрессор и используйте методы fit и predict методы, так же, как стандартные модели Scikit-Learn.
from sklearn . model_selection import train_test_split
from imodels import get_clean_dataset , HSTreeClassifierCV # import any imodels model here
# prepare data (a sample clinical dataset)
X , y , feature_names = get_clean_dataset ( 'csi_pecarn_pred' )
X_train , X_test , y_train , y_test = train_test_split (
X , y , random_state = 42 )
# fit the model
model = HSTreeClassifierCV ( max_leaf_nodes = 4 ) # initialize a tree model and specify only 4 leaf nodes
model . fit ( X_train , y_train , feature_names = feature_names ) # fit model
preds = model . predict ( X_test ) # discrete predictions: shape is (n_test, 1)
preds_proba = model . predict_proba ( X_test ) # predicted probabilities: shape is (n_test, n_classes)
print ( model ) # print the model ------------------------------
Decision Tree with Hierarchical Shrinkage
Prediction is made by looking at the value in the appropriate leaf of the tree
------------------------------
|--- FocalNeuroFindings2 <= 0.50
| |--- HighriskDiving <= 0.50
| | |--- Torticollis2 <= 0.50
| | | |--- value: [0.10]
| | |--- Torticollis2 > 0.50
| | | |--- value: [0.30]
| |--- HighriskDiving > 0.50
| | |--- value: [0.68]
|--- FocalNeuroFindings2 > 0.50
| |--- value: [0.42]
Установите с помощью pip install imodels (см. Здесь для помощи).
Документы? Исследовательская работа? Реализация справочного кода
| Модель | Ссылка | Описание |
|---|---|---|
| Набор правил правил | ,?,? | Соответствует редкой линейной модели правил, извлеченных из деревьев решений |
| Набор правил Skope | ,? | Извлекат правила из градиент, закрепленных деревьями, дедупликает их, затем линейно объединяет их на основе их точности OOB |
| Увеличенный набор правил | ,?,? | Последовательно соответствует набору правил с Adaboost |
| Набор правил скользки | ,? | Последовательно изучает набор правил со скользкой |
| Байесовское правило | ,?,? | Находит краткий набор правил с байесовской выборкой (медленно) |
| Оптимальный список правил | ,?,? | Подходит список правил с использованием глобальной оптимизации для редкости (Corels) |
| Байесовский список правил | ,?,? | Подходит для компактных списков правил с помощью байесовской выборки (медленная) |
| Живный список правил | ,? | Использует корзину, чтобы соответствовать списку (только один путь), а не дерево |
| Список правил Oner | ,? | Подходит список правил, ограниченный только одной функцией |
| Оптимальное дерево правил | ,?,? | Подходит краткое дерево, используя глобальную оптимизацию для редкости (GOSDT) |
| Жадное дерево правил | ,?,? | Жадно подходит дерево с помощью тележки |
| C4.5 Дерево правил | ,?,? | Жадно подходит дерево с помощью c4.5 |
| Дерево правил Дао | ,? | Подходит дерево с использованием чередующейся оптимизации |
| Итеративный случайный лес | ,?,? | Неоднократно подходит для случайного леса, давая особенности с Высокая важность - более высокий шанс быть выбранным |
| Разреженное целое число Линейная модель | ,? | Разреженная линейная модель с целочисленными коэффициентами |
| Дерево Гам | ,?,? | Обобщенная аддитивная модель подходит для коротких увеличенных деревьев |
| Жадное дерево суммы (рис) | , ㅤ? | Сумма мелких деревьев с очень небольшим количеством общих правил (рис) |
| Иерархический усадкая обертка | ,? | Улучшить дерево решений, случайный лес, или Ансамбль с градиентом с ультрастрабильной, послеходом регуляризации |
| RF+ (MDI+) | ,? | Гибкая случайная лесная особенность |
| Дистилляция обертка | Тренировать модель черного ящика, затем перегонять его в интерпретируемую модель | |
| Automl Wrapper | Автоматически подходит и выберите интерпретируемую модель | |
| Больше моделей | ⌛ | (Скоро!) Легкая индукция правил, mlrules, ... |
Демос содержится в папке ноутбуков.
imodels для получения правила клинического решенияОкончательная форма приведенных выше моделей принимает одну из следующих форм, целью которой является одновременно прост для понимания и высокопроизводительного:
| Набор правил | Список правил | Дерево правил | Алгебраические модели |
|---|---|---|---|
Различные модели и алгоритмы варьируются не только в их окончательной форме, но и в разных вариантах, сделанных во время моделирования, например, как они генерируют, выбирают и постпроцесс: правила:
| Правило поколения кандидатов | Выбор правил | Правило пост обработки |
|---|---|---|
Различные модели поддерживают различные задачи машинного обучения. Нынешняя поддержка различных моделей приведена ниже (каждая из этих моделей может быть импортирована непосредственно из Imodels (например from imodels import RuleFitClassifier ):
| Модель | Бинарная классификация | Регрессия | Примечания |
|---|---|---|---|
| Набор правил правил | RulefitClassifier | Rulefitregressor | |
| Набор правил Skope | Skoperulesclassifier | ||
| Увеличенный набор правил | BoostedRulesclassifier | BoostedRulesRessoress | |
| Набор правил скользки | SlipperClassifier | ||
| Байесовское правило | BayesianrulesetClassifier | Не терпит больших проблем | |
| Оптимальный список правил (Corels) | Оптималрулелиста -классер | Требуется корелса, не удастся для больших проблем | |
| Байесовский список правил | BayesianrulelistClassifier | ||
| Живный список правил | GreedyruleListClassifier | ||
| Список правил Oner | OnerClassifier | ||
| Оптимальное дерево правил (GOSDT) | Оптималтрисассификатор | Требуется gosdt, терпит неудачу для больших проблем | |
| Жадное дерево правил (тележка) | Greedytreeclassifier | GreedyTreeRessor | |
| C4.5 Дерево правил | C45treeclassifier | ||
| Дерево правил Дао | Taotreeclassifier | Taotreeregressor | |
| Итеративный случайный лес | Irfclassifier | Требуется IRF | |
| Разреженная целочисленная линейная модель | SlimClassifier | Слимрегсор | Требуется дополнительная зависимости для скорости |
| Дерево Гам | TreegamClassifier | Treegamregressor | |
| Жадные суммы дерева (рис) | FigsClassifier | Figressorsor | |
| Иерархическая усадка | Hstreeclassifiercv | Hstreeregresscv | Окутает любую модель на основе дерева Sklearn |
| Дистилляция | Distilledregresress | Окутает любые совместимые с Sklearn модели | |
| Automl Model | AutointerPretbleClassifier️ | AutointerPretableResress️ |
| Дискретизатор | Ссылка | Описание |
|---|---|---|
| MDLP | ,?,? | Дискретизировать с помощью эвристики минимизации энтропии |
| Простой | ,? | Простая дискретизация Kbins |
| Случайный лес | Дискретизировать мусорные баки на основе случайной популярности расщепления леса |
После разработки и игры с imodels мы разработали несколько новых моделей для преодоления ограничений существующих интерпретируемых моделей.
? Бумага, ? Почта, ? Цитирование
Быстро интерпретируемые суммы для жадного дерева (рис.)-это алгоритм для подгонки кратких моделей, основанных на правилах. В частности, рис, обобщает корзину, чтобы одновременно выращивать гибкое количество деревьев в суммировании. Общее количество расщеплений по всем деревьям может быть ограничено предварительно определенным порогом, что поддерживает интерпретацию модели. Эксперименты по широкому спектру наборов данных реального мира показывают, что рис достигает современной производительности прогнозирования, когда ограничивается лишь несколькими расколами (например, менее 20).
Пример модели рис. Фиг учится на сумме деревьев с гибким количеством деревьев; Чтобы сделать свой прогноз, это суммирует результат каждого дерева.
? Бумага (ICML 2022), Почта, ? Цитирование
Иерархическая усадка-это чрезвычайно быстрый метод регуляризации, который работает на любом дереве решений (или на основе дерева, таких как случайный лес). Он не модифицирует структуру дерева и вместо этого регулярно использует дерево, сокращая прогноз по каждому узлу в сторону образца средних значений своих предков (используя один параметр регуляризации). Эксперименты по широкому спектру наборов данных показывают, что иерархическая усадка существенно увеличивает прогностическую производительность отдельных деревьев решений и ансамблей для получения решений.
Пример HS. HS применяет послеходовой регуляризацию к любому дереву решений, сжимая каждый узел в сторону своего родителя.
? Бумага, ? Почта, ? Цитирование
MDI+ - новая структура важности функции, которая обобщает популярное среднее снижение оценки важности примесей (MDI) для случайных лесов. По своей сути MDI+ расширяет недавно обнаруженную связь между линейной регрессией и деревьями решений. При этом MDI+ позволяет практикующим лицам (1) адаптировать расчет важности функции к структуре данных/проблемы и (2) включать дополнительные функции или знания для смягчения известных предубеждений деревьев решений. Как в реальных тематических исследованиях данных, так и в обширных моделированиях реальных данных, MDI+ опережают широко используемые показатели важности признаков (например, MDI, оценки на основе перестановки и TREESHAP) по существующим краям.
Пожалуйста, цитируйте пакет, если вы используете его в академической работе :)
@ software {
imodels2021 ,
title = { imodels : a python package for fitting interpretable models },
journal = { Journal of Open Source Software },
publisher = { The Open Journal },
year = { 2021 },
author = { Singh , Chandan and Nasseri , Keyan and Tan , Yan Shuo and Tang , Tiffany and Yu , Bin },
volume = { 6 },
number = { 61 },
pages = { 3192 },
doi = { 10.21105 / joss.03192 },
url = { https : // doi.org / 10.21105 / joss.03192 },
}