[推奨]最も頻繁に使用される5つのAutoMLフレームワーク

みなさん、こんにちは。AutoMLによって実行されるタスクは次のように要約できます。

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

この記事では、最も一般的でよく知られている5つのオープンソースAutoMLライブラリまたはフレームワークを整理します。ブックマーク、いいね、フォローすることを忘れないでください。

  • Auto-Sklearn
  • TPOT
  • Hyperopt Sklearn
  • オートハード
  • H2O AutoML

【注】コード情報、技術文書、技術交流は記事の最後で入手できます。

1、Auto-Sklearn

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

インストール:

#pip
pip install auto-sklearn
#conda
conda install -c conda-forge auto-sklearn

カプセル化が多いため、sklearnが使用するメソッドは基本的に同じです。サンプルコードは次のとおりです。

import sklearn.datasets
import sklearn.metrics
import autosklearn.regression
import matplotlib.pyplot as plt
X, y = sklearn.datasets.load_diabetes(return_X_y=True)
X_train, X_test, y_train, y_test = sklearn.model_selection.train_test_split(X, y, random_state=1)
automl = autosklearn.regression.AutoSklearnRegressor(
    time_left_for_this_task=120,
    per_run_time_limit=30,
    tmp_folder='/tmp/autosklearn_regression_example_tmp',
)
automl.fit(X_train, y_train, dataset_name='diabetes')

コードアドレス:https://github.com/automl/auto-sklearn

2、TPOT

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

ここに画像の説明を挿入

インストール:

#pip
pip insall tpot
#conda
conda install -c conda-forge tpot

サンプルコード:

from tpot import TPOTClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
import numpy as np

iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data.astype(np.float64),
    iris.target.astype(np.float64), train_size=0.75, test_size=0.25, random_state=42)

tpot = TPOTClassifier(generations=5, population_size=50, verbosity=2, random_state=42)
tpot.fit(X_train, y_train)
print(tpot.score(X_test, y_test))
tpot.export('tpot_iris_pipeline.py')

コードアドレス:https://github.com/EpistasisLab/tpot

3、HyperOpt-Sklearn:

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

インストール:

pip install hyperopt

サンプルコード:

from pandas import read_csv
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_absolute_error
from hpsklearn import HyperoptEstimator
from hpsklearn import any_regressor
from hpsklearn import any_preprocessing
from hyperopt import tpe
# load dataset
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data.astype(np.float64),
    iris.target.astype(np.float64), train_size=0.75, test_size=0.25, random_state=42)
model = HyperoptEstimator(regressor=any_regressor('reg'), preprocessing=any_preprocessing('pre'), loss_fn=mean_absolute_error, algo=tpe.suggest, max_evals=50, trial_timeout=30)
model.fit(X_train, y_train)
# summarize performance
mae = model.score(X_test, y_test)
print("MAE: %.3f" % mae)
# summarize the best model
print(model.best_model())

コードアドレス:https://github.com/hyperopt/hyperopt-sklearn

4、AutoKeras

AutoKerasはKerasベースのAutoMLシステムであり、わずか数行のコードでNeural Architecture Search(NAS)の機能を提供します。テキサスA&M大学のDATAラボによって開発され、TensorFlowのtf.kerasAPIとKerasに基づいて実装されました。

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

インストール:

pip install autokeras

サンプルコード:

import numpy as np
import tensorflow as tf
from tensorflow.keras.datasets import mnist
import autokeras as ak
#Load dataset
(x_train, y_train), (x_test, y_test) = mnist.load_data()
print(x_train.shape)  # (60000, 28, 28)
print(y_train.shape)  # (60000,)
print(y_train[:3])  # array([7, 2, 1], dtype=uint8)

# Initialize the image classifier.
clf = ak.ImageClassifier(overwrite=True, max_trials=1)
# Feed the image classifier with training data.
clf.fit(x_train, y_train, epochs=10)

# Predict with the best model.
predicted_y = clf.predict(x_test)
print(predicted_y)
# Evaluate the best model with testing data.
print(clf.evaluate(x_test, y_test))

コードアドレス:https://github.com/keras-team/autokeras

5 H2O AutoML

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

H2Oは、AutoMLオブジェクト(モデルのグループ)および個々のモデルに対して、多数の解釈可能性メソッドを提供します。説明は自動的に生成され、AutoMLモデルを探索および解釈するためのシンプルなインターフェイスを提供します。

インストール:

pip insall h2o

H2Oは、より詳細に分散型機械学習プラットフォームと言えますので、H2Oクラスターを構築する必要があります。コードのこの部分はJavaを使用して開発されており、jdkサポートをインストールする必要があります。

JAVAのインストールが完了し、環境変数がjavaパスに設定されたら、cmdで次のコマンドを実行します。

java -jar path_to/h2o.jar

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

import h2o
h2o.init()
from h2o.automl import H2OAutoML
churn_df = h2o.import_file('https://raw.githubusercontent.com/srivatsan88/YouTubeLI/master/dataset/WA_Fn-UseC_-Telco-Customer-Churn.csv')
churn_df.types
churn_df.describe()
churn_train,churn_test,churn_valid = churn_df.split_frame(ratios=[.7, .15])
churn_train
y = "Churn"
x = churn_df.columns
x.remove(y)
x.remove("customerID")
aml = H2OAutoML(max_models = 10, seed = 10, exclude_algos = ["StackedEnsemble", "DeepLearning"], verbosity="info", nfolds=0)
!nvidia-smi
aml.train(x = x, y = y, training_frame = churn_train, validation_frame=churn_valid)

lb = aml.leaderboard
lb.head()
churn_pred=aml.leader.predict(churn_test)
churn_pred.head()
aml.leader.model_performance(churn_test)
model_ids = list(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()['name'])
model_ids
h2o.get_model([mid for mid in model_ids if "XGBoost" in mid][0])
out = h2o.get_model([mid for mid in model_ids if "XGBoost" in mid][0])
out.params
out.convert_H2OXGBoostParams_2_XGBoostParams()
out
out_gbm = h2o.get_model([mid for mid in model_ids if "GBM" in mid][0])
out.confusion_matrix()
out.varimp_plot()
aml.leader.download_mojo(path = "./")

コードアドレス:https://github.com/h2oai/h2o-3

要約する

この記事では、5つのAutoMLライブラリと、データ前処理、ハイパーパラメータチューニング、モデル選択、評価などのタスクの機械学習の自動化をどのように検証するかを要約します。

これらの5つの一般的なライブラリに加えて、AutoGluon、MLBoX、TransmogrifAI、Auto-WEKA、AdaNet、MLjar、TransmogrifAI、Azure Machine Learning、Ludwigなどの他のAutoMLライブラリがあります。

おすすめ記事

テクノロジーエクスチェンジ

転載、収集、いいね、サポートへようこそ!

ここに画像の説明を挿入

現在、 2,000人以上のメンバーで構成される技術交流グループが開設されています。追加する際の最良のコメント方法は、ソース+関心の方向性です。これは、志を同じくする友人を見つけるのに便利です。

  • 方法1.次の画像をWeChatに送信し、長押しして識別し、バックグラウンドで返信します。グループを追加します。
  • 方法②、マイクロ信号を追加:dkl88191、注:CSDNから
  • 方法③、WeChat検索パブリックアカウント:Python学習とデータマイニング、バックグラウンド応答:グループを追加

長押しフォロー

おすすめ

転載: blog.csdn.net/weixin_38037405/article/details/124092606