แพ็คเกจ 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 |
| ชุดกฎรองเท้าแตะ | - | ตามลำดับเรียนรู้ชุดของกฎด้วยรองเท้าแตะ |
| ชุดกฎเบย์ | - | ค้นหากฎที่กระชับด้วยการสุ่มตัวอย่างแบบเบย์ (ช้า) |
| รายการกฎที่ดีที่สุด | - | เหมาะกับรายการกฎโดยใช้การเพิ่มประสิทธิภาพทั่วโลกสำหรับ sparsity (corels) |
| รายการกฎเบย์ | - | เหมาะกับการกระจายรายการกฎขนาดกะทัดรัดด้วยการสุ่มตัวอย่างแบบเบย์ (ช้า) |
| รายการกฎโลภ | - | ใช้รถเข็นเพื่อให้พอดีกับรายการ (เพียงเส้นทางเดียว) แทนที่จะเป็นต้นไม้ |
| รายการกฎ oner | - | เหมาะกับรายการกฎที่ จำกัด อยู่เพียงคุณสมบัติเดียว |
| ต้นไม้กฎที่ดีที่สุด | - | พอดีกับต้นไม้สั้น ๆ โดยใช้การเพิ่มประสิทธิภาพทั่วโลกสำหรับ Sparsity (GOSDT) |
| ต้นไม้กฎโลภ | - | พอดีกับต้นไม้โดยใช้เกวียน |
| C4.5 กฎกฎ | - | อย่างโลภพอดีกับต้นไม้โดยใช้ C4.5 |
| ต้นไม้กฎเทา | - | พอดีกับต้นไม้โดยใช้การเพิ่มประสิทธิภาพแบบสลับ |
| สุ่มซ้ำ ป่า | - | พอดีกับป่าสุ่มซ้ำ ๆ โดยให้คุณสมบัติด้วย มีความสำคัญสูงโอกาสที่จะได้รับการคัดเลือกสูงขึ้น |
| จำนวนเต็ม โมเดลเชิงเส้น | - | โมเดลเชิงเส้นเบาบางพร้อมค่าสัมประสิทธิ์จำนวนเต็ม |
| เกมต้นไม้ | - | โมเดลสารเติมแต่งทั่วไปพอดีกับต้นไม้ที่เพิ่มขึ้นสั้น ๆ |
| ต้นไม้โลภ ผลรวม (มะเดื่อ) | ,? | ผลรวมของต้นไม้เล็ก ๆ ที่มีกฎทั้งหมดน้อยมาก (รูปที่) |
| เกี่ยวกับลำดับชั้น เสื้อคลุมหด | - | ปรับปรุงต้นไม้ตัดสินใจป่าสุ่มหรือ การไล่ระดับสีที่เพิ่มขึ้นอย่างรวดเร็วด้วยการทำให้เป็นมาตรฐานหลังคลอด |
| RF+ (MDI+) | - | ความสำคัญของคุณสมบัติตามป่าแบบสุ่มที่มีความยืดหยุ่น |
| การกลั่น เสื้อคลุม | ฝึกอบรมโมเดลกล่องดำ จากนั้นกลั่นเป็นรูปแบบที่ตีความได้ | |
| เสื้อคลุมอัตโนมัติ | พอดีและเลือกโมเดลที่ตีความได้โดยอัตโนมัติ | |
| รุ่นเพิ่มเติม | (เร็ว ๆ นี้!) การเหนี่ยวนำกฎที่มีน้ำหนักเบา, mlrules, ... |
การสาธิตมีอยู่ในโฟลเดอร์โน้ตบุ๊ก
imodels เพื่อรับกฎการตัดสินใจทางคลินิกรูปแบบสุดท้ายของโมเดลข้างต้นใช้หนึ่งในรูปแบบต่อไปนี้ซึ่งมีจุดมุ่งหมายที่จะเข้าใจได้ง่ายและคาดการณ์สูงพร้อมกัน:
| ชุดกฎ | รายการกฎ | ทรีกฎ | แบบจำลองพีชคณิต |
|---|---|---|---|
โมเดลและอัลกอริทึมที่แตกต่างกันไม่เพียง แต่ในรูปแบบสุดท้ายของพวกเขาเท่านั้น
| ปกครองการสร้างผู้สมัคร | การเลือกกฎ | กฎการประมวลผลหลัง |
|---|---|---|
รุ่นที่แตกต่างกันรองรับงานการเรียนรู้ของเครื่องจักรที่แตกต่างกัน การสนับสนุนในปัจจุบันสำหรับโมเดลที่แตกต่างกันได้รับด้านล่าง (แต่ละรุ่นเหล่านี้สามารถนำเข้าโดยตรงจาก iModels (เช่น from imodels import RuleFitClassifier ):
| แบบอย่าง | การจำแนกประเภทไบนารี | การถดถอย | หมายเหตุ |
|---|---|---|---|
| ชุดกฎกฎ | RulefitClassifier | Rulefitregressor | |
| ชุดกฎ Skope | Skoperulesclassifier | ||
| ชุดกฎที่เพิ่มขึ้น | BoostedRulesclassifier | BoostedRulesRegressor | |
| ชุดกฎรองเท้าแตะ | Slipperclassifier | ||
| ชุดกฎเบย์ | bayesianrulesetclassifier | ล้มเหลวสำหรับปัญหาใหญ่ | |
| รายการกฎที่ดีที่สุด (Corels) | OptimalRuleListClassifier | ต้องใช้ corels ล้มเหลวสำหรับปัญหาใหญ่ | |
| รายการกฎเบย์ | BayesianRuleListClassifier | ||
| รายการกฎโลภ | GreedyRuleListClassifier | ||
| รายการกฎ oner | onerclassifier | ||
| ทรีกฎที่ดีที่สุด (GOSDT) | OptimalTreeclassifier | ต้องใช้ Gosdt ล้มเหลวสำหรับปัญหาใหญ่ | |
| ต้นไม้กฎโลภ (เกวียน) | Greedytreeclassifier | GreedyTreeRegressor | |
| C4.5 กฎกฎ | C45Treeclassifier | ||
| ต้นไม้กฎเทา | Taotreeclassifier | TaotreeRegressor | |
| ป่าสุ่มซ้ำ | irfclassifier | ต้องใช้ IRF | |
| โมเดลเชิงเส้นจำนวนเต็มกระจัดกระจาย | Slimclassifier | Slimregressor | ต้องใช้การพึ่งพาความเร็วพิเศษ |
| เกมต้นไม้ | Treegamclassifier | Treegamregressor | |
| ผลรวมของต้นไม้โลภ (มะเดื่อ) | Figsclassifier | Figsregressor | |
| การหดตัวแบบลำดับชั้น | hstreeclassifiercv | hstreeregressorcv | ห่อโมเดลบนต้นไม้ Sklearn ใด ๆ |
| การกลั่น | ผู้กลั่นกรอง | ห่อโมเดลที่เข้ากันได้กับ Sklearn | |
| รุ่น AutomL | AutointerpretableClassifier️ | autointerpretableregressor️ |
| discretizer | อ้างอิง | คำอธิบาย |
|---|---|---|
| MDLP | - | discretize โดยใช้ฮิวริสติกการย่อขนาดเอนโทรปี |
| เรียบง่าย | - | discretization kbins ง่าย ๆ |
| ป่าสุ่ม | discretize เป็นถังขยะตามความนิยมแยกป่าแบบสุ่ม |
หลังจากพัฒนาและเล่นกับ 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 },
}