20

診断を提供するプログラムを Java で開発する予定です。データセットは、トレーニング用とテスト用の 2 つの部分に分割されます。私のプログラムはトレーニングデータから分類することを学ぶ必要があります(新しい列にそれぞれ30の質問に対する回答が含まれているところで、新しい行の各レコードは最後の列が診断0または1になり、データ診断列のテスト部分が空になります-データセットには約 1000 レコードが含まれています)、データのテスト部分で予測を行います:/

私は似たようなことをしたことがないので、同様の問題の解決策に関するアドバイスや情報をいただければ幸いです。

Java Machine Learning Library かJava Data Mining Packageを考えていましたが、方向性が正しいかどうかわかりません... ? そして、私はまだこの課題に取り組む方法がわかりません...

お知らせ下さい。

ではごきげんよう!

4

5 に答える 5

13

あなたのタスクにWekaを使用することを強くお勧めします.
これは、さまざまな種類の機能とモデルの選択戦略を容易にする、ユーザーフレンドリーなフロントエンドを備えた機械学習アルゴリズムのコレクションです
.任意のコーディングや数学を行うために
メーカーは、データ マイニングの実用的な側面を説明するかなり優れた教科書
も発行し ています。こつをつかめば、その API を使用して、その分類子を独自の Java プログラムに統合できます。

于 2009-12-03T01:16:43.243 に答える
7

こんにちは Gann Bierner が言ったように、これは分類の問題です。私が知っているあなたのニーズに最適な分類アルゴリズムは、Ross Quinlan アルゴリズムです。概念的に非常に理解しやすいです。

分類アルゴリズムの市販の実装の場合、最善の策は Weka です。http://www.cs.waikato.ac.nz/ml/weka/ . 私は Weka を勉強しましたが、発見が遅すぎたので使っていません。

JadTi と呼ばれる、はるかに単純な実装を使用しました。あなたのような小さなデータセットにはかなりうまく機能します。かなり使っていますので、自信を持って言えます。JadTi は次の場所にあります。

http://www.run.montefiore.ulg.ac.be/~francois/software/jaDTi/

そうは言っても、あなたの課題は、Web 上で使用可能なインターフェイスを構築することです。そうするために、データセットの使用は制限されます。データ セットは基本的に、トレーニング セットが既にあるという前提で機能し、新しいテスト データセットを 1 つのステップでフィードすると、すぐに答えが得られます。

しかし、私のアプリケーションは、おそらくあなたのアプリケーションも、決定木ノードを行ったり来たりする機能を備えた、段階的なユーザー発見でした。

このようなアプリケーションを構築するために、トレーニング セットから PMML ドキュメントを作成し、ユーザーに入力 (テキスト/ラジオ/リスト) を与えるように求め、ツリーの各ノードを走査する Java エンジンを構築し、その値を次に可能なノード述語。

PMML 標準は次の場所にあります: http://www.dmg.org/ここでは、TreeModel のみが必要です。NetBeans XML Plugin は、PMML オーサリング用の優れたスキーマ認識エディタです。Altova XML はより良い仕事をすることができますが、費用がかかります。

RDBMS を使用してデータセットを保存し、PMML を自動的に作成することもできます。私はそれを試していません。

プロジェクトの成功を祈っています。さらに情報が必要な場合は、お気軽にお知らせください。

于 2009-12-03T01:30:06.670 に答える
6

「機械学習」のカテゴリに分類されるさまざまなアルゴリズムがあり、どれが状況に適しているかは、扱うデータの種類によって異なります。

あなたのデータが基本的に一連の質問から一連の診断へのマッピングで構成されており、それぞれがはい/いいえである場合、潜在的に機能する方法には、ニューラルネットワークと、テストデータに基づいて決定木を自動的に構築する方法が含まれると思います.

Russel & Norvig (「Artificial Intelligence: A Modern Approach」) やその他の AI/機械学習の入門書などの標準テキストをいくつか見て、言及されているアルゴリズムを特定のデータに簡単に適応できるかどうかを確認します。 . O'Reilly の「Programming Collective Intelligence」も参照してください。これは、ケースに適応できる 1 つまたは 2 つのアルゴリズムのサンプル Python コードです。

スペイン語が読める場合は、メキシコの出版社 Alfaomega も近年、さまざまな優れた AI 関連の入門書を出版しています。

于 2009-12-03T01:10:40.117 に答える
6

これは分類の問題であり、実際のデータ マイニングではありません。一般的なアプローチは、各データ インスタンスから特徴を抽出し、分類アルゴリズムに特徴と結果 (0 または 1) からモデルを学習させることです。おそらく、30 の質問のそれぞれが独自の機能になるでしょう。

使用できる分類手法は多数あります。サポート ベクター マシンは、最大エントロピーと同様に人気があります。私は Java Machine Learning ライブラリを使用したことがありませんが、一見するとどちらもわかりません。OpenNLP プロジェクトには最大エントロピーの実装があります。LibSVM には、サポート ベクター マシンの実装があります。ほとんどの場合、ライブラリが理解できるようにデータを変更する必要があります。

幸運を!

更新: Russel and Norvig は AI に関する優れた本であり、この点について議論しているという他のコメンターに同意します。Bishop の「Pattern Recognition and Machine Learning」では、ダウンとダーティな詳細に興味がある場合は、分類の問題について詳しく説明しています。

于 2009-12-03T01:11:10.867 に答える
3

あなたのタスクはニューラル ネットワークの古典的なものであり、まず正確に分類タスクを解決することを目的としています。ニューラルネットワークはどの言語でも実現が比較的単純であり、何よりもAIに近い「機械学習」の「主流」です。エラー逆伝播による学習を備えた多層ネットワークなどの標準的なニューラルネットワークを実装する(または既存の実装を取得する)だけで、サイクルで学習例を与えるだけです。このような学習をしばらく行った後、実際の例で作業できるようになります。ここから始まるニューラル ネットワークの詳細を読むことができ ます。 http://en.wikipedia.org/wiki/Neural_network_software

于 2009-12-16T06:57:16.780 に答える