自動化された機械学習: よく使われる 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)は、新薬の発見から新しい数学の問題の解決まで、あらゆることを人間が行うのに役立ってお...

アメリカの科学者は、AIも人間と同じように「睡眠」が必要であることを発見した。

コンピュータや機械は睡眠なしでも動作できますが、科学者たちは最近、人間と同様に一部の AI も「睡眠...

Ma Yi、LeCun、Xie Saining がマルチモーダル LLM の重大な欠陥を明らかにしました。画期的な研究により視覚的理解が大幅に向上

サム・アルトマンは、将来の AI テクノロジーが人類に利益をもたらすためには、大規模言語モデルのマル...

ILO: 生成型AIは大量失業を引き起こす可能性は低いが、雇用を創出するだろう

国連機関である国際労働機関は最近、ChatGPTのような生成AIが人間の間で大規模な失業を引き起こす...

GPU とニューラル ネットワーク アクセラレータ チップが自動車アプリケーションにインテリジェントな優位性をもたらす仕組みを説明します。

車が自ら考えるのを助ける —— グラフィックスプロセッシング ユニット( GPU ) とニューラル...

インターネットの価値観を修正するガバナンスアルゴリズム

最近、中国サイバースペース管理局は「インターネット情報サービスアルゴリズム推奨管理規則(草案)」(以...

生産効率が50%アップ!ファーウェイはAI機能を活用して大東コイルのデジタル変革を推進し、コスト削減と効率向上に貢献している。

デジタル変革は、現在の企業、特にハイテクの伝統的な製造業の主なテーマとなっています。人工知能、クラウ...

...

IoTとAIはパンデミック中に企業が事業を再開するのにどのように役立つか

数か月に及ぶ極度の不確実性、経済活動の停止、強制的な自宅隔離を経て、ようやく経済活動と取引がゆっくり...

AIはイノベーションを通じて気候への影響を補うことができるでしょうか?

最も熱心な気候変動監視者でさえ希望を抱いている。なぜなら、人類の革新と技術が私たちをこの混乱に陥れた...

機械学習を超簡単にする 8 つのオープンソース ツール

機械学習開発者には、プロジェクトで使用できるツールを含め、多くの機械学習リソースが必ず必要になります...