Closed armgilles closed 2 years ago
# Avoir un pipeline Scikit-Learn Isolation Forest déjà fit (clf)
logistic_predict_proba_from_model(0.15, k=20)
score_anomaly = clf.decision_function(data[FEATURES_TO_USE_CLUSTER])
k
:k
= 2 :k
= 20 :
k
= 50 :
x
> 0 étant une anomalie d'après l'algorithme (et x
< 0 étant un point normal). Plus 'k' est grand plus les points extrêmes de
decision_functionsont proche de
0et
1(en
y). De la même façon un
k` faible donne une fonction plus linéaire.
Ce score d'anomalie permet de mieux comprendre les résultats de la solution et est plus friendly user, il respecte aussi le % d'outlier détecter par l'algorithme :
Distribution cumulative; x étant le score d'anomalie et y la proportion. Il y a donc très peu de points >= 0.5.
Ajouter de la fonctionnalité dans les tests.
Pour l'instant il n'y a pas de score d'anomalie, soit il y a une anomalie, soit il n'y en a pas (1 ou 0).
Afin d'aider dans l'amélioration de la solution ainsi que de pouvoir aider les utilisateurs finaux dans la consommation des prédictions, il faudrait indiquer un score d'anomalie compréhensible (un peu comme les fonctions
predict_proba
dans Scikit-Learn).Ce score devrait logiquement augmenter lorsque la station risque d'être en anomalie (absence d'activité de prise de vélo important + horaire particulier).
Ce score doit être lié au modèle de la station (chaque station à son propre modèle).