Azure Machine Learning のアルゴリズムの選択方法How to select algorithms for Azure Machine Learning

よくある質問は、「どの機械学習アルゴリズムを使用すればよいか」ということです。A common question is “Which machine learning algorithm should I use?” 選択するアルゴリズムは、主として、データ サイエンス シナリオの次の 2 つの異なる側面によって決まります。The algorithm you select depends primarily on two different aspects of your data science scenario:

  • データを使って何をしたいか?What you want to do with your data? 具体的には、過去のデータから学習することによって回答を得たいビジネス上の質問は何かということです。Specifically, what is the business question you want to answer by learning from your past data?

  • データ サイエンス シナリオの要件は何か?What are the requirements of your data science scenario? 具体的には、ソリューションでサポートする精度、トレーニング時間、線形性、パラメーターの数、特徴の数はどのくらいかということです。Specifically, what is the accuracy, training time, linearity, number of parameters, and number of features your solution supports?

アルゴリズムの選択に関する考慮事項:何を知りたいのか?

ビジネス シナリオと機械学習アルゴリズム チート シートBusiness scenarios and the Machine Learning Algorithm Cheat Sheet

Azure Machine Learning アルゴリズム チート シートは、最初の考慮事項である、「データを使って何をしたいか」について検討するのに役立ちます。The Azure Machine Learning Algorithm Cheat Sheet helps you with the first consideration: What you want to do with your data? Machine Learning アルゴリズム チート シートで、目的のタスクを探して、予測分析ソリューション用の Azure Machine Learning デザイナーのアルゴリズムを見つけます。On the Machine Learning Algorithm Cheat Sheet, look for task you want to do, and then find a Azure Machine Learning designer algorithm for the predictive analytics solution.

Machine Learning デザイナーは、多クラス デシジョン フォレストレコメンデーション システムニューラル ネットワーク回帰多クラス ニューラル ネットワークK-Means クラスタリングなどのアルゴリズムの包括的なポートフォリオを提供します。Machine Learning designer provides a comprehensive portfolio of algorithms, such as Multiclass Decision Forest, Recommendation systems, Neural Network Regression, Multiclass Neural Network, and K-Means Clustering. 各アルゴリズムは、機械学習の異なる種類の問題に対処するように設計されています。Each algorithm is designed to address a different type of machine learning problem. 完全な一覧、各アルゴリズムのしくみとパラメーターを調整してアルゴリズムを最適化する方法に関するドキュメントについては、「Azure Machine Learning デザイナーのアルゴリズムとモジュールのリファレンス」を参照してください。See the Machine Learning designer algorithm and module reference for a complete list along with documentation about how each algorithm works and how to tune parameters to optimize the algorithm.

注意

機械学習アルゴリズム チート シートをダウンロードするには、「Azure Machine Learning デザイナーの機械学習アルゴリズム チート シート」にアクセスします。To download the machine learning algorithm cheat sheet, go to Azure Machine learning algorithm cheat sheet.

ソリューションの機械学習アルゴリズムを選択する際には、Azure Machine Learning アルゴリズム チート シートのガイダンスと合わせて、他の要件にも留意してください。Along with guidance in the Azure Machine Learning Algorithm Cheat Sheet, keep in mind other requirements when choosing a machine learning algorithm for your solution. 精度、トレーニング時間、線形性、パラメーターの数、特徴の数など、考慮する必要がある追加の要素を次に示します。Following are additional factors to consider, such as the accuracy, training time, linearity, number of parameters and number of features.

機械学習アルゴリズムの比較Comparison of machine learning algorithms

一部の学習アルゴリズムは、データの構造や目的の結果について特定の想定をします。Some learning algorithms make particular assumptions about the structure of the data or the desired results. ニーズに合うものが見つかれば、より役に立つ結果や正確な予測が得られたり、トレーニングが短時間で済みます。If you can find one that fits your needs, it can give you more useful results, more accurate predictions, or faster training times.

次の表に、分類、回帰、クラスタリングの各ファミリから、アルゴリズムの最も重要な特性をまとめています。The following table summarizes some of the most important characteristics of algorithms from the classification, regression, and clustering families:

アルゴリズムAlgorithm 精度Accuracy トレーニング時間Training time 線形性Linearity パラメーターParameters メモNotes
分類ファミリClassification family
2 クラス ロジスティック回帰Two-Class logistic regression [良い]Good 速いFast はいYes 44
2 クラス デシジョン フォレストTwo-class decision forest [非常に良い]Excellent Moderate いいえNo 55 スコア付け時間が遅いことを示します。Shows slower scoring times. スコア付け時間が遅くなるのは、蓄積されたツリー予測でスレッドがロックされることに起因するため、One-vs-All Multiclass を使用しないことをお勧めします。Suggest not working with One-vs-All Multiclass, because of slower scoring times caused by tread locking in accumulating tree predictions
2 クラスの増幅デシジョン ツリーTwo-class boosted decision tree [非常に良い]Excellent Moderate いいえNo 66 メモリ フットプリントが大きいLarge memory footprint
2 クラス ニューラル ネットワークTwo-class neural network [良い]Good Moderate いいえNo 88
2 クラス平均化パーセプトロンTwo-class averaged perceptron [良い]Good Moderate はいYes 44
2 クラス サポート ベクター マシンTwo-class support vector machine [良い]Good 速いFast はいYes 55 大きい特徴セットに好適Good for large feature sets
多クラスのロジスティック回帰Multiclass logistic regression [良い]Good 速いFast はいYes 44
多クラス デシジョン フォレストMulticlass decision forest [非常に良い]Excellent Moderate いいえNo 55 スコア付け時間が遅いことを示しますShows slower scoring times
多クラスの増幅デシジョン ツリーMulticlass boosted decision tree [非常に良い]Excellent Moderate いいえNo 66 適用範囲が狭いという小さなリスクがありますが、精度を上げる傾向がありますTends to improve accuracy with some small risk of less coverage
多クラス ニューラル ネットワークMulticlass neural network [良い]Good Moderate いいえNo 88
One-vs-All MulticlassOne-vs-all multiclass - - - - 選択した 2 クラス法のプロパティを参照してくださいSee properties of the two-class method selected
回帰ファミリRegression family
線形回帰Linear regression [良い]Good 速いFast はいYes 44
デシジョン フォレスト回帰Decision forest regression [非常に良い]Excellent Moderate いいえNo 55
増幅デシジョン ツリーの回帰Boosted decision tree regression [非常に良い]Excellent Moderate いいえNo 66 メモリ フットプリントが大きいLarge memory footprint
ニューラル ネットワーク回帰Neural network regression [良い]Good Moderate いいえNo 88
クラスタリング ファミリClustering family
K-Means クラスタリングK-means clustering [非常に良い]Excellent Moderate はいYes 88 クラスタリング アルゴリズムA clustering algorithm

データ サイエンス シナリオの要件Requirements for a data science scenario

データを使って何をやりたいかがわかったら、ソリューションの追加要件を決定する必要があります。Once you know what you want to do with your data, you need to determine additional requirements for your solution.

次の要件を選択します。これらの間にはトレードオフが生じる可能性があります。Make choices and possibly trade-offs for the following requirements:

  • 精度Accuracy
  • トレーニング時間Training time
  • 線形性Linearity
  • パラメーターの数Number of parameters
  • 特徴の数Number of features

精度Accuracy

機械学習の精度では、すべてのケースに対する真の結果の割合として、モデルの有効性を測定します。Accuracy in machine learning measures the effectiveness of a model as the proportion of true results to total cases. Machine Learning デザイナーでは、モデルの評価モジュールで業界標準の一連の評価メトリックを計算します。In Machine Learning designer, the Evaluate Model module computes a set of industry-standard evaluation metrics. このモジュールを使用して、トレーニング済みのモデルの精度を測定します。You can use this module to measure the accuracy of a trained model.

可能な限り最も正確な回答を得ることが常に必要であるとは限りません。Getting the most accurate answer possible isn’t always necessary. 使用目的によっては、近似で十分な場合があります。Sometimes an approximation is adequate, depending on what you want to use it for. その場合は、より近似的な方法を使用することで、処理時間を大幅に短縮できる場合があります。If that is the case, you may be able to cut your processing time dramatically by sticking with more approximate methods. さらに、近似的な方法には、当然ながらオーバーフィットを回避する傾向があります。Approximate methods also naturally tend to avoid overfitting.

モデルの評価モジュールを使用するには、次の 3 つの方法があります。There are three ways to use the Evaluate Model module:

  • モデルを評価するために、トレーニング データのスコアを生成するGenerate scores over your training data in order to evaluate the model
  • モデルでスコアを生成するが、これらのスコアを予約済みのテスト セットでのスコアと比較するGenerate scores on the model, but compare those scores to scores on a reserved testing set
  • 同じデータ セットを使用して、2 つの異なるが関連するモデルのスコアを比較するCompare scores for two different but related models, using the same set of data

機械学習モデルの精度を評価するために使用できるメトリックとアプローチの完全な一覧については、「モデルの評価モジュール」を参照してください。For a complete list of metrics and approaches you can use to evaluate the accuracy of machine learning models, see Evaluate Model module.

トレーニング時間Training time

教師あり学習の場合、トレーニングは、履歴データを使用してエラーを最小限に抑える機械学習モデルを構築することを意味します。In supervised learning, training means using historical data to build a machine learning model that minimizes errors. モデルのトレーニングに必要な分数または時間数は、アルゴリズムによって大きく異なります。The number of minutes or hours necessary to train a model varies a great deal between algorithms. 多くの場合、トレーニング時間は精度と密接に関係しており、通常、片方があれば他方も伴います。Training time is often closely tied to accuracy; one typically accompanies the other.

さらに、一部のアルゴリズムは他よりデータ ポイントの数に大きく影響を受けます。In addition, some algorithms are more sensitive to the number of data points than others. 時間に制限があるため、特にデータ セットが大きい場合、特定のアルゴリズムを選択することもできます。You might choose a specific algorithm because you have a time limitation, especially when the data set is large.

Machine Learning デザイナーでは、機械学習モデルの作成と使用は、通常、3 つのステップから成るプロセスです。In Machine Learning designer, creating and using a machine learning model is typically a three-step process:

  1. 特定の種類のアルゴリズムを選択し、そのパラメーターまたはハイパーパラメーターを定義してモデルを構成します。Configure a model, by choosing a particular type of algorithm, and then defining its parameters or hyperparameters.

  2. ラベル付けされていて、かつアルゴリズムに適合したデータを含んだデータセットを指定します。Provide a dataset that is labeled and has data compatible with the algorithm. データとモデルの両方をモデルのトレーニング モジュールに接続します。Connect both the data and the model to Train Model module.

  3. トレーニングの完了後、いずれかのスコアリング モジュールでトレーニング済みのモデルを使用し、新しいデータについて予測を行います。After training is completed, use the trained model with one of the scoring modules to make predictions on new data.

線形性Linearity

統計および機械学習では、線形性は、データ セット内の変数と定数の間に線形関係があることを意味します。Linearity in statistics and machine learning means that there is a linear relationship between a variable and a constant in your dataset. たとえば、線形分類アルゴリズムは、クラスを直線 (またはその高次元版) で分離できることを想定しています。For example, linear classification algorithms assume that classes can be separated by a straight line (or its higher-dimensional analog).

機械学習アルゴリズムの多くは線形性を使用します。Lots of machine learning algorithms make use of linearity. Azure Machine Learning デザイナーでは、このようなアルゴリズムとして次のものがあります。In Azure Machine Learning designer, they include:

線形回帰アルゴリズムは、データの傾向が直線に従うことを想定しています。Linear regression algorithms assume that data trends follow a straight line. 問題によって、この想定が適切な場合もありますが、精度が低下することもあります。This assumption isn't bad for some problems, but for others it reduces accuracy. 線形回帰アルゴリズムは、欠点はあっても、最初の戦略として一般的です。Despite their drawbacks, linear algorithms are popular as a first strategy. アルゴリズムが簡単で、速くトレーニングできる傾向があります。They tend to be algorithmically simple and fast to train.

非線形クラス境界

非線形クラス境界 _: _線形分類アルゴリズムに従うと精度が低下します。Nonlinear class boundary _: _Relying on a linear classification algorithm would result in low accuracy.

非線形傾向のデータ

非線形傾向のデータ _: _線形回帰法を使用すると、必要以上に多くのエラーが生成されます。Data with a nonlinear trend _: _Using a linear regression method would generate much larger errors than necessary.

パラメーターの数Number of parameters

パラメーターは、アルゴリズムを設定するときに使用します。Parameters are the knobs a data scientist gets to turn when setting up an algorithm. エラーの許容誤差や反復回数などのアルゴリズムの動作に影響を与える数値、またはアルゴリズムの動作方法のバリエーション間で設定するオプションです。They are numbers that affect the algorithm’s behavior, such as error tolerance or number of iterations, or options between variants of how the algorithm behaves. アルゴリズムのトレーニング時間と精度は、適切な設定を行うかどうかによって影響を受ける場合があります。The training time and accuracy of the algorithm can sometimes be sensitive to getting just the right settings. 通常、パラメーター数の多いアルゴリズムは、適切な組み合わせを見つけるのに多くの試行錯誤が必要です。Typically, algorithms with large numbers of parameters require the most trial and error to find a good combination.

このため、Machine Learning デザイナーには、モデルのハイパーパラメーターの調整モジュールがあります。このモジュールの目標は、機械学習モデルに最適なハイパーパラメーターを特定することです。Alternatively, there is the Tune Model Hyperparameters module in Machine Learning designer: The goal of this module is to determine the optimum hyperparameters for a machine learning model. このモジュールでは、さまざまに組み合わせた設定を使って複数のモデルをビルドし、テストします。The module builds and tests multiple models by using different combinations of settings. その後、すべてのモデルについてメトリックを比較し、設定の組み合わせを求めます。It compares metrics over all models to get the combinations of settings.

これは、パラメーター空間を確実に網羅する優れた方法ですが、パラメーターの数が増えるとモデルのトレーニングに必要な時間が指数関数的に増加します。While this is a great way to make sure you’ve spanned the parameter space, the time required to train a model increases exponentially with the number of parameters. 利点として、通常、パラメーターの数の多さはアルゴリズムがより柔軟であることを示します。The upside is that having many parameters typically indicates that an algorithm has greater flexibility. 適切なパラメーター設定の組み合わせを見つけられる場合に、非常に高い精度を示すことが多くあります。It can often achieve very good accuracy, provided you can find the right combination of parameter settings.

特徴の数Number of features

機械学習の場合、特徴は、分析しようとしている現象の定量化可能な変数です。In machine learning, a feature is a quantifiable variable of the phenomenon you are trying to analyze. 特定の種類のデータでは、特徴の数がデータ ポイントの数と比較して非常に大きくなる可能性があります。For certain types of data, the number of features can be very large compared to the number of data points. 遺伝学やテキスト データの場合によくあります。This is often the case with genetics or textual data.

特徴の数が多いと、一部の学習アルゴリズムは処理が遅くなり、実行不可能なほどトレーニング時間が長くなります。A large number of features can bog down some learning algorithms, making training time unfeasibly long. サポート ベクトル マシンは、特徴の数が多いシナリオに特に適しています。Support vector machines are particularly well suited to scenarios with a high number of features. このため、情報の取得からテキストおよびイメージの分類まで、数多くのアプリケーションで使用されています。For this reason, they have been used in many applications from information retrieval to text and image classification. サポート ベクトル マシンは、分類タスクと回帰タスクの両方に使用できます。Support vector machines can be used for both classification and regression tasks.

特徴選択とは、指定された出力を前提として、統計的テストを入力に適用するプロセスを指します。Feature selection refers to the process of applying statistical tests to inputs, given a specified output. この目標は、出力の予測能力が高い列を特定することです。The goal is to determine which columns are more predictive of the output. Machine Learning デザイナーのフィルターに基づく特徴選択モジュールには、選択肢となる複数の特徴選択アルゴリズムが用意されています。The Filter Based Feature Selection module in Machine Learning designer provides multiple feature selection algorithms to choose from. このモジュールには、ピアソンの相関やカイ二乗値などの相関法が含まれています。The module includes correlation methods such as Pearson correlation and chi-squared values.

順列の特徴量の重要度モジュールを使用して、データ セットの一連の特徴量の重要度スコアを計算することもできます。You can also use the Permutation Feature Importance module to compute a set of feature importance scores for your dataset. これらのスコアを利用すると、モデルで使用する最適な特徴を決定するのに役立ちます。You can then leverage these scores to help you determine the best features to use in a model.

次のステップNext steps