データ変換-カウントを使用した学習

この記事では、カウントベースの特性付けをサポートする Azure Machine Learning Studio (クラシック) のモジュールについて説明します。

注意

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

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

カウントを使用した学習は、値の数に基づいてデータセット機能のコンパクトなセットを作成するための効率的な方法です。 このカテゴリのモジュールを使用して、カウントと機能のセットを作成できます。 後で、数と機能を更新して新しいデータを活用したり、カウントデータの2つのセットをマージしたりすることができます。

カウントベースの特性付けの概要

カウントベースの特性付け の基本的な概念は、カウントを計算することで、最も重要な情報が含まれている列の概要をすばやく簡単に取得できることです。 モジュールは、値が表示される回数をカウントし、モデルへの入力の機能としてその情報を提供します。

クレジットカード取引を検証しているとします。 重要な情報は、このトランザクションの発生元です。 トランザクションの配信元の最も一般的なエンコーディングの1つは、郵便番号です。 ただし、それを構成する郵便番号や地理的なコードが 40,000 件も存在する可能性があります。 ご使用のモデルには 40,000 を超えるパラメーターを学習する容量がありますか? 容量を指定した場合、オーバーフィットを防ぐために十分なトレーニングデータがありますか。

多くのサンプルを含む優れたデータがある場合、このような細かいローカル粒度は強力です。 ただし、不正なトランザクションのサンプルが1つしかない場合は、その場所からのすべてのトランザクションが不良であるか、または十分なデータがないことを意味しますか。

1つの解決策は、カウントについて学習することです。 4万を超える機能を導入するのではなく、郵便番号ごとに不正行為の数と比率を確認できます。 これらのカウントを特徴として使用することで、各値の証拠の強度に関する情報を取得できます。 さらに、カウントの関連する統計情報をエンコードすることで、学習器は統計を使用して、その方法を変更するタイミングを決定し、代わりに他の機能を使用して情報を取得できます。

カウントベースの学習は多くの理由で魅力的です。 カウントベースの学習では、必要なパラメーターの数が少なくなります。 より少ないパラメーターを使用すると、学習が高速化され、予測が速くなり、予測子が小さくなり、過度に適合する可能性が低くなります。

カウントベースの機能の作成方法

基本的な例として、カウントベースの特徴を作成および適用する方法を示します。 次のようなテーブルがあり、ラベルと入力を使用しているとします。 各ケース (または行またはサンプル) には、列に値のセットがあります。 この例では、値は A と B です。

ラベル列 入力値
0 A
0 A
1 A
0 B
1 B
1 B
1 B

カウントベースの特徴を作成するには、次の手順を実行します。

  1. 特定の値のセットについては、同じ値を持つそのデータセット内の他のすべてのケースを検索します。 この場合、のインスタンスは3つ、B のインスタンスは4つです。
  2. 各値のクラスメンバーシップを、それ自体の特徴としてカウントします。 この場合、小さい行列が得られます。 A = 0 の場合は2つのケースがあります。1つのケースで = 11つのケースで B = 0;ここで、B = 1 という3つのケースがあります。
  3. このマトリックスに基づいて、カウントベースのさまざまな機能を利用できます。 これには、ログの確率比率と各ターゲットクラスの数の計算が含まれます。 次のセクションの表は、データを示しています。

カウントベースの特徴のサンプルテーブル

ラベル 0_0_Class000_Count 0_0_Class001_Count 0_0_Class000_LogOdds 0_0_IsBackoff
0 2 1 0.510826 0
0 2 1 0.510826 0
1 2 1 0.510826 0
0 1 3 -0.8473 0
1 1 3 -0.8473 0
1 1 3 -0.8473 0
1 1 3 -0.8473 0

Azure Machine Learning 使用してクリック スルー予測モデルを構築するために、Microsoft Machine Learning チームは Machine Learning でカウントを使用する方法の詳細なチュートリアルを提供しています。 この記事では、カウントベースのモデリングの有効性を他の方法と比較します。

テクニカル ノート

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

ログ損失値の計算方法

ログ損失値は、ログ記録の可能性がありません。 この場合、以前の分布を使用して、ログの可能性がある計算をスムーズに行います。

バイナリ分類に使用されるデータセットがあるとします。 このデータセットでは、クラス0の前の頻度は p_0 で、クラス1の前の頻度はに p_1 = 1 – p_0 なります。 特定のトレーニング例の特徴では、クラス0のカウントは x_0 で、クラス1のカウントは x_1 です。

このような仮定では、ログの可能性はとして計算され LogOdds = Log(x0 + c * p0) – Log (x1 + c\p1) ます。ここで、 c は、ユーザーが設定できる前の係数です。 Log 関数は、自然な基本を使用します。

つまり、クラスごとに、 i 次のようになります。

Log_odds[i] = Log( (count[i] + prior_coefficient * prior_frequency[i]) / (sum_of_counts - count[i]) + prior_coefficient \* (1 - prior_frequency[i]))

前の係数が正の場合、とは異なる可能性があり Log(count[i] / (sum_of_counts – count[i])) ます。

一部の項目について、ログの可能性が計算されない理由

既定では、カウントが10未満のすべての項目は、"ガベージビン" と呼ばれる1つのバケットに収集されます。 この値を変更するには、カウントテーブルパラメーターの変更モジュールで [ガベージビンのしきい値] オプションを使用します。

モジュールの一覧

[ カウントを使用 した学習] カテゴリには、次のモジュールが含まれています。

  • カウント変換の構築: データセットからカウントテーブルとカウントベースの特徴を作成し、そのテーブルと機能を変換として保存します。
  • カウントテーブルのエクスポート: カウント変換からカウントテーブルをエクスポートします。 このモジュールは、ビルドカウントテーブル (非推奨) とカウント Featurizer (非推奨) を使用してカウントベースの特徴を作成する実験との下位互換性をサポートしています。
  • カウントテーブルのインポート: 既存のカウントテーブルをインポートします。 このモジュールは、ビルドカウントテーブル (非推奨) とカウント Featurizer (非推奨) を使用してカウントベースの特徴を作成する実験との下位互換性をサポートしています。 モジュールでは、カウントテーブルの変換をカウントする変換をサポートしています。
  • Merge Count Transform: カウントベースの2つの機能セットをマージします。
  • カウントテーブルパラメーターの変更: 既存のカウントテーブルから派生したカウントベースの機能を変更します。

関連項目