pycaret模型分析


1、解釋模型

解釋復雜模型在機器學習中至關重要。 模型可解釋性通過分析模型真正認為的重要內容來幫助調試模型。 在PyCaret中解釋模型就像編寫interpret_model一樣簡單。 該函數將訓練有素的模型對象和圖的類型作為字符串。 解釋是基於SHAP(SHapley Additive exPlanations)實現的,並且僅適用於基於樹的模型。
該函數僅在pycaret.classification和pycaret.regression模塊中可用。

from pycaret.datasets import get_data
diabetes = get_data('diabetes')
# Importing module and initializing setup
from pycaret.classification import *
clf1 = setup(data = diabetes, target = 'Class variable')
# creating a model
xgboost = create_model('xgboost')
# interpreting model
interpret_model(xgboost)

interpret_model(xgboost, plot = 'correlation')

interpret_model(xgboost, plot = 'reason', observation = 10)

2、分配模型

在執行無監督實驗(例如聚類,異常檢測或自然語言處理)時,您通常會對模型生成的標簽感興趣,例如 數據點所屬的群集標識是“群集”實驗中的標簽。 同樣,哪個觀察值是異常值,是“異常檢測”實驗中的二進制標記,而哪個主題文檔屬於自然語言處理實驗中的標記。 這可以在PyCaret中使用assign_model函數實現,該函數將訓練有素的模型對象作為單個參數。
此功能僅在pycaret.clustering,pycaret.anomaly和pycaret.nlp模塊中可用。

# Importing dataset
from pycaret.datasets import get_data
jewellery = get_data('jewellery')

# Importing module and initializing setup
from pycaret.clustering import *
clu1 = setup(data = jewellery)

# create a model
kmeans = create_model('kmeans')

# Assign label
kmeans_results = assign_model(kmeans)

# Importing dataset
from pycaret.datasets import get_data
anomalies = get_data('anomalies')

# Importing module and initializing setup
from pycaret.anomaly import *
ano1 = setup(data = anomalies)

# create a model
iforest = create_model('iforest')

# Assign label
iforest_results = assign_model(iforest)

# Importing dataset
from pycaret.datasets import get_data
kiva = get_data('kiva')

# Importing module and initializing setup
from pycaret.nlp import *
nlp1 = setup(data = kiva, target = 'en')

# create a model
lda = create_model('lda')

# Assign label
lda_results = assign_model(lda)

3、校准模型

在進行分類實驗時,您通常不僅希望預測類別標簽,而且還希望獲得預測的可能性。這種可能性使您充滿信心。某些模型可能會使您對類概率的估計不佳。校准良好的分類器是概率分類器,其概率輸出可以直接解釋為置信度。在PyCaret中校准分類模型就像編寫calibrate_model一樣簡單。這些功能采用經過訓練的模型對象和通過方法參數進行校准的方法。方法可以是對應於Platt方法的“ Sigmoid”,也可以是非參數方法的“等滲”。不建議將等滲校准用於校准樣品太少(<< 1000),因為它傾向於過擬合。此函數返回一個表格,其中包含經過分類驗證指標(准確性,AUC,召回率,精度,F1和Kappa)的k倍交叉驗證得分以及受過訓練的模型對象。
可以使用calibrate_model函數中的fold參數定義折疊次數。默認情況下,折疊倍數設置為10。默認情況下,所有指標均四舍五入到4位小數,可以使用calibrate_model中的round參數進行更改。
此功能僅在pycaret.classification模塊中可用。

# Importing dataset
from pycaret.datasets import get_data
diabetes = get_data('diabetes')

# Importing module and initializing setup
from pycaret.classification import *
clf1 = setup(data = diabetes, target = 'Class variable')

# create a model
dt = create_model('dt')

# calibrate a model
calibrated_dt = calibrate_model(dt)

4、優化閾值 

在分類問題中,false positives 幾乎永遠不會與false negatives相同。這樣,如果您正在優化類型1和類型2錯誤產生不同影響的業務問題,則可以通過分別定義 true positives, true negatives, false positives and false negatives損失 來優化分類器的概率閾值,以優化自定義損失函數。在PyCaret中優化閾值就像編寫optimize_threshold一樣簡單。它需要一個訓練有素的模型對象(一個分類器),並且損失函數僅由真陽性,真陰性,假陽性和假陰性表示。此函數返回一個交互圖,其中損失函數(y軸)表示為x軸上不同概率閾值的函數。然后顯示一條垂直線,代表該特定分類器的概率閾值的最佳值。然后,可以將使用optimize_threshold優化的概率閾值用於predict_model函數,以使用自定義概率閾值生成標簽。通常,所有分類器都經過訓練可以預測50%的陽性分類。
此功能僅在pycaret.classification模塊中可用。

# Importing dataset
from pycaret.datasets import get_data
credit = get_data('credit')

# Importing module and initializing setup
from pycaret.classification import *
clf1 = setup(data = credit, target = 'default')

# create a model
xgboost = create_model('xgboost')

# optimize threshold for trained model
optimize_threshold(xgboost, true_negative = 1500, false_negative = -5000)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM