La dernière fois, j'ai fait Classificateur pas trop utile, donc je vais faire quelque chose qui peut être utilisé un peu plus.
Sur facebook, cliquez sur la marque "▼" en haut à droite (à partir de juillet 2014), Lorsque vous affichez l'élément «Paramètres», il y a un lien «Télécharger les données Facebook» en bas de «Paramètres généraux du compte». Si vous cliquez dessus et effectuez diverses authentifications, vous pouvez télécharger les données que vous avez publiées sur Facebook au format htm. J'ai essayé de télécharger ceci avec un sentiment léger, mais honnêtement, il y avait trop d'informations critiques et je l'ai tirée un peu. Je pense que si nous faisons un recommandateur en utilisant ces données, nous pourrons créer quelque chose avec une grande précision.
Donc, dans cette histoire, il y a un élément appelé «sécurité» dans les données téléchargées ci-dessus, Vous pouvez voir qui s'est connecté à ce compte à partir d'où sur Facebook, etc. Ceci est utilisé pour détecter les accès non autorisés.
J'utilise toujours Jubatus. Il existe une API appelée jubaanomaly pour détecter les valeurs aberrantes, alors utilisez-la.
Le fichier de configuration du serveur Jubatus se trouve ici. https://github.com/chase0213/anomal_facebook_activity/blob/master/lof.json
Puisqu'il s'agit essentiellement de l'échantillon tel qu'il est, il n'y a pas d'explication particulière. C'est aussi un bon point de Jubatus que vous puissiez créer quelque chose qui puisse être utilisé dans une certaine mesure même si vous utilisez l'échantillon tel quel.
Cette fois, c'est "Jubatus de ~ (1)", donc quand je publie (2), je pense que j'ai réglé ici correctement.
Les données téléchargées depuis Facebook sont balisées au format htm, elles seront donc transformées en conséquence. Cette fois, j'ai créé un script python et je l'ai transformé (python 2.6). https://github.com/chase0213/anomal_facebook_activity/blob/master/data/trim.py
(Vous pouvez l'écrire comme string_rules, mais j'avais besoin de le formater un peu plus)
Lorsque les données sont prêtes, transmettez-les au serveur Jubatus pour le calcul des anomalies.
client = jubatus.Anomaly(HOST,PORT,NAME)
Démarrez le serveur Jubatus comme
ret = client.add(datum)
Ajoutez les données sous forme de. datum est une donnée au format jubatus.common.Datum. Puis ret renverra l'id et l'anomalie de ces données. Dans un premier temps, il est préférable de regarder la valeur de retour de ce client.add (Datum) et de voir que les données sont correctement réparties autour de 1.0. Si l'un d'entre eux est clairement différent de 1.0, veuillez examiner les données de plus près. Il existe une possibilité d'accès non autorisé.
Donc, après avoir accumulé quelques données sur le serveur Jubatus, Je vais vous donner des données complètement différentes de l'ordinaire.
anomal_datum = Datum({
"activity": "DELETE",
"time": "15 juillet 2014 17:59 UTC+12",
"ip_address": "127.0.0.1",
"brawser": "IE6",
"cookie": "???"
})
Après avoir défini les données, laissez le serveur Jubatus calculer l'anomalie. Ici, nous voulons voir si c'est anormal sans enregistrer les données, nous utilisons donc client.calc_score au lieu de client.add.
anomality = client.calc_score(anomal_datum)
calc_score a une valeur flottante comme valeur de retour, alors veuillez l'aimer si elle est bouillie ou cuite.
J'aimerais pouvoir afficher des "données ordinaires", mais je les omettrai car j'augmenterai l'accès aux anomalies par moi-même.
En résumé, ça ressemble à ça. https://github.com/chase0213/anomal_facebook_activity/blob/master/anomaly.py
Alors, voici le résultat de son essai.
$ python anomaly.py
anomality(anomal datum): 2.33819794655
anomality(nomal datum): 0.999999880791
La deuxième ligne donne les données anormales définies ci-dessus et la troisième ligne donne les "données ordinaires". Pour les données anormales, le degré d'anomalie est nettement plus élevé. Il serait peut-être préférable de définir un test statistique ou un seuil pour déclencher une alerte.
C'est tout pour essayer Jubatus, qui est un peu plus utile que la dernière fois. La prochaine fois, j'aimerais régler cela un peu plus sérieusement.
En passant, lorsque je recherche sur Google "Anomalie Jubatus", je sens que la page de l'ancienne API est affichée. Veuillez noter que l'API peut ne pas fonctionner correctement selon la version (cette fois).
Recommended Posts