text: ---
  title: Group Data into Bins:モジュール リファレンス
  titleSuffix: Azure Machine Learning
  description: Group Data into Bins モジュールを使用して数値をグループ化したり、連続データの分布を変更したりする方法について説明します。
  services: machine-learning
  ms.service: machine-learning
  ms.subservice: core
  ms.topic: reference
  author: likebupt
  ms.author: keli19
  ms.date: 05/19/2020
  ms.openlocfilehash: d3a9f88325f03d0252adf51c5bf221b131d7d33b
  ms.sourcegitcommit: 877491bd46921c11dd478bd25fc718ceee2dcc08
  ms.translationtype: HT
  ms.contentlocale: ja-JP
  ms.lasthandoff: 07/02/2020
  ms.locfileid: "84751715"
  ---
  # <a name="group-data-into-bins-module"></a>Group Data into Bins (データのビンへのグループ化) モジュール
  
  この記事では、Azure Machine Learning デザイナー (プレビュー) で Group Data into Bins (データのビンへのグループ化) モジュールを使用して、数値をグループ化したり、連続データの分布を変更したりする方法について説明します。
  
  Group Data into Bins (データのビンへのグループ化) モジュールでは、データをビン分割するための複数のオプションがサポートされています。 ビンの境界を設定する方法と、値をビンに分配する方法はカスタマイズできます。たとえば、次のように操作できます。  
  
  + ビンの境界として機能する一連の値を手動で入力する。  
  + "*分位点*" またはパーセンタイル順位を使用して、ビンに値を割り当てる。  
  + 強制的に値をビンに均等に分散させる。  
  
  ## <a name="more-about-binning-and-grouping"></a>ビン分割とグループ化の詳細
  
  データの "*ビン分割*" またはグループ化 ("*量子化*" と呼ばれることもあります) は、機械学習用の数値データを準備するうえで重要なツールです。 これは、次のようなシナリオで役立ちます。
  
  + 連続する数値の列に含まれる一意の値が多すぎて、効果的にモデル化することができません。 そのため、自動または手動で値をグループに割り当てて、より小さな個別の範囲のセットを作成します。
  
  + 数値の列を特定の範囲を表すカテゴリ値に置き換えます。
  
      たとえば、ユーザーの人口統計に対して 1-15、16-22、23-30 などのカスタム範囲を指定することによって、年齢の列の値をグループ化することができます。
  
  + データセットには、予想範囲を大きく超えるいくつかの極値が含まれています。これらの値は、トレーニング済みモデルに大きな影響を与えます。 モデルの偏りを軽減するために、分位点メソッドを使用して、データを一様分布に変換することができます。
  
      Group Data into Bins (データのビンへのグループ化) モジュールでは、このメソッドを使用して、ほぼ同じ数のサンプルが各ビンに入るように、理想的なビンの場所とビンの幅が決定されます。 次に、選択した正規化メソッドに応じて、ビンの値はパーセンタイルに変換されるか、ビン番号にマップされます。
  
  ### <a name="examples-of-binning"></a>ビン分割の例
  
  次の図は、*分位点*メソッドを使用してビン分割する前と後の数値の分布を示しています。 左側の生データと比較して、データはビン分割され、単位法線スケールに変換されていることに注目してください。  
  
  [このパイプラインの実行の結果の例](https://ml.azure.com/visualinterface/authoring/Normal/87270db9-4651-448e-bd28-8ef7428084dc?wsid=%2Fsubscriptions%2Fe9b2ec51-5c94-4fa8-809a-dc1e695e4896%2Fresourcegroups%2Fmodule-ws-rg%2Fworkspaces%2Fmodule-prerelease-119&flight=cm&tid=72f988bf-86f1-41af-91ab-2d7cd011db47&smtendpoint=https%3A%2F%2Fsmt-test1.azureml-test.net)を確認できます。
  
  データをグループ化するにはさまざまな方法があり、すべてカスタマイズ可能なため、さまざまなメソッドと値で試してみることをお勧めします。 
  
  ## <a name="how-to-configure-group-data-into-bins"></a>Group Data into Bins の構成方法
  
  1. デザイナー (プレビュー) でパイプラインに **Group Data into Bins (データのビンへのグループ化)** モジュールを追加します。 このモジュールは**データ変換**カテゴリ内にあります。
  
  2. 数値データを含むデータセットをビンに接続します。 量子化は、数値データを含む列にのみ適用できます。 
  
      データセットに数値以外の列が含まれている場合は、[Select Columns in Dataset](select-columns-in-dataset.md) モジュールを使用して、使用する列のサブセットを選択します。
  
  3. ビン分割モードを指定します。 ビン分割モードでは、他のパラメーターが決定されるため、まず **[Binning mode]\(ビン分割モード\)** オプションを選択してください。 次の種類のビン分割がサポートされています。
  
      - **分位点**:分位メソッドでは、パーセンタイル順位に基づいて値をビンに割り当てます。 この方法は、等高ビン分割とも呼ばれます。
  
      - **等幅**:このオプションでは、ビンの合計数を指定する必要があります。各ビンの開始値と終了値の間隔が同じになるように、データ列の値がビンに配置されます。 その結果、データが特定のポイント周辺に集中すると、一部のビンに多くの値が含まれることになる場合があります。
  
      - **カスタム エッジ**:各ビンの開始値を指定できます。 エッジ値は、常にビンの下方境界です。 
      
        たとえば、値を 2 つのビンにグループ化するとします。1 つは 0 より大きい値を持ち、1 つは 0 以下の値を持ちます。 このケースでは、ビンの境界に対して、 **[Comma-separated list of bin edges]\(ビンの境界のコンマ区切りリスト\)** に「**0**」と入力します。 モジュールの出力は、各行の値のビン インデックスを示す 1 と 2 になります。 コンマ区切り値リストは、昇順 (1、3、5、7 など) にする必要があることに注意してください。
  
  4. **[分位点]** と **[Equal Width]\(等幅\)** のビン分割モードを使用している場合は、 **[ビンの数]** オプションを使用して、作成するビン (つまり "*分位点*") の数を指定します。
  
  5. **[Columns to bin]\(ビン分割する列\)** には、列セレクターを使用して、ビン分割する値を持つ列を選択します。 列のデータ型は数値である必要があります。
  
      選択したすべての適用可能な列に同じビン分割ルールが適用されます。 別の方法を使用していくつかの列をビン分割する必要がある場合は、列の各セットに対して Group Data into Bins (データのビンへのグループ化) モジュールの個別のインスタンスを使用します。
  
      > [!WARNING]
      > 許可された型ではない列を選択すると、実行時エラーが発生します。 このモジュールは、許可されていない型の列を検出するとすぐにエラーを返します。 エラーが発生した場合は、選択したすべての列を確認します。 このエラーでは、すべての無効な列が一覧表示されません。
  
  6. **出力モード**の場合は、量子化された値を出力する方法を指定します。
  
      + **追加**: ビン分割された値を含む新しい列を作成し、入力テーブルに追加します。
  
      + **Inplace**:元の値をデータセット内の新しい値に置き換えます。
  
      + **ResultOnly**:結果の列のみを返します。
  
  7. **[分位点]** ビン分割モードを選択した場合は、 **[Quantile normalization]\(分位の正規化\)** オプションを使用して、分位点に並べ替える前に値を正規化する方法を決定します。 値を正規化すると、値が変換されますが、最終的なビンの数には影響しないことに注意してください。
  
      次の正規化の種類がサポートされています。
  
      + **Percent**:値は [0,100] の範囲内で正規化されます。
  
      + **PQuantile**:値は [0,1] の範囲内で正規化されます。
  
      + **QuantileIndex**:値は [1,ビン数] の範囲内で正規化されます。
  
  8. **[Custom Edges]\(カスタム エッジ\)** オプションを選択した場合は、 **[Comma-separated list of bin edges]\(ビンの境界のコンマ区切りリスト\)** テキスト ボックスに "*ビンの境界*" として使用する数値のコンマ区切りリストを入力します。 
  
      この値を使用して、ビンを分割するポイントにマークします。たとえば、1 つのビンの境界値を入力すると、2 つのビンが生成されます。 2 つのビンの境界値を入力すると、3 つのビンが生成されます。
  
      この値は、ビンが作成された順 (昇順) で並べ替える必要があります。
  
  10. **[Tag columns as categorical]\(列をカテゴリとしてタグを付ける\)** オプションを選択して、量子化された列をカテゴリ変数として扱う必要があることを示します。
  
  11. パイプラインを送信します。
  
  ## <a name="results"></a>結果
  
  Group Data into Bins (データのビンへのグループ化) モジュールから、指定されたモードに従って、各要素がビンに配置されたデータセットが返されます。 
  
  また、*ビン分割変換*も返されます。 その関数を [Apply Transformation (変換の適用)](apply-transformation.md) モジュールに渡し、同じビン分割モードとパラメーターを使用してデータの新しいサンプルをビン分割することができます。  
  
  > [!TIP]
  > トレーニング データにビン分割を使用する場合は、テストと予測に使用するデータに対して同じビン分割メソッドを使用する必要があります。 また、同じビンの場所とビンの幅を使用する必要があります。 
  > 
  > 常に同じビン分割方法を使用してデータが変換されるようにするには、有用なデータ変換を保存することをお勧めします。 次に、[Apply Transformation (変換の適用)](apply-transformation.md) モジュールを使用してそれらを他のデータ セットに適用します。
  
  ## <a name="next-steps"></a>次のステップ
  
  Azure Machine Learning で[使用できる一連のモジュール](module-reference.md)を参照してください。 
  