2 クラスのロジスティック回帰モジュールTwo-Class Logistic Regression module

この記事では Azure Machine Learning デザイナー (プレビュー) 内のモジュールについて説明します。This article describes a module in Azure Machine Learning designer (preview).

2 つのみの結果を予測するのに使用できるロジスティック回帰モデルを作成するには、このモジュールを使用します。Use this module to create a logistic regression model that can be used to predict two (and only two) outcomes.

ロジスティック回帰は、さまざまな種類の問題をモデル化するのに使用される有名な統計手法です。Logistic regression is a well-known statistical technique that is used for modeling many kinds of problems. このアルゴリズムは "教師あり学習" 手法であるため、モデルをトレーニングするための結果をあらかじめ含んだデータセットを用意する必要があります。This algorithm is a supervised learning method; therefore, you must provide a dataset that already contains the outcomes to train the model.

ロジスティック回帰についてAbout logistic regression

ロジスティック回帰は、統計学において、ある結果が起こる確率を予測する手段としてよく知られている手法で、特に分類タスクで広く使われています。Logistic regression is a well-known method in statistics that is used to predict the probability of an outcome, and is especially popular for classification tasks. このアルゴリズムは、データをロジスティック関数にフィッティングすることで事象の発生確率を予測します。The algorithm predicts the probability of occurrence of an event by fitting data to a logistic function.

このモジュールでは、分類アルゴリズムが二値変数またはバイナリ変数に最適化されています。In this module, the classification algorithm is optimized for dichotomous or binary variables. 複数の結果を分類する必要がある場合は、多クラスのロジスティック回帰モジュールを使用してください。if you need to classify multiple outcomes, use the Multiclass Logistic Regression module.

構成方法How to configure

このモデルをトレーニングするには、ラベル列またはクラス列を含んだデータセットを用意する必要があります。To train this model, you must provide a dataset that contains a label or class column. このモジュールは 2 クラスの問題を意図しているため、ラベル列またはクラス列には厳密に 2 つの値が格納されていることが必要です。Because this module is intended for two-class problems, the label or class column must contain exactly two values.

たとえば、[Voted] というラベル列であれば、その値には "Yes" と "No" が考えられます。For example, the label column might be [Voted] with possible values of "Yes" or "No". または、[Credit Risk] であれば、"High" と "Low" という値が考えられるでしょう。Or, it might be [Credit Risk], with possible values of "High" or "Low".

  1. 2 クラスのロジスティック回帰モジュールをパイプラインに追加します。Add the Two-Class Logistic Regression module to your pipeline.

  2. [Create trainer mode](トレーナー モードの作成) オプションを設定して、モデルのトレーニング方法を指定します。Specify how you want the model to be trained, by setting the Create trainer mode option.

    • Single Parameter (単一パラメーター) : モデルの構成方法がわかっている場合、特定の値のセットを引数として渡すことができます。Single Parameter: If you know how you want to configure the model, you can provide a specific set of values as arguments.

    • [Parameter Range](パラメーター範囲) : 最適なパラメーターがわからない場合は、モデルのハイパーパラメーターの調整モジュールを使用することにより、最適なパラメーターを見つけることができます。Parameter Range: If you are not sure of the best parameters, you can find the optimal parameters by using the Tune Model Hyperparameters module. ある値の範囲を指定すると、トレーナーにより設定の複数の組み合わせに対して反復処理が行され、最適な結果を生み出す値の組み合わせが決定されます。You provide some range of values, and the trainer iterates over multiple combinations of the settings to determine the combination of values that produces the best result.

  3. [Optimization tolerance](最適化の許容範囲) に、モデルを最適化する際に使用するしきい値を指定します。For Optimization tolerance, specify a threshold value to use when optimizing the model. 指定したしきい値をイテレーション間の改善が下回った場合に、アルゴリズムは解に収束したと見なされ、トレーニングが終了します。If the improvement between iterations falls below the specified threshold, the algorithm is considered to have converged on a solution, and training stops.

  4. 正則化パラメーター L1 と L2 に使用する値を [L1 regularization weight](L1 正則化の重み)[L2 regularization weight](L2 正則化の重み) に入力します。For L1 regularization weight and L2 regularization weight, type a value to use for the regularization parameters L1 and L2. どちらも 0 以外の値にすることをおすすめします。A non-zero value is recommended for both.
    "正則化" とは、極端な係数の値を備えるモデルにペナルティーを与えることによってオーバーフィットを防止する手法です。Regularization is a method for preventing overfitting by penalizing models with extreme coefficient values. 正則化は、仮説の誤りに対し、係数値に関連付けられているペナルティを加算することによって機能します。Regularization works by adding the penalty that is associated with coefficient values to the error of the hypothesis. これにより、極端な係数の値を持った正確なモデルにはより大きなペナルティが与えられる一方、相対的に値が控えめで正確でないモデルに与えられるペナルティは小さくなります。Thus, an accurate model with extreme coefficient values would be penalized more, but a less accurate model with more conservative values would be penalized less.

    L1 正則化と L2 正則化とでは、効果と用途が異なります。L1 and L2 regularization have different effects and uses.

    • L1 は、疎なモデルに適用でき、高次元のデータを扱う際に役立ちます。L1 can be applied to sparse models, which is useful when working with high-dimensional data.

    • これに対し、L2 正則化は、疎ではないデータに適しています。In contrast, L2 regularization is preferable for data that is not sparse.

    このアルゴリズムは、L1 正則化と L2 正則化の値に対する線形の組み合わせをサポートします。つまり、x = L1 かつ y = L2 である場合、正則化項の線形包が ax + by = c で定義されます。This algorithm supports a linear combination of L1 and L2 regularization values: that is, if x = L1 and y = L2, then ax + by = c defines the linear span of the regularization terms.

    注意

    L1 正則化と L2 正則化について、さらに詳しく知りたい場合は、Want to learn more about L1 and L2 regularization? 次の記事を参照してください。L1 正則化と L2 正則化の違いや、モデルのフィッティングに及ぼす影響が、ロジスティック回帰モデルとニューラル ネットワーク モデルのコード サンプルを使って解説されています: 「機械学習向けの L1および L2 正規化The following article provides a discussion of how L1 and L2 regularization are different and how they affect model fitting, with code samples for logistic regression and neural network models: L1 and L2 Regularization for Machine Learning

    ロジスティック回帰モデルには、L1 項と L2 項に対するさまざまな線形結合が考案されてきました (エラスティック ネット型の正則化など)。Different linear combinations of L1 and L2 terms have been devised for logistic regression models: for example, elastic net regularization. こうした結合を参照しながら、自分のモデルに合った効果的な線形結合を定義することをおすすめします。We suggest that you reference these combinations to define a linear combination that is effective in your model.

  5. L-BFGS 最適化に使用するメモリ量を [Memory size for L-BFGS](L-BFGS のメモリ サイズ) に指定します。For Memory size for L-BFGS, specify the amount of memory to use for L-BFGS optimization.

    L-BFGS は "Limited memory Broyden-Fletcher-Goldfarb-Shanno" の略です。L-BFGS stands for "limited memory Broyden-Fletcher-Goldfarb-Shanno". パラメーター推定の最適化アルゴリズムとして広く使用されています。It is an optimization algorithm that is popular for parameter estimation. このパラメーターは、次のステップの計算用に保存する過去の位置と傾きの数を指定します。This parameter indicates the number of past positions and gradients to store for the computation of the next step.

    この最適化パラメーターによって、次のステップと方向の計算に使用されるメモリ量が制限されます。This optimization parameter limits the amount of memory that is used to compute the next step and direction. 指定するメモリ量を小さくすると、トレーニングにかかる時間は短縮されますが、正確さが低下します。When you specify less memory, training is faster but less accurate.

  6. [Random number seed](乱数シード) に整数値を入力します。For Random number seed, type an integer value. 同じパイプラインを複数回にわたって実行したときの結果に再現性を確保したい場合は、シード値を定義することが大切です。Defining a seed value is important if you want the results to be reproducible over multiple runs of the same pipeline.

  7. タグ付けされたデータセットをパイプラインに追加し、いずれかのトレーニング モジュールを接続します。Add a tagged dataset to the pipeline, and connect one of the training modules.

    • [Create trainer mode](トレーナー モードの作成)[Single Parameter](単一パラメーター) に設定した場合は、モデルのトレーニング モジュールを使用します。If you set Create trainer mode to Single Parameter, use the Train Model module.
  8. パイプラインを実行します。Run the pipeline.

[結果]Results

トレーニングの完了後:After training is complete:

  • 新しいデータについての予測を行うために、トレーニング済みのモデルと新しいデータをモデルのスコア付けモジュールの入力として使用します。To make predictions on new data, use the trained model and new data as input to the Score Model module.

次のステップNext steps

Azure Machine Learning で使用できる一連のモジュールを参照してください。See the set of modules available to Azure Machine Learning.