Frage

Ich plane Programm in Java zu entwickeln, die Diagnose liefern. Der Datensatz wird in zwei Teile geteilt eine für die Ausbildung und das andere für die Prüfung. Mein Programm soll lernen, aus den Trainingsdaten (BTW Antwort enthalten 30 Fragen jeweils in neuen Spalt, die klassifizieren, wobei jeder Datensatz in neuer Zeile die letzte Spalte Diagnose wird 0 oder 1, in dem Testteil der Datendiagnose Spalte leer sein wird - Datensatz enthalten etwa 1000 Datensätze) und dann Vorhersagen in Testteil der Daten machen: /

Ich habe nie etwas getan ähnlich, so werde ich irgendwelche Ratschläge oder Informationen über Lösung ähnliches Problem zu schätzen wissen.

Ich dachte über Java Machine Learning Bibliothek oder Java Data Mining Package aber ich bin nicht sicher, ob es richtige Richtung ...? und ich bin immer noch nicht sicher, wie diese Herausforderung zu bewältigen ...

Bitte geben.

Alles Gute!

War es hilfreich?

Lösung

Hallo Als Gann Bierner sagte, ist dies ein Klassifikationsproblem. Der beste Klassifikationsalgorithmus für Ihre Bedürfnisse ich kenne, ist, Ross Quinlan Algorithmus. Es ist konzeptionell sehr einfach zu verstehen.

Für off-the-shelf-Implementierungen der Klassifikationsalgorithmen, die beste Wette ist Weka. http://www.cs.waikato.ac.nz/ml/weka/. Ich habe Weka studiert, aber nicht benutzt, da ich es ein wenig zu spät entdeckt.

Ich habe eine viel einfachere Implementierung genannt JadTi. Es funktioniert ziemlich gut für kleinere Datenmengen wie bei Ihnen. Ich habe es ziemlich viel verwendet, so so sicher sagen kann. JadTi finden Sie unter:

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

Nachdem alles gesagt, dass Ihre Herausforderung wird eine nutzbare Schnittstelle über Web bauen. Dazu wird der Datensatz von begrenztem Nutzen sein. Der Datensatz arbeitet grundsätzlich auf der Prämisse, dass Sie den Trainingssatz bereits haben, und Sie ziehen den neuen Test-Datensatz in einem Schritt, und Sie erhalten die Antwort (en) sofort.

Aber meine Anwendung, wahrscheinlich auch bei Ihnen, war ein Schritt für Schritt Benutzer Entdeckung, mit Funktionen hin und her auf den Entscheidungsbaumknoten gehen.

eine solche Anwendung zu erstellen, habe ich ein PMML Dokument aus meiner Trainingssatz, und baute eine Java-Engine, die jeden Knoten des Baums durchquert den Benutzer auffordert, einen Eingang (Text / Radio / Liste) zu geben und die Werte verwenden, wie Eingänge auf den nächsten möglichen Knoten Prädikat.

Der PMML-Standard finden Sie hier: http://www.dmg.org/ Hier müssen Sie die TreeModel nur. NetBeans XML-Plugin ist ein guter Schema-aware-Editor für PMML-Authoring. Altova XML können einen besseren Job machen, aber die Kosten $$.

Es ist auch möglich, ein RDBMS zu verwenden, um Ihre Datenmenge zu speichern und die PMML automagically erstellen! Ich habe das nicht versucht.

Viel Glück mit Ihrem Projekt, wenden Sie sich bitte lassen Sie mich wissen, wenn Sie weitere Eingänge benötigen.

Andere Tipps

ich empfehlen Sie verwenden Weka für Ihre Aufgabe
Es ist eine Sammlung von Algorithmen des maschinellen Lernens mit einer benutzerfreundlichen Front-End, die viele verschiedene Arten von Funktion und Modellselektionsstrategien erleichtert
Sie können mit diesem eine Menge wirklich komplizierte Dinge zu tun, ohne wirklich eine Codierung oder Mathe
zu tun Die Macher haben auch eine ziemlich gutes Lehrbuch veröffentlicht, die die praktischen Aspekte des Data Mining erklärt
Sobald Sie den Dreh raus bekommen, könnte man seine API verwenden, eine ihrer Klassifizierer in Ihre eigenen Java-Programme zu integrieren

Es gibt verschiedene Algorithmen, die in die Kategorie der „Maschinelles Lernen“ fallen, und das ist das Richtige für Ihre Situation von der Art der Daten hängt mit Ihnen zu tun haben.

Wenn Ihre Daten besteht im wesentlichen aus Zuordnungen von einer Reihe von Fragen zu einem Satz von Diagnosen von denen jeder ja sein kann / nein, dann denke ich, Methoden, die möglicherweise neuronale Netze und Methoden funktionieren könnten zur automatischen Erzeugung eines Entscheidungsbaums Aufbau basiert auf die Testdaten.

würde ich auf einige der Standardtexte einen Blick wie Russel & Norvig ( „Artificial Intelligence: Ein moderner Ansatz“) und andere Einführungen in die AI / maschinelles Lernen und sehen, ob Sie ganz einfach die Algorithmen anpassen können sie erwähnen, Ihre speziellen Daten. Siehe auch O'Reilly, „Programming Collective Intelligence“ für einige Probe Python-Code von einem oder zwei Algorithmen, die für Ihren Fall anpassungsfähig sein könnte.

Wenn Sie Spanisch, die mexikanische Verlag Alfaomega wurden ebenfalls veröffentlicht verschiedene gute KI bezogene Einführungen in den letzten Jahren lesen.

Dies ist ein Klassifikationsproblem, nicht wirklich Data Mining. Der allgemeine Ansatz ist Merkmale von jeder Dateninstanz zu extrahieren und der Klassifikationsalgorithmus ein Modell aus den Merkmalen lernen und das Ergebnis (die für Sie 0 oder 1) lassen. Vermutlich jeder der 30 Fragen würde seine eigene Funktion sein.

Es gibt viele Klassifizierungstechniken können Sie verwenden. Support-Vektor-Maschinen sind beliebt wie maximale Entropie. Ich habe nicht die Java Machine Learning Bibliothek, sondern auf einen Blick sehe ich nicht, entweder von diesen verwendet. Das OpenNLP Projekt hat eine maximale Entropie-Implementierung. LibSVM hat eine Vektor-Maschine Einführungsunterstützung. Sie werden mit ziemlicher Sicherheit Ihrer Daten etwas ändern müssen, dass die Bibliothek verstehen kann.

Viel Glück!

Update: Ich mit dem anderen Kommentator einigen, Russel und Norvig eine große AI Buch ist, das einige dieser diskutiert. Bischof „Pattern Recognition and Machine Learning“, bespricht die Einstufung in der Tiefe, wenn Sie in den unteren und schmutzigen Details interessiert sind.

Ihre Aufgabe ist es für neuronale Netze klassische, die in erster Linie dazu bestimmt sind, genau Aufgaben Klassifizierung zu lösen. Das neuronale Netz hat recht einfache Realisierung in jeder Sprache, und es ist die „Mainstream“ von „Maschinelles Lernen“, näher an AI als alles andere. Sie implementieren gerade (oder bestehende Implementierung erhalten) standart neuronales Netzwerk, zum Beispiel mehrschichtige Netzwerk mit dem Lernen durch Fehler Backpropagation, und geben Sie es zu lernen Beispiele im Zyklus. Nach einiger Zeit solchen Lernen erhalten Sie es an realen Beispielen zu arbeiten. Sie können mehr über neuronale Netze lesen ab hier: http://en.wikipedia.org/wiki/Neural_network http://en.wikipedia.org/wiki/Artificial_neural_network Sie können auch Links zu vielen Implementierungen bereit zu bekommen hier: http://en.wikipedia.org/wiki/Neural_network_software

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top