2

不正取引の検出に Native Bayes Classifier を使用しようとしています。Excel シートに約 5000 のサンプル データがあります。これは、分類子のトレーニングに使用するデータであり、テスト分類子を適用する約 1000 のテスト データがあります。

ここで私の問題は、分類子をトレーニングする方法がわからないことです。トレーニングデータをトレーニング分類子に渡す前に、トレーニングデータを特定の形式に変換する必要がありますか? トレーニング分類器が、どれが私の目標値でどれがその特徴であるかをどのように知るか。

誰か助けてくれませんか?

4

1 に答える 1

8

データをテストするには、トレーニング セットにいくつかのラベルがあること、またはデータ コレクション セットで使用したいくつかの機能に基づいてチャンクに分割されていることを確認する必要があります。データをどのように整理したかはわかりませんが、データ セットを同様のフィーチャのチャンクに分割する必要があります。

基準に基づいて分割を作成したら、入力データの作成を確認します。以下を使用してファイルを検証できます。

hadoop fs -ls filename

以下を使用して分類器をトレーニングします。

$MAHOUT_HOME/bin/mahout trainclassifier -i input_file -o output_model

以下を使用して分類子をテストします。

$MAHOUT_HOME/bin/mahout testclassifier -m output_model -d input_file 

注: データ収集中に、特定のデータ値が存在する場合は、重みを割り当てる必要があることに注意してください。また、実験のセットアップまたはデータ収集中にエラーを正規化するために、データクリーニングを行う必要があります。データセットに対して任意の乗法散乱補正手法を使用して補正できます。

まず、 training-categories.txt分類器のカテゴリを含む というファイルを用意します。これには、単純なテキスト エディタを使用できます。

関心のあるカテゴリのリストができたExtractTrainingDataので、カテゴリ リストを使用してクラスを実行します。

$TT_HOME/bin/tt extractTrainingData \
--dir ./index \
--categories ./training-categories.txt \
--output ./category-bayes-data \
--category-fields categoryFacet,source \
--text-fields title,description \
--tv

このコマンドは、ドキュメントを読み取り、カテゴリおよびソース フィールドで一致するカテゴリを検索します。にリストされているカテゴリのtraining-categories.txt1 つがこれらのドキュメントのいずれかで見つかった場合、用語は、タイトル フィールドと説明フィールドに格納されている用語ベクトルから抽出されます。これらの用語は、category-bayes-dataディレクトリ内のファイルに書き込まれます。カテゴリごとに 1 つのファイルが作成されます。それぞれは、任意のテキスト エディタまたは表示ユーティリティで表示できるプレーン テキスト ファイルです。

カテゴリ名は最初の列に表示され、ドキュメントに表示される各用語は 2 番目の列に含まれています。Mahout Bayes 分類子は、入力フィールドがステミングされることを想定しているため、これがテスト データに反映されていることがわかります。data コマンドの --tv引数 extractTraining により、各ドキュメントの用語ベクトルから抽出された用語が使用されます。

ExtractTrainingDataクラスの実行が完了すると、各カテゴリで見つかったドキュメントの数が出力されます。

于 2012-08-07T08:28:44.717 に答える