成人av在线资源一区,亚洲av日韩av一区,欧美丰满熟妇乱XXXXX图片,狠狠做五月深爱婷婷伊人,桔子av一区二区三区,四虎国产精品永久在线网址,国产尤物精品人妻在线,中文字幕av一区二区三区欲色
    您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
    此為臨時鏈接,僅用于文章預覽,將在時失效
    人工智能開發者 正文
    發私信給AI研習社-譯站
    發送

    0

    Python簡化代碼機器學習庫PyCaret 2.0發布

    本文作者: AI研習社-譯站 2020-08-18 14:54
    導語:PyCaret是一個開源的,低代碼的Python機器學習庫,旨在自動化機器學習工作流。它可以加速機器學習的實驗周期,提高你的效率。

    Python簡化代碼機器學習庫PyCaret 2.0發布

    字幕組雙語原文:Python簡化代碼機器學習庫PyCaret 2.0發布

    英語原文:Announcing PyCaret 2.0

    翻譯:雷鋒字幕組(Shangru


    我們激動的宣布,PyCaret第二版今天發布!

    PyCaret是一個開源的,低代碼的Python機器學習庫,旨在自動化機器學習工作流。它是端到端的機器學習和模型管理工具。它可以加速機器學習的實驗周期,提高你的效率。

    和其他開源機器學習庫相比,PyCaret是低代碼的。它可以用幾個單詞取代上百行代碼。這大大提高了實驗的速度和效率。在版本說明 release notes  中查看PyCaret 2.0的更多細節。

    為什么要用PyCaret

    Python簡化代碼機器學習庫PyCaret 2.0發布

    數據準備 模型訓練 超參數調優(從左到右)

    分析和截圖 模型選擇 實驗日志記錄(從左到右)

    PyCaret 2.0 功能

    安裝PyCaret 2.0

    安裝PyCaret非常簡單,只需要幾分鐘時間。我們強烈建議使用虛擬環境,以避免和其他庫的潛在沖突。以下示例代碼創建了一個conda環境,并在該conda環境下安裝pycaret

    # 創建一個 conda 環境

    conda create --name yourenvname python=3.6  

    # 激活環境 

    conda activate yourenvname  

    # 安裝 pycaret 

    pip install pycaret==2.0  # create notebook kernel linked with the conda environment python -m ipykernel install --user --name yourenvname --display-name "display-name"

    如果你使用Azure notebook或者Google Colab,運行下列代碼安裝PyCaret

    !pip install pycaret==2.0

    所有的依賴項會在使用pip安裝PyCaret時自動安裝。點擊Click here這里查看完整的依賴列表。 

    開始PyCaret 2.0

    在PyCaret中,任何機器學習實驗的第一步是配置環境。這需要導入相關模型并通過傳遞數據框(dataframe)和目標變量的名字來初始化配置函數。示例代碼如下:

    # 導入模塊

    from pycaret.classification import *

    # 初始化配置 (在Notebook環境內)

    clf1 = setup(data, target = 'target-variable')

    # 初始化配置 (在 Notebook 環境外)

    clf1 = setup(data, target = 'target-variable', html = False)

    # 初始化配置 (在 Kaggle / GitHub actions / CI-CD 管道等遠程執行)

    clf1 = setup(data, target = 'target-variable', html = False, silent = True)

    輸出示例:

    Python簡化代碼機器學習庫PyCaret 2.0發布

    輸出片段

    所有的預處理變換在配置函數中被調用。PyCaret提供了超過20種不同的,可在配置函數內調用的預處理變換。點擊這里 Click here 了解PyCaret更多的預處理能力。

    Python簡化代碼機器學習庫PyCaret 2.0發布

    樣本和劃分:訓練/測試劃分;采樣

    數據準備:缺失數據補全;獨熱編碼;內在順序編碼;Cardinal編碼;不平衡修正

    縮放和轉換:歸一化;轉換

    特征工程:特征交互;多項式特征;組特征;二元數值特征

    特征選擇:特征重要性;共線性移除;PCA;忽略低方差

    無監督:創建聚類;異常移除

    https://www.pycaret.org/preprocessing

    模型比較

    這是所有監督學習模型任務中,我們推薦的第一步。該函數會使用模型的默認超參數來訓練所有模型,并通過交叉檢驗來評估性能。它返回一個已訓練的模型的對象類。可使用的評估測度包括:

    • 分類:準確度,AUC,召回率,精確率,F1,Kappa,MCC

    • 回歸: MAE, MSE, RMSE, R2, RMSLE, MAPE

    這里有幾種使用 compare_models 函數的方法:

    # 導入 classification 模塊

    from pycaret.classification import *

    # 初始化配置

    clf1 = setup(data, target = 'name-of-target')

    # 返回最優模型

    best = compare_models()

    # 返回基于召回率的最有模型

    best = compare_models(sort = 'Recall') #默認為準確率 'Accuracy'

    # 比較特定模型

    best_specific = compare_models(whitelist = ['dt','rf','xgboost'])

    # 排除特定模型

    best_specific = compare_models(blacklist = ['catboost','svm'])

    # 返回3個基于準確率的最有模型

    top3 = compare_models(n_select = 3)

    輸出示例:

    Python簡化代碼機器學習庫PyCaret 2.0發布 模型創建

    模型創建函數使用默認超參數訓練模型并使用交叉驗證評估模型性能。該函數是幾乎所有其他PyCaret函數的底。它返回訓練模型對象類。以下是幾種模型使用方法:

    # 導入 classification 模塊

    from pycaret.classification import *

    # 初始化配置

    clf1 = setup(data, target = 'name-of-target')

    # 訓練 logistic 回歸模型

    lr = create_model('lr') #lr is the id of the model

    # 通過模型庫來查看所有模型

    models()

    # 使用5折交叉驗證訓練隨機森林模型

    rf = create_model('rf', fold = 5)

    # 不適用交叉驗證訓練SVM模型

    svm = create_model('svm', cross_validation = False)

    # 訓練xgboost模型,其中 max_depth = 10

    xgboost = create_model('xgboost', max_depth = 10)

    # 在gpu上訓練xgboost模型

    xgboost_gpu = create_model('xgboost', tree_method = 'gpu_hist', gpu_id = 0) #0 is gpu-id

    # 在多個learning_rate下 訓練多個lightgbm 模型

    lgbms = [create_model('lightgbm', learning_rate = i) for i in np.arange(0.1,1,0.1)]

    # 訓練自定義模型

    from gplearn.genetic import SymbolicClassifier

    symclf = SymbolicClassifier(generation = 50)

    sc = create_model(symclf)

    輸出示例:

    Python簡化代碼機器學習庫PyCaret 2.0發布

    create_model函數的輸出示例

    要了解更多關于模型創建函數,點擊這里 click here.

    模型調優

    模型調優函數以估計器的形式調優模型超參數。它在預設定的調優網格( 可完全定制化 )上進行隨機網格搜索。以下是幾種函數使用方法:

    # 導入classification 模塊

    from pycaret.classification import *

    # 初始化配置

    clf1 = setup(data, target = 'name-of-target')

    # 訓練一個決策樹模型

    dt = create_model('dt')

    # 調優決策樹的一個超參數

    tuned_dt = tune_model(dt)

    # 增加n_iter來調參

    tuned_dt = tune_model(dt, n_iter = 50)

    # 基于最優化AUC調參

    tuned_dt = tune_model(dt, optimize = 'AUC') #default is 'Accuracy'

    # 在 custom_grid 上調參

    params = {"max_depth": np.random.randint(1, (len(data.columns)*.85),20),

              "max_features": np.random.randint(1, len(data.columns),20),

              "min_samples_leaf": [2,3,4,5,6],

              "criterion": ["gini", "entropy"]

              }

    tuned_dt_custom = tune_model(dt, custom_grid = params)

    # 動態調優多個模型

    top3 = compare_models(n_select = 3)

    tuned_top3 = [tune_model(i) for i in top3]

    要了解更多模型調優函數,點擊這里 click here.

    模型集成

    有幾種函數可用于集成底學習器。 ensemble_model, blend_models 和stack_models是其中三種。 以下是幾種函數使用方法:

    # 導入classification 模型

    from pycaret.classification import *

    # 初始化配置

    clf1 = setup(data, target = 'name-of-target')

    # 訓練一個決策樹模型

    dt = create_model('dt')

    # 基于dt訓練一個 bagging 分類器

    bagged_dt = ensemble_model(dt, method = 'Bagging')

    # 基于dt訓練一個帶有100個估計器的adaboost 分類器

    boosted_dt = ensemble_model(dt, method = 'Boosting', n_estimators = 100)

    # 訓練一個包括庫中所有模型的投票分類器

    blender = blend_models()

    # 訓練一個基于特定模型的投票分類器

    dt = create_model('dt')

    rf = create_model('rf')

    adaboost = create_model('ada')

    blender_specific = blend_models(estimator_list = [dt,rf,adaboost], method = 'soft')

    # 動態訓練一個投票分類器

    blender_top5 = blend_models(compare_models(n_select = 5))

    # 訓練一個堆疊分類器

    stacker = stack_models(estimator_list = [dt,rf], meta_model = adaboost)

    # 動態堆疊多個模型

    top7 = compare_models(n_select = 7)

    stacker = stack_models(estimator_list = top7[1:], meta_model = top7[0])

    要了解更多模型集成函數,點擊這里 click here.

    模型預測

    和名字一樣,該函數用于推理/預測。以下是使用方法:

    # 訓練一個 catboost 模型

    catboost = create_model('catboost')

    # 基于留一(holdout)集預測 (當數據以及傳入)

    pred_holdout = predict_model(catboost)

    # 在新數據集上預測

    new_data = pd.read_csv('new-data.csv')

    pred_new = predict_model(catboost, data = new_data

    模型作圖

    模型作圖函數可用于評估訓練已完成的機器學習模型的性能評估。示例如下:

    # 導入classification 模塊

    from pycaret.classification import *

    # 初始化配置

    clf1 = setup(data, target = 'name-of-target')

    # 訓練一個adaboost 模型

    adaboost = create_model('ada')

    # AUC 作圖

    plot_model(adaboost, plot = 'auc')

    # 決策邊界

    plot_model(adaboost, plot = 'boundary')

    # PR曲線

    plot_model(adaboost, plot = 'pr')

    # 驗證曲線

    plot_model(adaboost, plot = 'vc')

    Python簡化代碼機器學習庫PyCaret 2.0發布

    plot_model函數的輸出示例

    Click here 點擊這里了解PyCaret中不同的可視化方法

    另外,你可以在notebook的用戶交互界面中使用 evaluate_model 函數來查看圖

    Python簡化代碼機器學習庫PyCaret 2.0發布

    PyCaret中的 evaluate_model函數

    Util函數

    PyCaret 2.0包括了幾種新的util函數。當你在PyCaret中管理機器學習實驗時可以方便的使用。其中一些如下所示:

    # 在當前運行中選擇并完成最優模型

    best_model = automl() #返回基于交叉驗證分數的最優模型

    # 選擇并完成基于hold_out集上的 'F1' 分數的最優模型

    best_model_holdout = automl(optimize = 'F1', use_holdout = True)

    # 保存模型

    save_model(model, 'c:/path-to-directory/model-name')

    # 加載模型

    model = load_model('c:/path-to-directory/model-name')

    # 以pandas df格式返回分數

    dt = create_model('dt')

    dt_results = pull() #這會以pandas df格式保存 dt 分數網格

    # 讀取全局變量

    X_train = get_config('X_train') #返回預處理后的 X_train 數據集

    seed = get_config('seed') # 從全局變量中返回 seed 

    # 設置全局變量

    set_seed(seed, 999) #在當前運行中將全局變量seed 設為 999 

    # 以csv文件形式得到實驗日志

    logs = get_logs() # 默認為當前運行

    # 得到模型日志

    system_logs = get_system_logs() #從當前文件夾讀取logs.log 文件

    在發布說明  release notes. 中查看PyCaret 2.0中所有的新函數,

    Experiment日志

    PyCaret 2.0以后端API的形式嵌入了機器學習工作流的追蹤組件,并提供UI在你運行機器學習代碼時記錄參數,代碼版本,度量以及輸出文件,以供之后的結果可視化。你可以如下記錄你PyCaret中的實驗:

    # 導入classification 模塊

    from pycaret.classification import *

    # 初始化配置

    clf1 = setup(data, target = 'name-of-target', log_experiment = True, experiment_name = 'exp-name-here')

    # 比較模型

    best = compare_models()

    # 在localhost:5000運行mlflow 服務器(使用notebook時)

    !mlflow ui

    輸出(在 localhost:5000 )

    Python簡化代碼機器學習庫PyCaret 2.0發布

    整合——創建你自己的AutoML軟件

    通過使用這些函數,讓我們創建一個簡單的命令行軟件來使用默認參數來訓練多個模型,對最好的幾個候選模型進行超參數調優,嘗試不同的集成技術并返回/保存最優模型。以下是命令行腳本:

    # 導入庫

    import pandas as pd

    import sys

    # 定義命令行參數

    data = sys.argv[1]

    target = sys.argv[2]

    # 加載數據 (在使用自己的腳本時替換掉這部分)

    from pycaret.datasets import get_data

    input_data = get_data(data)

    # 初始化配置

    from pycaret.classification import *

    clf1 = setup(data = input_data, target = target, log_experiment = True)

    # 比較基準模型并選取前5個

    top5 = compare_models(n_select = 5)

    # 對前5個模型參數調優

    tuned_top5 = [tune_model(i) for i in top5]

    # 集成前5個調優后的模型

    bagged_tuned_top5 = [ensemble_model(i, method = 'Bagging') for i in tuned_top5]

    # 混合前5個模型

    blender = blend_models(estimator_list = top5)

    # 堆疊前5個模型

    stacker = stack_models(estimator_list = top5[1:], meta_model = top5[0])

    # 基于召回率選擇最優模型

    best_model = automl(optimize = 'Recall')

    # 保存模型

    save_model(best_model, 'c:/path-to-directory/final-model')

    該腳本動態選擇并保存最佳模型。只需要短短幾行代碼,你就開發好了自己的AutoML軟件,還帶有完整的日志系統和漂亮榜單的UI界面。

    通過這個輕量級工作流自動化Python庫,你可以完成無限可能。


    雷鋒字幕組是一個由 AI 愛好者組成的翻譯團隊,匯聚五百多位志愿者的力量,分享最新的海外AI資訊,交流關于人工智能技術領域的行業變革與技術創新的見解。

    團隊成員有大數據專家、算法工程師、圖像處理工程師、產品經理、產品運營、IT咨詢人、在校師生;志愿者們來自IBM、AVL、Adobe、阿里、百度等知名企業,北大、清華、港大、中科院、南卡羅萊納大學、早稻田大學等海內外高校研究所。

    如果,你也是位熱愛分享的AI愛好者。歡迎與雷鋒字幕組一起,學習新知,分享成長。

    Python簡化代碼機器學習庫PyCaret 2.0發布

    雷鋒網雷鋒網

    雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知

    Python簡化代碼機器學習庫PyCaret 2.0發布

    分享:
    相關文章

    知情人士

    AI研習社(yanxishe.com)譯站頻道,傳播前沿人工智能知識,讓語言不再成為學習知識的門檻。(原雷鋒字幕組)
    當月熱門文章
    最新文章
    請填寫申請人資料
    姓名
    電話
    郵箱
    微信號
    作品鏈接
    個人簡介
    為了您的賬戶安全,請驗證郵箱
    您的郵箱還未驗證,完成可獲20積分喲!
    請驗證您的郵箱
    立即驗證
    完善賬號信息
    您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
    立即設置 以后再說