간결하고 투명하며 정확한 예측 모델링을위한 파이썬 패키지.
모든 스카이 호환 및 사용이 쉽습니다.
NLP의 해석 가능성은 새 패키지를 확인하십시오 : Imodelsx
문서 • 데모 노트북
현대의 기계 학습 모델은 점점 복잡하여 종종 해석하기가 어렵습니다. 이 패키지는 Scikit-Learn과 호환되는 최첨단 해석 가능한 모델을 사용하고 사용하기위한 간단한 인터페이스를 제공합니다. 이 모델은 종종 예측 정확도를 희생하지 않고 해석 가능성과 계산 효율성을 향상시키면서 블랙 박스 모델 (예 : 랜덤 포레스트)을 더 간단한 모델 (예 : 규칙 목록)으로 대체 할 수 있습니다! 분류기 또는 회귀자를 가져 와서 표준 Scikit-Learn 모델과 같은 fit 및 predict 방법을 사용하십시오.
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 로 설치하십시오 (도움말은 여기를 참조하십시오).
문서? 연구 논문? 참조 코드 구현
| 모델 | 참조 | 설명 |
|---|---|---|
| 규칙 규칙 세트 | ,?,? | 의사 결정 트리에서 추출한 규칙에 대한 희소 선형 모델에 맞습니다. |
| 스코프 규칙 세트 | ,? | 그라디언트 부스트 나무에서 규칙을 추출하고 중간 복제하고, 그런 다음 OOB 정밀도에 따라 선형 결합합니다 |
| 강화 된 규칙 세트 | ,?,? | Adaboost와의 규칙 세트에 순차적으로 적합합니다 |
| 슬리퍼 규칙 세트 | ,? | 슬리퍼로 일련의 규칙을 순차적으로 배웁니다 |
| 베이지안 규칙 세트 | ,?,? | 베이지안 샘플링으로 간결한 규칙을 찾습니다 (느린) |
| 최적의 규칙 목록 | ,?,? | Sparsity for Sparsity (Corels)를 사용하여 규칙 목록에 맞습니다. |
| 베이지안 규칙 목록 | ,?,? | 베이지안 샘플링으로 컴팩트 한 규칙 목록 분포에 적합합니다 (느린) |
| 욕심 많은 규칙 목록 | ,? | 카트를 사용하여 나무가 아닌 목록 (단일 경로 만)에 맞습니다. |
| oner 규칙 목록 | ,? | 규칙 목록은 하나의 기능으로 제한됩니다 |
| 최적의 규칙 트리 | ,?,? | 전역 최적화를 사용하여 간결한 트리에 적합합니다 (GOSDT) |
| 욕심 많은 규칙 트리 | ,?,? | 카트를 사용하여 탐욕스럽게 나무에 맞습니다 |
| C4.5 규칙 트리 | ,?,? | C4.5를 사용하여 나무에 탐욕스럽게 맞습니다 |
| 타오 규칙 트리 | ,? | 교대 최적화를 사용하여 트리에 맞습니다 |
| 반복 무작위 숲 | ,?,? | 임의의 숲을 반복적으로 맞추고 기능을 제공합니다 중요성이 높아질 가능성이 높습니다 |
| 희소 정수 선형 모델 | ,? | 정수 계수가있는 드문 선형 모델 |
| 트리 gam | ,?,? | 일반화 된 첨가제 모델은 짧은 부스트 나무에 맞습니다 |
| 욕심 많은 나무 합계 (무화과) | , ㅤ? | 총 규칙이 거의없는 작은 나무의 합 (그림) |
| 계층 적 수축 포장지 | ,? | 의사 결정 트리, 임의의 숲을 개선하십시오 초고속, 사후 정규화를 갖춘 그라디언트 부스팅 앙상블 |
| RF+ (MDI+) | ,? | 유연한 임의의 산림 기반 기능 중요성 |
| 증류 싸개 | 블랙 박스 모델을 훈련시키고 그런 다음 해석 가능한 모델로 증류하십시오 | |
| 자동 래퍼 | 자동으로 맞고 해석 가능한 모델을 선택하십시오 | |
| 더 많은 모델 | ⌛ | (곧 출시 될!) 가벼운 규칙 유도, mlrules, ... |
데모는 노트북 폴더에 포함되어 있습니다.
imodels 사용하는 예를 보여줍니다.위의 모델의 최종 형태는 다음 형식 중 하나를 취하며, 동시에 이해하기 쉽고 예측이 매우 간단합니다.
| 규칙 세트 | 규칙 목록 | 규칙 트리 | 대수 모델 |
|---|---|---|---|
다른 모델과 알고리즘은 최종 형태뿐만 아니라 모델링 중에 다른 선택과 같이 다양한 선택에 따라 다릅니다. 예 : 생성, 선택 및 후 프로세스 규칙은 다음과 같습니다.
| 규칙 후보 세대 | 규칙 선택 | 규칙 후 처리 |
|---|---|---|
다른 모델은 다른 기계 학습 작업을 지원합니다. 다른 모델에 대한 현재 지원은 아래에 나와 있습니다 (이 모델 각각은 Imodels에서 직접 가져올 수 있습니다 (예 : from imodels import RuleFitClassifier ) :
| 모델 | 이진 분류 | 회귀 | 메모 |
|---|---|---|---|
| 규칙 규칙 세트 | RuleFitClassifier | RulefitResgressor | |
| 스코프 규칙 세트 | Skoperulesclassifier | ||
| 강화 된 규칙 세트 | 부스트 룰 레스 클래 시퍼 | 부스트 룰 레스 리그러스 | |
| 슬리퍼 규칙 세트 | 슬리퍼 분류기 | ||
| 베이지안 규칙 세트 | 베이에 시안 세트 분류기 | 큰 문제에 실패합니다 | |
| 최적 규칙 목록 (코렐) | OptimalRulelistClassifier | 코렐이 필요하고 큰 문제가 발생하지 않습니다 | |
| 베이지안 규칙 목록 | 베이에 시안 렐리스트 클래 시어 | ||
| 욕심 많은 규칙 목록 | GreedyrulelistClassifier | ||
| oner 규칙 목록 | Onerclassifier | ||
| 최적 규칙 트리 (GOSDT) | 최적의 클래 시퍼 | GOSDT가 필요하고 큰 문제가 발생하지 않습니다 | |
| 욕심 많은 규칙 트리 (카트) | Greedytreeclassifier | Greedytreeregressor | |
| C4.5 규칙 트리 | C45Treeclassifier | ||
| 타오 규칙 트리 | taotreeclassifier | Taotreeregressor | |
| 반복적 인 임의의 숲 | irfclassifier | IRF가 필요합니다 | |
| 드문 정수 선형 모델 | Slimclassifier | SlimRegressor | 속도에 대한 추가 종속성이 필요합니다 |
| 트리 gam | TreeGamClassifier | TreeGamregressor | |
| 욕심 나무 합계 (그림) | figsclassifier | Figsregressor | |
| 계층 적 수축 | hstreeclassifiercv | hstreeResressorcv | Sklearn Tree 기반 모델을 감싸십시오 |
| 증류 | 증류수 | 스카리 호환 모델을 감싸십시오 | |
| 자동 모델 | AutointerPretableClassifierel | AutointerPretableRegressorel |
| 임의의 | 참조 | 설명 |
|---|---|---|
| MDLP | ,?,? | 엔트로피 최소화 휴리스틱을 사용하여 이산화하십시오 |
| 단순한 | ,? | 간단한 KBINS 이산화 |
| 임의의 숲 | 임의의 산림 분할 인기에 따라 쓰레기통으로 사라집니다 |
imodels 개발하고 연주 한 후 기존 해석 가능한 모델의 한계를 극복하기 위해 몇 가지 새로운 모델을 개발했습니다.
? 종이, ? 우편, ? 소환
빠른 해석 가능한 욕심 나무 합계 (그림)는 간결한 규칙 기반 모델을 맞추기위한 알고리즘입니다. 구체적으로, Figs는 CART를 일반화하여 동시에 요약으로 유연한 수의 나무를 재배합니다. 모든 나무에 걸친 총 스플릿 수는 사전 지정된 임계 값으로 제한 될 수 있으며 모델을 해석 할 수 있습니다. 광범위한 실제 데이터 세트에 대한 실험에 따르면 무화과는 몇 가지 분할 (예 : 20 미만)으로 제한 될 때 최첨단 예측 성능을 달성 함을 보여줍니다.
예제 무화과 모델. 무화과는 유연한 수의 나무를 가진 나무의 합을 배웁니다. 예측을하기 위해 각 나무에서 결과를 요약합니다.
? 종이 (ICML 2022),? 우편, ? 소환
계층 적 수축은 결정 트리 (또는 임의의 숲과 같은 트리 기반 앙상블)에서 작동하는 매우 빠른 사후 정규화 방법입니다. 트리 구조를 수정하지 않고 대신 조상의 샘플 수단을 향한 각 노드의 예측을 단일 정규화 매개 변수를 사용하여 트리를 정규화합니다. 다양한 데이터 세트에 대한 실험에 따르면 계층 적 수축은 개별 의사 결정 트리 및 의사 결정 앙상블의 예측 성능을 크게 증가 시킨다는 것을 보여줍니다.
HS 예. HS는 각 노드를 부모로 줄임으로써 의사 결정 트리에 사후 정규화를 적용합니다.
? 종이, ? 우편, ? 소환
MDI+는 새로운 기능 중요성 프레임 워크로, 임의의 산림에 대한 대중의 평균 감소 (MDI) 중요성 점수를 일반화합니다. MDI+는 핵심으로 최근에 발견 된 선형 회귀와 의사 결정 트리 사이의 연결을 확장합니다. 그렇게함으로써 MDI+를 사용하면 실무자가 (1) 기능 중요 계산을 데이터/문제 구조에 맞게 조정하고 (2) 의사 결정 트리의 알려진 편견을 완화하기 위해 추가 기능 또는 지식을 통합 할 수 있습니다. 실제 데이터 사례 연구와 광범위한 실제 데이터에서 영감을 얻은 시뮬레이션 모두에서 MDI+는 일반적으로 사용되는 기능 중요 측정 (예 : MDI, 순열 기반 점수 및 트레시 캡)을 실적으로 성과시킵니다.
패키지를 학업에서 사용하는 경우 패키지를 인용하십시오 :)
@ 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 },
}