教師あり機械学習アルゴリズムを使用して、文中の単語の有無に基づいて、一連の文の二変数関数(trueまたはfalse)を予測したいと思います。
理想的には、出力を決定するために使用される単語のセットをハードコーディングする必要がないようにします。これにより、アルゴリズムは、特定の出力をトリガーする可能性が最も高い単語を(一緒に?)自動的に学習します。
http://shop.oreilly.com/product/9780596529321.do(Programming Collective Intelligence)には、第4章の「クリックから学ぶ」というタイトルの素晴らしいセクションがあり、ニューラルネットワークで隠れノードの1つの層を使用してこれを行う方法を説明しています。入力単語の新しい組み合わせごとに1つの新しい隠れノードがあります。
同様に、トレーニングデータセット内の単語ごとに機能を作成し、これらの機能を使用してほとんどすべての従来の機械学習アルゴリズムをトレーニングすることができます。新しいトレーニングデータを追加すると、アルゴリズムを最初から再トレーニングする必要がある新しい機能が生成されます。
それは私の質問に私をもたらします:
- トレーニングデータセットが拡張されるたびにすべてを最初から再トレーニングする必要がある場合、実際には問題ですか?
- この種の問題に対して、機械学習ユーザーがより多くの経験を積んだアルゴリズムを使用することをお勧めしますか?
- アルゴリズムと別のアルゴリズムを選択する際に使用する基準は何ですか?(実際にそれらすべてを試して、適合率/再現率のメトリックでどれがより優れているかを確認する以外)
- 同様の問題に取り組んだ場合、2グラムで機能を拡張するのはどうですか(特定の2グラムが存在する場合は1、存在しない場合は0)?3グラム?