zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    QT中的定时器使用
    range()函数常和len()函数一起用于字符串索引。在这里我们要显示每一个元素及其索引值。
    range()的print 《P核》P30
    2.13 带逗号的print语句输出的元素之间自动带个空格
    Python3.x和Python2.x的区别
    print语句默认每行添加一个换行符 来自2.13
    2.12 while循环 print与计数器先后顺序对结果的影响
    函数本地绑定与全局绑定的区别
    字典映射{ :}
    《Python核心编程》P21输入数值字符串→转整型
  • 原文地址:https://www.cnblogs.com/xiximayou/p/13811540.html
Copyright © 2011-2022 走看看