|
翻訳者 |朱賢宗 校正:梁策、孫淑娟 AutoML入門自動機械学習(AutoML)は、様々な機械学習プロセスを自動化し、エラーメトリクスを最適化して最適なモデルを生成します。これらのプロセスには、データの前処理、エンコード、スケーリング、ハイパーパラメータの最適化、モデルのトレーニング、アーティファクトの生成、結果のリスト表示が含まれます。自動機械学習プロセスは、人工知能ソリューションの迅速な開発、ユーザーエクスペリエンスの向上、そして多くの場合、ローコード実装で正確な結果を生成することを可能にします。 現在市場で人気のある有名な AutoML ライブラリには次のようなものがあります。
このチュートリアルでは、1994年の米国国勢調査の所得データを用いて、ある人の年収が5万ドルを超えるかどうかを予測します。これは典型的な二項分類問題であり、CC0パブリックドメインライセンスの下でKaggleの成人国勢調査所得データセットを使用します。このデータは、Silicon Graphics (SGI) のデータマイニングおよび可視化部門のRonny Kohavi氏とBarry Becker氏が、1994年の米国国勢調査局データベースから提供したものです。ただし、ここではデータ分析やモデルの仕組みについては詳しく説明しません。数行のコードで最適化された機械学習モデルを構築し、FastAPIサーバーを使ってアクセスするだけです。 AutoXGBプロジェクトの概要AutoXGBは、CSVファイル内の表形式データセットから直接モデルをトレーニングできる、オープンソースでシンプルかつ効果的なAutoML開発ツールです。AutoXGBは、モデルのトレーニングにXGBoost(最適化された分散勾配ブースティングライブラリ)、ハイパーパラメータ最適化にOptuna(機械学習と深層学習向けに特別に設計された自動ハイパーパラメータ最適化フレームワーク)、そしてAPI経由のモデル推論を提供するPythonベースのFastAPIフレームワークを使用します。 AutoXGBのインストールから始めましょう。サーバーの実行中にエラーが発生した場合は、FastAPIフレームワークとunvicornサーバープログラムが事前に正しくインストールされていることを確認してください。AutoXGBをインストールするコマンドは次のとおりです。 pip インストールautoxgb 初期化次に、AutoXGB関数の特性と、その様々なパラメータを使用して計算結果を改善したり、トレーニング時間を短縮したりする方法について詳しく説明します。AutoXGB関数のパラメータの意味は以下のとおりです。
1.「分類」 2.「回帰」
1. ["ターゲット"] 2.["ターゲット1", "ターゲット2"]
1. 特徴 = ["col1", "col2"]
1.カテゴリ特徴 = ["col1", "col2"]
1. use_gpu = True 2. use_gpu = False
1. 指定されていない場合は、すべての試行が実行されます。この場合(デフォルト)、time_limit = None です。
テストプロジェクトでは、train_filename、output、target、num_folds、seed、num_trails、time_limitを除くほとんどのパラメータをデフォルト値に設定しました。プロジェクト内の各パラメータの完全な設定は以下の通りです。 autoxgb からAutoXGB をインポートする トレーニングと最適化これで、AutoXGB関数を用いてモデルを定義し、事前に定義したパラメータをモデルに追加できます。最後に、axgb.train()関数を呼び出して学習プロセスを開始します。この時点で、XGBoostとOptunaが実行され、様々な成果物(モデル、予測値、結果、設定、パラメータ、エンコーダなど)が出力されます。 axgb = 自動XGB ( トレーニングプロセスには10~12分かかります。最良のトレーニング結果は以下で確認できます。制限時間を長くすることでF1スコアを向上させることができます。さらに、他のハイパーパラメータを使用してモデルのパフォーマンスを向上させることもできます。 2022-02-0918 : 11 : 27.163 | INFO | autoxgb.utils : predict_model : 336 - メトリクス:{ ' auc' : 0.851585935958628 、 'logloss' : 0.3868651767621002 、 'f1' : 0.5351485750859325 、 ' accuracy' : 0.8230396087432015 、 'precision' : 0.7282822005864846 、 'recall' : 0.42303153575005525 } CLIコマンドラインを使用したトレーニングbashターミナルを使用してモデルをトレーニングするには、コマンド「autoxgb train」を使用します。この場合、設定する必要があるのは「train_filename」と「output」の2つのパラメータだけです。「train_filename」パラメータはバイナリ分類トレーニングファイルのファイル名を指定し、「output」パラメータは出力フォルダの場所を指定します。コマンドは以下のとおりです。 autoxgb トレイン\ ウェブAPIターミナルで autoxgb サービスを実行することで、FastAPI サーバーをローカルで実行できます。 AutoXGB サービスパラメータ
Deepnoteクラウドサーバー上で実行Deepnoteはクラウドでサーバーを実行するために、ngrokを使ってパブリックURLを作成します。このオプションを有効にし、ポート8080を使用するだけです。もちろん、ローカルで実行する場合はこの手順は不要で、アドレス「http://0.0.0.0:8080」を直接使用できます。 サーバーのモデル パス、ホスト IP アドレス、およびポート番号を指定しました。 ! autoxgb serve - - model_path / work / output - - ホスト0.0.0 .0 - - ポート8080 - - デバッグ 結果は、APIがスムーズに動作していることを示しています。結果はhttps://8d3ae411-c6bc-4cad-8a14-732f8e3f13b7.deepnoteproject.comでご覧いただけます。 情報: これらのディレクトリの変更を監視します: [ '/work' ] 予測するランダムな入力を追加することで、誰かの収入が50,000ドルを超えるかどうかを予測できます。この例では、FastAPI/docsオプションを使用してユーザーインターフェースにアクセスします。 入力データモデル予測の実行にはFastAPI GUIを使用します。サーバーアドレスの末尾に「/docs」を追加することで実現できます(例:「172.3.167.43:39118/docs」)。このプロジェクトで入力したその他のテストデータは次のとおりです。
テスト結果実験の結果、50,000 ドル未満の金額では信頼度が 97.6% であったのに対し、50,000 ドルを超える金額では信頼度が 2.3% であることが示されました。 リクエストライブラリを使ったテストPythonのrequestsライブラリを使ってAPIをテストすることもできます。この手順は簡単です。パラメータを辞書として渡し、JSON形式で出力を取得するだけです。 輸入リクエスト プロジェクトのソースコードこの記事で説明したプロジェクトの完全なコードと例に興味がある場合は、次のリンクにアクセスしてください。
結論は私自身、AutoXGBとAutoMLを用いてKaggleコンペティションで優秀な成績を収め、複数の機械学習プロジェクトの基盤モデルを開発してきました。機械学習プロセス全体を通して、迅速かつ正確な結果が得られる場合もありますが、最先端のソリューションを作成するには、様々な機械学習プロセスを手動で実験する必要があります。 このチュートリアルでは、AutoXGBの様々な機能について解説しました。これで、AutoXGBを使ってデータの前処理、XGboostモデルの学習、Optunaを使ったモデルの最適化、FastAPIを使ったWebサーバーの実行などが可能になります。つまり、AutoXGBは日常的な表形式データの問題に対するエンドツーエンドのソリューションを提供します。 翻訳者紹介Zhu Xianzongは、51CTOコミュニティエディター、51CTOエキスパートブロガー兼講師、濰坊の大学でコンピュータサイエンスの講師を務め、フリープログラミングコミュニティのベテランです。当初は様々なMicrosoftテクノロジーに注力し(ASP.NET AJXとCocos 2d-Xに関する技術書を3冊執筆)、過去10年間はオープンソースの世界に身を捧げ、人気のフルスタックWeb開発テクノロジーに精通しています。OneNet/AliOS+Arduino/ESP32/Raspberry PiをベースとしたIoT開発テクノロジーや、Scala+Hadoop+Spark+Flinkといったビッグデータ開発テクノロジーに精通しています。 原題: No Brainer AutoML with AutoXGB 、著者: Abid Ali Awan |