Letztes Mal habe ich [Nicht allzu nützlicher Klassifikator] erstellt (http://chase0213.hatenablog.com/entry/2014/07/12/135747), damit ich etwas machen kann, das etwas mehr verwendet werden kann.
Klicken Sie auf Facebook oben rechts auf die Markierung "▼" (Stand Juli 2014). Wenn Sie den Eintrag "Einstellungen" anzeigen, befindet sich unten unter "Allgemeine Kontoeinstellungen" der Link "Facebook-Daten herunterladen". Wenn Sie darauf klicken und verschiedene Authentifizierungen durchführen, können Sie die auf Facebook geposteten Daten im HTML-Format herunterladen. Ich habe versucht, dies mit einem leichten Gefühl herunterzuladen, aber ehrlich gesagt gab es zu viele kritische Informationen und ich habe sie ein wenig gezogen. Ich bin der Meinung, dass wir, wenn wir solche Daten empfehlen, etwas mit hoher Genauigkeit erstellen können.
In dieser Geschichte gibt es also einen Punkt namens "Sicherheit" in den oben heruntergeladenen Daten. Sie können sehen, wer sich von wo auf Facebook usw. bei diesem Konto angemeldet hat. Dies wird verwendet, um nicht autorisierten Zugriff zu erkennen.
Ich benutze immer noch Jubatus. Es gibt eine API namens jubaanomaly zum Erkennen von Ausreißern. Verwenden Sie diese.
Die Jubatus-Serverkonfigurationsdatei finden Sie hier. https://github.com/chase0213/anomal_facebook_activity/blob/master/lof.json
Da es sich im Grunde genommen um ein Beispiel handelt, gibt es keine besondere Erklärung. Es ist auch ein guter Punkt von Jubatus, dass Sie etwas herstellen können, das bis zu einem gewissen Grad verwendet werden kann, selbst wenn Sie die Probe so verwenden, wie sie ist.
Diesmal ist es "Jubatus de ~ (1)". Wenn ich also (2) veröffentliche, denke ich, dass ich mich hier richtig eingestellt habe.
Die von Facebook heruntergeladenen Daten sind im HTML-Format markiert und werden entsprechend transformiert. Dieses Mal habe ich ein Python-Skript erstellt und es transformiert (Python 2.6). https://github.com/chase0213/anomal_facebook_activity/blob/master/data/trim.py
(Sie können es wie string_rules schreiben, aber ich musste es etwas mehr formatieren)
Wenn die Daten fertig sind, übergeben Sie sie zur Berechnung von Anomalien an den Jubatus-Server.
client = jubatus.Anomaly(HOST,PORT,NAME)
Starten Sie den Jubatus-Server als
ret = client.add(datum)
Fügen Sie die Daten als hinzu. Datum sind Daten im Format jubatus.common.Datum. Dann gibt ret die ID und Anomalie dieser Daten zurück. Zunächst ist es besser, den Rückgabewert dieses client.add (Datum) zu überprüfen und festzustellen, ob die Daten um 1.0 herum richtig verteilt sind. Wenn sich einer von ihnen deutlich von 1.0 unterscheidet, schauen Sie sich bitte die Daten genauer an. Es besteht die Möglichkeit eines unbefugten Zugriffs.
Nachdem Sie einige Daten auf dem Jubatus-Server gesammelt haben, Ich werde Ihnen Daten geben, die völlig anders als gewöhnlich sind.
anomal_datum = Datum({
"activity": "DELETE",
"time": "15. Juli 2014 17:59 UTC+12",
"ip_address": "127.0.0.1",
"brawser": "IE6",
"cookie": "???"
})
Lassen Sie den Jubatus-Server nach dem Definieren der Daten die Anomalie berechnen. Hier möchten wir sehen, ob es abnormal ist, ohne die Daten zu registrieren. Daher verwenden wir client.calc_score anstelle von client.add.
anomality = client.calc_score(anomal_datum)
calc_score hat einen float-Wert als Rückgabewert. Bitte gefällt es, ob es gekocht oder gebacken wird.
Ich wünschte, ich könnte "normale Daten" anzeigen, aber ich werde sie weglassen, weil ich den Zugriff auf Anomalien selbst erhöhen werde.
Zusammenfassend sieht es so aus. https://github.com/chase0213/anomal_facebook_activity/blob/master/anomaly.py
Hier ist das Ergebnis des Ausprobierens.
$ python anomaly.py
anomality(anomal datum): 2.33819794655
anomality(nomal datum): 0.999999880791
Die zweite Zeile gibt die oben definierten anomalen Daten an, und die dritte Zeile gibt die "normalen Daten" an. Bei anomalen Daten ist der Grad der Anomalie deutlich höher. Vielleicht ist es besser, einen statistischen Test oder einen Schwellenwert festzulegen, um eine Warnung auszulösen.
Das ist alles, um Jubatus auszuprobieren, was etwas nützlicher ist als beim letzten Mal. Das nächste Mal möchte ich dies etwas ernster einstellen.
Abgesehen davon habe ich bei einer Google-Suche nach "Jubatus Anomaly" das Gefühl, dass die Seite für die alte API betroffen ist. Bitte beachten Sie, dass die API je nach Version (diesmal) möglicherweise nicht richtig funktioniert.
Recommended Posts