グループ カテゴリ値

複数のカテゴリから新しいカテゴリにデータをグループ化します

カテゴリ: データ変換/操作

注意

適用対象: Machine Learning Studio (クラシック)

このコンテンツは、Studio (クラシック) のみに関連しています。 Azure Machine Learning デザイナーに同様のドラッグアンドドロップモジュールが追加されました。 この記事では、2つのバージョンの比較について詳しく説明します。

モジュールの概要

この記事では、Azure Machine Learning Studio (クラシック) の [ カテゴリ値のグループ化] モジュールを使用して、インプレースルックアップテーブルを作成する方法について説明します。

カテゴリ値をグループ化するための一般的な用途は、複数の文字列値を1つの新しいレベルにマージすることです。 たとえば、1つの地域のコードに個別の郵便番号を割り当てたり、1つのカテゴリの下に複数の製品をグループ化したりすることができます。

このモジュールを使用するには、使用する参照値を入力し、既存の値を置換値にマップします。 グループ化は、数値型の列またはラベルや特徴として指定された列ではなく、カテゴリ列に対してのみ作成できます。

新しいレベルに明示的にマップされていない列の値は、既定のレベルに割り当てられます。 たとえば、すべての郵便番号をマップしなかった場合は、マップされていない値のレベルでグループ化され、[ 不明] という名前になることがあります。

注意

既定のレベルを含め、最大20個の新しいレベルを作成できます。 さらに多くの値が必要な場合、またはマッピングを動的に定義する必要がある場合は、 r スクリプトの実行 モジュールでカスタム r スクリプトを使用することをお勧めします。 または、 Sql 変換の適用 モジュールで sql ステートメントを使用します。

グループカテゴリの値を使用する方法

既存の値の一覧と新しいカテゴリを事前に準備することをお勧めします。 カテゴリごとに、新しいカテゴリ名と、カテゴリに含める値のコンマ区切りリストを準備する必要があります。

  1. [ カテゴリ値のグループ化] モジュールを実験に追加します。 モジュールは、[ データ変換] の [ 操作] で確認できます。

  2. 変換する値が含まれているデータセットを接続します。

  3. [カテゴリ値のグループ化] の [プロパティ] ペインで、列セレクターを使用して、削減するレベルを持つ列を選択します。

    • [ 開始] をクリックし て列を開始 せず に、名前で列を追加することをお勧めします。 それ以外の場合、候補として追加される列が多すぎると、エラーが発生します。

    • この列はカテゴリ列である必要があります。 そうでない場合は、[ メタデータの編集 ] [アップストリーム] を追加し、列の種類を変更します。

    • 文字列の置換が適用されない列を入力から必ず削除してください。

  4. 出力モード では、新しいレベルだけを出力するか、変更を追加して元の列を表示するかを指定します。置換は、横に並んでいます。

    既定の Resultonly は、新しい値のみを表示します。 インプレース オプションは、既存の列の値を新しいレベルに置き換えます。

  5. [ 既定のレベル名] には、明示的にマップされていないすべての値の置換に使用する文字列値を入力します。 "Unknown" や "Default" などを使用することもできます。

    注意

    この既定のレベル値は、マップできないすべての値に適用されます。 マップしない列が誤って含まれていた場合、その値は列内のすべての値に適用されます。 そのため、処理する前に列の選択が正確であることを確認してください。

  6. [ 新しいレベル 数] で、マップされていない値の既定のレベルを含む新しいカテゴリ (レベル) の合計数を示す数値を入力します。

  7. 新しいレベル1の名前 には、最初のカテゴリの新しいグループ名を指定します。

  8. [ 新しいレベル1にマップする古いレベルのコンマ区切りの一覧] の直後にあるテキストボックスに、新しいレベルにマップするすべての値の完全な一覧を入力するか貼り付けます。 ワイルドカード文字と正規表現は使用できません。

  9. 続けて新しいレベル名を入力し、新しいレベルにマップする必要がある値を入力するか貼り付けます。

    値の一覧は、作業中の別のファイルに保存することをお勧めします。 レベルの数を変更すると、以前に入力した文字列はすべて削除され、最初からやり直す必要があります。

    ただし、以前に保存したモジュールを編集している場合は、元の設定に戻すことができます。

  10. 実験を実行します。

結果

結果を表示するには、[ カテゴリ値のグループ化 ] モジュールを右クリックし、[ 結果データセット] を選択して [ 視覚化] をクリックします。

Machine learning の動作の例については、 Azure AI Galleryを参照してください。

このモジュールは、Azure Machine Learning Studio (クラシック) に用意されている 自動車価格 データセットなど、簡単にグループ化できる文字列変数を含む小さなデータセットを使用して、自分で試すこともできます。

"車の価格データセット" を、"シリンダー数" を使用してエンジンのサイズ別にグループ化するとします。 さまざまなエンジンサイズではなく、次のように、新しいレベル "big"、"small"、および "other" を作成します。

  • ビッグエンジン: 6 シリンダー以上
  • 小さいエンジン: 2 つまたは4つのシリンダー
  • その他: その他
  1. [データセット内の列の選択] モジュールを追加し、列のみを選択し num-of-cylinders ます。
  2. メタデータの編集 モジュールを追加し、 num-of-cylinders 列を [カテゴリ] に変更します。
  3. グループカテゴリ値 モジュールを追加し、変更されたデータセットを接続します。
  4. [ 既定のレベル名] に「」と入力 other します。 このレベルの値を指定する必要はありません。
  5. [ 新しいレベル1の名前] に「」と入力 big します。 レベル1にマップする古いレベルの一覧で、を貼り付け six, eight, twelve ます。
  6. [ 新しいレベル2の名前] に「」と入力 small します。 マップされた値には、を貼り付け two, four ます。
  7. 実験を実行します。
  8. 結果を 視覚化 すると、元のデータセットには、やなど、使用していない奇数のエンジンサイズがあることがわかり five three ます。 このようなすべてのアイテムがレベルにマップされ other ます。

テクニカル ノート

このセクションには、実装の詳細、ヒント、よく寄せられる質問への回答が含まれています。

  • "" という名前の列 <columnname> は、許可されたカテゴリに含まれていません。 "というエラーメッセージが表示されることがあります。

    このメッセージは、選択した列がカテゴリ列にないことを示しています。 列をとしてマークする Categorical には、[ メタデータの編集] を使用するか、適切なカテゴリ値を含む別の列を選択します。

想定される入力

名前 Type 説明
データセット データ テーブル グループ化するデータ

モジュールのパラメーター

名前 Range Type Default 説明
[選択した列] any ColumnSelection CategoricalAll グループ化する列を選択します。
出力モード any OutputTo ResultOnly カテゴリ ラベルの出力方法を指定します。
既定のレベル名 any String マッピングと一致しない場合に使用する既定レベルを示します。
新しいレベル数 List グループ数 値がグループ化された後のレベル数を指定します。既定のレベルを含みます。

出力

名前 Type 説明
結果のデータセット データ テーブル グループ化されたデータ

関連項目

操作性
データ変換
モジュールの一覧 (アルファベット順)