自動化された機械学習: よく使われる 5 つの AutoML フレームワークの紹介

自動化された機械学習: よく使われる 5 つの AutoML フレームワークの紹介

AutoML フレームワークによって実行されるタスクは、次のように要約できます。

  • データを前処理してクリーンアップします。
  • 適切な機能を選択して構築します。
  • 適切なモデルを選択してください。
  • モデルのハイパーパラメータを最適化します。
  • ニューラル ネットワークのトポロジを設計します (ディープラーニングを使用する場合)。
  • 機械学習モデルの後処理。
  • 結果の視覚化とプレゼンテーション。

この記事では、次の 5 つのオープンソース AutoML ライブラリまたはフレームワークを紹介します。

  • オートスクリア
  • TPOT
  • ハイパーオプト
  • 自動ケラス
  • H2O オートML

1. オートスクリアン

Auto-sklearn は、すぐに使用できる自動化された機械学習ライブラリです。 auto-sklearn は scikit-learn に基づいており、適切な学習アルゴリズムを自動的に検索し、そのハイパーパラメータを最適化します。 メタ学習、ベイズ最適化、アンサンブル学習などの検索を通じて、最適なデータ処理パイプラインとモデルを取得できます。前処理や特徴エンジニアリング技術(One-Hot エンコーディング、特徴の正規化、次元削減など)など、面倒な作業のほとんどを処理できます。

インストール:

 #ピップ
pip インストール自動- sklearn
#コンダ
conda インストール- c conda - forge auto - sklearn

カプセル化の量が多いため、使用する方法は基本的に sklearn と同じです。以下はサンプル コードです。

 sklearn.datasets インポートする
sklearn.metrics インポートする
autosklearn.regressionインポートする
matplotlib.pyplot plt としてインポートします
X , y = sklearn.datasets.load_diabetes ( return_X_y = True )
X_trainX_testy_trainy_test = sklearn.model_selection.train_test_split ( X yrandom_state = 1 )
automl = autosklearn.regression.AutoSklearnRegressor (
このタスクの残り時間= 120
実行時間制限= 30
tmp_folder = '/tmp/autosklearn_regression_example_tmp'

automl.fit ( X_trainy_traindataset_name = 'diabetes' )

2.TPOT

TPOT (ツリーベースのパイプライン最適化ツール) は、遺伝的アルゴリズムの最適化を使用して機械学習プロセスを最適化する Python 自動機械学習ツールです。これも、データ変換と機械学習モデル構築のために Scikit-Learn によって提供される方法に基づいていますが、ランダム検索とグローバル検索には遺伝的アルゴリズム プログラミングを使用します。 TPOT 検索プロセスは次のとおりです。

インストール:

 #ピップ
pip ですべてのtpotをインストールします
#コンダ
conda をインストール-c conda - forge tpot

サンプルコード:

 tpot からTPOTClassifier をインポートする
sklearn.datasets からload_iris インポートする
sklearn.model_selection からtrain_test_split インポートします
sklearn.datasets からload_iris インポートする
numpyをnp としてインポートする

アイリス= load_iris ()
X_trainX_testy_trainy_test = train_test_split ( iris . data . astype ( np . float64 )、
iris.target.astype ( np.float64 )train_size = 0.75test_size = 0.25random_state = 42 )

tpot = TPOTClassifier ( 世代= 5人口サイズ= 50詳細度= 2ランダム状態= 42 )
tpot . fit ( X_train , y_train )
印刷( tpot . score ( X_test , y_test ))
tpot . export ( 'tpot_iris_pipeline.py' )

3. ハイパーオプト-Sklearn

HyperOpt-Sklearn は、AutoML と HyperOpt を Scikit-Learn と統合する HyperOpt のラッパーです。このライブラリには、データ前処理と分類および回帰アルゴリズム モデルの変換が含まれています。ドキュメントには次のように書かれています: 数百のパラメータを持つモデルの大規模な最適化用に設計されており、複数のコアと複数のマシンにわたって最適化プロセスをスケーリングできます。

インストール:

 pip インストールhyperopt

サンプルコード:

 pandas からread_csv をインポートする
sklearn.datasets からload_iris インポートする
sklearn.model_selection からtrain_test_split インポートします
sklearn.metrics からmean_absolute_error インポートする
hpsklearn からHyperoptEstimator をインポート
hpsklearn からany_regressor をインポート
hpsklearn からany_preprocessing をインポート
ハイパーオプトからtpe をインポート
# データセットをロード
アイリス= load_iris ()
X_trainX_testy_trainy_test = train_test_split ( iris . data . astype ( np . float64 )、
iris.target.astype ( np.float64 ) train_size = 0.75test_size = 0.25random_state = 42 )
モデル= HyperoptEstimator ( 回帰係数= any_regressor ( ' reg ' )、 前処理= any_preprocessing ( 'pre ' )、 loss_fn = mean_absolute_erroralgo = tpe.suggestmax_evals = 50trial_timeout = 30 )
モデル.fit ( X_train , y_train )
# パフォーマンスを要約する
mae = モデル. スコア( X_test , y_test )
印刷( "MAE: %.3f" % mae )
# 最良モデルを要約する
印刷( モデル. best_model ())

4. オートケラス

AutoKeras は、わずか数行のコードでニューラル アーキテクチャ検索 (NAS) のパワーを実現する Keras ベースの AutoML システムです。 これはテキサス A&M 大学の DATA Lab によって開発され、TensorFlow の tf.keras API と Keras に基づいて実装されています。

AutoKeras は、画像分類、構造化データ分類、回帰などのさまざまなタスクをサポートできます。

インストール:

 pip でautokeras をインストールします

サンプルコード:

 numpyをnp としてインポートする
テンソルフローtf としてインポートする
tensorflow.keras.datasets からmnist インポートする
autokeras をak としてインポートする
# データセットをロード
( x_train , y_train )、( x_test , y_test ) = mnist.load_data ( )
印刷( x_train . shape ) # ( 60000 , 28 , 28 )
印刷( y_train . shape ) # ( 60000 , )
print ( y_train [: 3 ]) # 配列([ 7 , 2 , 1 ], dtype = uint8 )

# 画像分類を初期化します
clf = ak . ImageClassifier ( 上書き= Truemax_trials = 1 )
# 画像分類器トレーニングデータ入力します
clf.fit ( x_train , y_train , エポック= 10 )

# 最適モデル予測します
予測されたy = clf .predict ( x_test )
印刷( 予測されたy )
# テストデータを使用して最適モデルを評価します
印刷( clf . 評価( x_test , y_test ))

5. H2O オートML

H2O の AutoML を使用すると、ユーザーが指定した制限時間内に多数のモデルを自動的にトレーニングおよび調整できます。

H2O は、AutoML オブジェクト (モデルのグループ) と個々のモデルに適用される、さまざまな解釈方法を提供します。 説明を自動的に生成し、AutoML モデルを探索および解釈するためのシンプルなインターフェースを提供します。

インストール:

 h2o インストール

H2O は、分散型機械学習プラットフォームとしてさらに詳しく説明できるため、H2O クラスターを構築する必要があります。この部分のコードは Java を使用して開発されているため、JDK サポートをインストールする必要があります。

JAVA をインストールし、環境変数に Java パスを設定した後、cmd で次のコマンドを実行します。

 java - jar パス_to /h2o.jar

H2Oクラスターを起動し、Webインターフェースから操作することができます。Pythonコードで記述したい場合は、次の例を使用できます。

 を輸入する
h2o.init ( ) 関数
h2o.automl からH2OAutoML をインポートします
churn_df = h2o . import_file ( 'https://raw.githubusercontent.com/srivatsan88/YouTubeLI/master/dataset/WA_Fn-UseC_-Telco-Customer-Churn.csv' )
churn_df . タイプ
churn_df .describe() 関数
churn_trainchurn_testchurn_valid = churn_df.split_frame ( 比率= [ .7 .15 ])
チャーン_トレイン
y = 「解約」
x = churn_df .
x . 削除( y )
x .remove ( "顧客ID" )
aml = H2OAutoML ( max_models = 10seed = 10exclude_algos = [ "StackedEnsemble""DeepLearning" ]、 verbosity = "info"nfolds = 0 )
! nvidia - smi
aml.train ( x = xy = y training_frame = churn_trainvalidation_frame = churn_valid )

lb = aml . リーダーボード
ポンド. ヘッド()
churn_pred = aml.leader.predict ( churn_test )
churn_pred.head ( )
aml . リーダー. model_performance ( churn_test )
model_ids = リスト( aml.leaderboard [ 'model_id' ]. as_data_frame (). iloc [:, 0 ] )
#se = h2o . get_model ([ mid for mid in model_ids if "StackedEnsemble_AllModels" in mid ][ 0 ])
#metalearner = h2o.get_model ( se.metalearner ( ) [ '名前' ])
モデルID
h2o . get_model ([ mid の場合、 model_ids mid があり、 mid "XGBoost" がある場合][ 0 ])
out = h2o . get_model ([ mid for mid in model_ids if "XGBoost" in mid ][ 0 ])
出力. パラメータ
出力。convert_H2OXGBoostParams_2_XGBoostParams ()

out_gbm = h2o . get_model ([ mid for mid in model_ids if "GBM" in mid ][ 0 ])
出力.confusion_matrix ()
出力.varimp_plot ()
aml.leader.download_mojo ( パス= "./ " )

要約する

この記事では、5 つの AutoML ライブラリと、それらがどのようにデータの前処理、ハイパーパラメータの調整、モデルの選択、評価などの機械学習タスクの自動化を検討するかをまとめました。これら 5 つの一般的なライブラリに加えて、AutoGluon、MLBoX、TransmogrifAI、Auto-WEKA、AdaNet、MLjar、TransmogrifAI、Azure Machine Learning、Ludwig など、他の AutoML ライブラリもいくつかあります。


<<:  新しい技術が機械学習モデルの推論を人間の推論と比較する

>>:  強化学習でデータ分析を行うにはどうすればいいでしょうか?シンガポール国立大学等によるTKDE 2022レビュー論文

ブログ    

推薦する

ボストン・ダイナミクスの工場で働くロボット犬が話題に

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

ビジネスプロセス管理を使用してマイクロサービス、人、ロボットを調整する方法

DevOps チームがプロセスの自動化を計画している場合は、ビジネス プロセス管理 (BPM) エン...

...

...

アメリカの人工知能の簡単な分析

米国の人工知能戦略配置と発展パターンは、高度に体系化され、段階が明確であり、世界の人工知能発展の最新...

次世代の人工知能は将来のテクノロジーの展望を一変させるだろう

過去 10 年間、従来のシステムからクラウド コンピューティング サービス、ランサムウェア対策まで、...

河南省鄭州市:自動運転オンライン配車サービス車両が一般公開

[[408894]]河南省鄭州市では7月1日、鄭東新区で自動運転バスと自動運転乗用車が運用開始され、...

Googleが生成AIをオンラインショッピングに適用、実在のモデルが高精度な仮想衣装着せ替えを実現

グーグルは6月15日、オンラインショッピングツールに新たな生成AI技術を導入すると発表した。この技術...

製造業における人工知能の8つの応用シナリオ

スマート製造ブームの到来により、設計、生産、管理、サービスなど、製造業のあらゆる側面に人工知能アプリ...

ビッグデータの発展は、ソフトウェアエンジニアの漸進的な衰退とアルゴリズムエンジニアの台頭を伴うことになる。

[[190402]]ビッグデータは人類の歴史のどの時代にも存在していましたが、テクノロジーが一定の...

...

人工知能が将来の保険金請求に与える影響

保険業界におけるデータ分析の利点は一般的に知られています。調査レポートでは、ビッグデータサプライヤー...

カルパシーはOpenAIの内部闘争中にビデオを録画しました:大規模言語モデル入門がオンラインです

OpenAIでの混乱はひとまず終息し、社員たちは忙しく「仕事」をしている。今年初めに OpenAI ...

OpenAI エンジニア必読: 苦い教訓

OpenAIが動画生成モデルSoraをリリースしてから1週間が経ちましたが、その人気は衰えていません...