zoukankan      html  css  js  c++  java
  • pycaret之模型部署

    1、预测模型
    一旦使用deploy_model将模型成功部署到云中,或者使用save_model在本地成功部署了模型,就可以使用predict_model函数将其用于看不见的数据进行预测。 此功能采用训练有素的模型对象和数据集进行预测。 它将自动应用实验过程中创建的整个转换管道。 对于分类,将基于50%的概率创建预测标签,但是如果您选择使用通过optimize_threshold获得的不同阈值,则可以在predict_model中传递概率_threshold参数。 此功能还可用于生成保留/测试集的预测。

    (1)Predictions on hold-out / test set

    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
    xgboost = create_model('xgboost')
    
    # predict on hold-out
    pred_holdout = predict_model(xgboost)

    (2) Predictions on unseen data

    # Importing dataset
    from pycaret.datasets import get_data
    boston = get_data('boston')
    
    # Importing module and initializing setup
    from pycaret.regression import *
    reg1 = setup(data = boston, target = 'medv')
    
    # create a model
    lr = create_model('lr')
    
    # finalize a model
    lr_final = finalize_model(lr)
    
    # importing unseen data 
    import pandas as pd
    data_unseen = pd.read_csv('data_unseen.csv') 
    
    # generate predictions on unseen data
    predictions = predict_model(lr_final, data = data_unseen)

     (3)Predictions on unseen data directly from cloud

    # Importing dataset
    from pycaret.datasets import get_data
    boston = get_data('boston')
    
    # Importing module and initializing setup
    from pycaret.regression import *
    reg1 = setup(data = boston, target = 'medv')
    
    # create a model
    lr = create_model('lr')
    
    # finalize a model
    lr_final = finalize_model(lr)
    
    # deploy a model
    deploy_model(lr_final, model_name = 'lr_aws', platform = 'aws',
                 authentication = {'bucket' : 'pycaret-test'})
    
    # importing unseen data 
    import pandas as pd
    data_unseen = pd.read_csv('data_unseen.csv') 
    
    # generate predictions directly from AWS
    predictions = predict_model('lr_aws', data = data_unseen, platform = 'aws', authentication = {'bucket' : 'pycaret-test'})

    2、完成模型

    最终确定模型是典型的受监督实验工作流程中的最后一步。当使用设置在PyCaret中开始实验时,将创建模型训练中未使用的保留集。默认情况下,如果在设置中未定义train_size参数,则保留集包含30%的数据集样本。 PyCaret中的所有功能都使用剩余的70%作为训练集来创建,调整或集成模型。因此,保持集是最终保证,可用于诊断过拟合/欠拟合。但是,一旦使用predict_model在保留集上生成了预测,并且选择了部署特定模型,就希望在包括保留在内的整个数据集上对模型进行最后一次训练。在整个数据集上完成模型的编写就像编写finalize_model一样容易。此函数接受训练的模型对象,并返回已在整个数据集中训练的模型。
    该函数仅在pycaret.classification和pycaret.regression模块中可用。

    # 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
    rf = create_model('rf')
    
    # finalize a model
    final_rf = finalize_model(rf)
    RandomForestClassifier(bootstrap=True, ccp_alpha=0.0, class_weight=None,
                           criterion='gini', max_depth=None, max_features='auto',
                           max_leaf_nodes=None, max_samples=None,
                           min_impurity_decrease=0.0, min_impurity_split=None,
                           min_samples_leaf=1, min_samples_split=2,
                           min_weight_fraction_leaf=0.0, n_estimators=10,
                           n_jobs=None, oob_score=False, random_state=123,
                           verbose=0, warm_start=False)

    3、部署模型
    使用finalize_model确定模型后,即可进行部署。 可以使用save_model功能在本地使用经过训练的模型,该功能将转换管道和经过训练的模型保存为最终用户应用程序可以作为二进制pickle文件使用。 或者,可以使用PyCaret将模型部署在云上。 在云上部署模型就像编写deploy_model一样简单。

    对于AWS用户
    在将模型部署到AWS S3(“ aws”)之前,必须使用命令行界面配置环境变量。 要配置AWS环境变量,请在python命令行中输入aws configure。 需要以下信息,可以使用您的亚马逊控制台帐户的身份和访问管理(IAM)门户生成以下信息:
    AWS访问密钥ID
    AWS密钥访问
    默认区域名称(可以在您的AWS控制台的“全局设置”下看到)
    默认输出格式(必须留空)

    # 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
    lr = create_model('lr')
    
    # finalize a model
    final_lr = finalize_model(lr)
    
    # Deploy a model
    deploy_model(final_lr, model_name = 'lr_aws', platform = 'aws', authentication = { 'bucket'  : 'pycaret-test' })
    # Importing unseen dataset
    import pandas as pd
    data_unseen = pd.read_csv('data_unseen.csv')
    
    # Generate predictions using deployed model
    from pycaret.classification import *
    predictions = predict_model(model_name = 'lr_aws', data = data_unseen, platform = 'aws', authentication = { 'bucket' : 'pycaret-test' })

    4、保存模型
    在PyCaret中保存训练好的模型就像编写save_model一样简单。 该函数采用经过训练的模型对象,并将整个转换管道和经过训练的模型对象保存为可传输的二进制pickle文件,以备后用。

    # 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')
    
    # save a model
    save_model(dt, 'dt_saved_07032020')
    # Loading the saved model
    dt_saved = load_model('dt_saved_07032020')
  • 相关阅读:
    python3.7版本安装pyinstaller
    Redis
    电商路演
    前台Vue、后台Django、设置axios解决csrf_token问题
    企业为什么要设置中台
    2021.1.11 学习总结
    2021.1.10 学习总结
    2021.1.9 学习总结
    2021.1.8 学习总结
    2021.1.7 学习总结
  • 原文地址:https://www.cnblogs.com/xiximayou/p/13811609.html
Copyright © 2011-2022 走看看