5

まず、次のようなことを可能にする利用可能なオープンソース ML フレームワークを使用するために十分に理解できるように、十分な機械学習を独学で学びたいと考えています。

  1. 特定のサイトのページの HTML ソースを調べて、どのセクションがコンテンツを形成し、どの広告がどのセクションを構成し、どのセクションがメタデータを形成するかを「理解」します (コンテンツでも広告でもない - 例えば - TOC、著者の略歴など)。

  2. 異なるサイトのページの HTML ソースを調べて、そのサイトが定義済みのカテゴリに属しているかどうかを「分類」します (カテゴリのリストは事前に提供されます)1。

  3. ... テキストとページでの同様の分類タスク。

ご覧のとおり、私の差し迫った要件は、異種のデータ ソース大量のデータを分類することです。

私の限られた理解によると、ニューラル ネット アプローチを採用すると、SVM を使用するよりも多くのトレーニングとメンテナンスが必要になりますか?

SVM は私のような (バイナリ) 分類タスクに適していることを理解しており、libSVM のようなオープン ソース フレームワークはかなり成熟していますか?

その場合、コンピュータ サイエンスの卒業生は、これらのフレームワークを使用して上記の要件を解決できるように、現在どのような科目やトピックを学ぶ必要があるのでしょうか?

私はJavaから離れたいと思っています。それは可能です。それ以外の言語の好みはありません。私はできる限り多くの努力をして学びたいと思っています。

私の意図は、コードをゼロから書くことではありませんが、さまざまなフレームワークを使用できるようにすることから始めて (どれを決定するのに十分なのかわかりません)、問題が発生した場合に問題を修正できるようにする必要があります

統計学と確率論の特定の部分を学ぶ上でのあなたからのアドバイスは、私の側からは予想外のものではないので、必要に応じて言ってください!

すべての提案とフィードバックに応じて、必要に応じてこの質問を変更します。

4

4 に答える 4

4

機械学習における「理解」は、モデルを持つことと同じです。モデルは、たとえば、サポート ベクターのコレクション、ニューラル ネットワークのレイアウトと重み、決定木などです。これらの方法のどれが最も効果的かは、実際に学習している主題とトレーニング データの品質によって異なります。

あなたの場合、HTML サイトのコレクションから学習して、最初にデータを前処理したいと思うでしょう。このステップは「特徴抽出」とも呼ばれます。つまり、見ているページから情報を抽出します。ドメインの知識が必要であり、有用な情報を抽出する必要があるため、これは難しいステップです。特徴抽出により、モデルを作成できるデータセット (各行の特徴を含むマトリックス) が得られます。

一般に、機械学習では、モデルのトレーニングには使用しないが、最適な方法を決定するために最後に使用する「テスト セット」も保持することをお勧めします。モデリング ステップの最後まで、テスト セットを非表示にしておくことが非常に重要です。テスト データは基本的に、モデルが作成している「一般化エラー」に関するヒントを提供します。十分な複雑さと学習時間を持つモデルは、トレーニングに使用した情報を正確に学習する傾向があります。機械学習者は、モデルがトレーニング データに「過適合」していると言います。このようなオーバーフィット モデルは良さそうに見えますが、これは記憶にすぎません。

データの前処理に対するソフトウェア サポートは非​​常にまばらで、ドメインに大きく依存していますが、アダムが述べたように、 Wekaは、データセットを取得したらさまざまな方法を適用するための優れた無料ツールです。何冊か読むことをお勧めします。Vladimir Vapnik は「統計学習理論の性質」を書きました。彼は SVM の発明者です。モデリングのプロセスに慣れる必要があるため、機械学習に関する本は間違いなく非常に役立ちます。また、いくつかの用語が、道を見つけるのに役立つことを願っています。

于 2010-09-21T22:12:42.957 に答える
3

私にはかなり複雑な作業のように思えます。ステップ 2 の分類は「簡単」ですが、ステップ 1 は構造学習タスクのようです。何らかのヒューリスティックによって事前に選択された、HTML ツリーの部分での分類に単純化することをお勧めします。

于 2010-09-23T17:07:26.740 に答える
2

最も広く使用されている一般的な機械学習ライブラリ (無料) は、おそらくWEKAです。彼らは、いくつかの ML の概念を紹介し、ソフトウェアの使用方法をカバーする本を持っています。残念ながら、これは完全に Java で書かれています。

私は実際には Python の人ではありませんが、Python で使用できるツールも多くない場合は驚くでしょう。

現在、テキストベースの分類では、単純ベイズ、デシジョン ツリー (特に J48 だと思います)、および SVM アプローチが最良の結果をもたらしています。ただし、それらはそれぞれ、わずかに異なるアプリケーションにより適しています。頭のてっぺんから、どれがあなたに一番合っているかわかりません。WEKA のようなツールを使用すると、コードを 1 行も書かずに、いくつかのサンプル データを使用して 3 つのアプローチすべてを試すことができ、自分の目で確かめることができます。

私は、ニューラル ネットワークがすぐに非常に複雑になる可能性があるという理由だけで、敬遠する傾向があります。繰り返しになりますが、私は彼らと一緒に大規模なプロジェクトを試みたことはありません。主に、彼らは学界でその評判を得ているからです。

確率と統計の知識は、確率アルゴリズム (Naive Bayes など) を使用している場合にのみ必要です。SVM は通常、確率論的には使用されません。

その音から、探しているものを正確に見つけるために、実際のパターン分類の教科書に投資するか、そのクラスを受講することをお勧めします。カスタム/非標準のデータ セットの場合、既存の手法を調査せずに良い結果を得るのは難しい場合があります。

于 2010-09-21T21:21:30.283 に答える
1

あなたは、機械学習の分野に足を踏み入れているようです。そのため、この本を読むことを強くお勧めします。最も一般的な機械学習のアプローチとアルゴリズム (およびそのバリエーション)が、非常に優れた演習と科学論文へのリンクも提供します。これらすべては、統計と確率に関する最小限でありながら有用な大要が主演する洞察に満ちた言語に包まれています

于 2010-09-21T21:34:52.400 に答える