Clustering und Bayes Klassifikatoren Matlab

9

Ich bin also an einer Kreuzung, was ich als nächstes tun soll. Ich habe begonnen, einige maschinelle Lernalgorithmen für einen komplizierten Datensatz zu lernen und anzuwenden, und das habe ich jetzt getan. Mein Plan war von Anfang an, zwei mögliche Klassifikatoren zu kombinieren, um ein Multi-Klassifizierungssystem zu erstellen.

Aber hier bin ich festgefahren. Ich wähle einen Clustering-Algorithmus (Fuzzy C Means) (nachdem ich ein paar Beispiele von K-Means-Sachen gelernt habe) und Naive Bayes als die beiden Kandidaten für das MCS (Multi-Classifier System).

Ich kann beide unabhängig verwenden, um die Daten zu klassifizieren, aber ich habe Mühe, die beiden auf sinnvolle Weise zu kombinieren.

Zum Beispiel fängt das Fuzzy-Clustering fast alle "Schlumpf" -Angriffe ab, mit Ausnahme von normalerweise eins und ich bin nicht sicher, warum es diesen ungeraden Ball nicht fängt, aber alles was ich weiß ist es tut nicht. Einer der Cluster wird von den Smurf Attacken dominiert sein und normalerweise werde ich nur einen Schlumpf in den anderen Clustern finden. Und hier ist, wo ich auf das Problemszenario stoße, wenn ich den Bayes-Klassifikator auf allen verschiedenen Angriffstypen trainiere (Smurf, normal, Neptun ... usw.) und dies auf die restlichen Cluster anwende, um den letzten zu finden verbleibender Schlumpf wird eine hohe Fehlalarmrate aufweisen.

Ich bin nicht sicher, wie ich vorgehen soll, ich möchte die anderen Angriffe nicht aus dem Trainingssatz nehmen, aber ich möchte nur den Bayes-Klassifikator trainieren, um "Schlumpf" -Angriffe zu erkennen. Im Moment ist es trainiert, alles zu versuchen und zu erkennen, und in diesem Prozess denke ich (nicht sicher), dass die Genauigkeit verloren geht.

Das ist also meine Frage, wenn ich den naiven Bayes-Klassifikator verwende, wie würdest du ihn nur dazu bringen, nach Schlumpf zu suchen und alles andere als "Andere" zu kategorisieren.

%Vor%

Was ich dachte, war die manuelle Änderung von target_class vom normalen Traffic und von Angriffen, die nicht zu anderen gehören. Dann, wie ich bereits weiß, dass FCM alle bis auf einen Smurf-Angriff korrekt klassifiziert, muss ich nur den naiven Bayes-Klassifikator für die verbleibenden Cluster verwenden.

Zum Beispiel:

Cluster 1 = 500 Smurf Attacken (Wiederholung dieses Schrittes könnte die "Mehrheit" der Smurf Attacken von den 1000 Samples in einen anderen Cluster verschieben, also muss ich die Cluster für den größten durchsehen oder iterieren Größe, sobald gefunden, kann ich es aus der naiven Bayes Klassifizierungsstufe entfernen)

Dann teste ich den Klassifikator auf jedem verbleibenden Cluster (nicht sicher, wie Schleifen usw. in Matlab noch auszuführen sind), also muss ich sie im Moment manuell während der Verarbeitung auswählen.

%Vor%

Ich wiederhole dann den Bayes-Klassifikator für jeden der verbleibenden Cluster und suche nach diesem einen Schlumpfangriff.

Mein Problem ist, was passiert, wenn es einen "anderen" Angriff fälschlicherweise als Schlumpf klassifiziert oder nicht den einen Schlumpf findet.

Ich fühle mich irgendwie auf eine bessere Art und Weise verloren. Ich bin dabei, ein gutes Verhältnis von Smurf-Angriffen zu "anderen" zu wählen, da ich nicht übersteigen möchte, was in einer früheren Frage erklärt wurde. hier .

Aber das wird einige Zeit dauern, da ich noch nicht weiß, wie ich die bestehenden Labels von Neptun, Back, Ipsweep, Warclient Attacken auf "Andere" in Matlab ändern / ersetzen kann, so dass ich diese Theorie noch nicht testen kann dort hinkommen).

Meine Frage ist also:

1) Gibt es eine bessere Methode, diesen schwer fassbaren Schlumpfangriff zu finden?

2) Wie kann ich die target_class (Etiketten) grep, um alles, was nicht Schlumpf ist, durch " andere "

zu ersetzen     
Garrith Graham 19.07.2012, 18:19
quelle

1 Antwort

1

Ich werde versuchen, Ihre Fragen teilweise zu beantworten.

  

1) Gibt es eine bessere Methode, diesen schwer fassbaren Schlumpfangriff zu finden?

Ich schlage vor, dass Sie das nicht versuchen. 1 in 500. Dies ist fast eindeutig eine Überfüllung Ihrer Daten. Ihr Klassifikator wird nicht gut verallgemeinern, um Daten zu testen.

  

2) Wie kann ich grep die target_class (Etiketten), um alles, was nicht Schlumpf ist mit "anderen"

zu ersetzen

Versuchen Sie dazu folgenden Matlab-Code.

%Vor%     
Atilla Ozgur 03.08.2012, 22:17
quelle