Premier message de Qiita! !! C'est facile pour un nouvel ingénieur diplômé de première année (* ´ ▽ ` *) Site de référence: [changefinder] (http://argmax.jp/index.php?changefinder)
J'ai récemment entendu une voix dire "Je veux savoir si le PV monte en flèche!" Et j'ai essayé. Dans un tel cas, il semble qu'il soit souvent mesuré à l'aide de la détection du point de changement et de la détection des valeurs aberrantes. Lors de l'enquête, il y a eu quelques exemples d'utilisation d'un modèle appelé changefinder.
[Introduction de la méthode et du système pour identifier les mots qui montent en flèche en utilisant "Ameba" et "Twitter"] (https://www.cyberagent.co.jp/techinfo/techreport/report/id=9749)
Il existe des packages en R et Python, donc cette fois j'ai essayé l'exemple de code du package python que je n'ai jamais touché!
R: [J'ai créé un package pour la détection d'anomalies (détection de point de changement)] (http://d.hatena.ne.jp/yokkuns/20120930/1348978641)
Python: [changefinder] (http://argmax.jp/index.php?changefinder)
L'éditeur a récemment utilisé jupyter, qui est un sujet brûlant dans la zone Python. Comment installer jupyter nootbook est résumé dans ici. jupyter est un éditeur recommandé pour la modification de code interactif, l'acquisition de données et le traçage.
Lorsque vous appuyez sur l'exemple de code avec jupyter, cela ressemble à ceci
Tout d'abord, installez le package changefinder Installez les bibliothèques requises
pip install changefinder
matplotlib.pyplot est une bibliothèque standard de tracés graphiques. numpy est une bibliothèque pratique que disent diverses fonctions qui génèrent des nombres aléatoires, etc. pandas contient des types qui facilitent les opérations sur les données, comme les trames de données.
import changefinder as cf
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
Créez les données à analyser. Crée et stocke des nombres aléatoires avec des valeurs moyennes faibles, élevées, faibles et élevées.
data=np.concatenate([
np.random.normal(0.7, 0.05, 300),
np.random.normal(1.5, 0.05, 300),
np.random.normal(0.6, 0.05, 300),
np.random.normal(1.3, 0.05, 300)])
Réglez les paramètres.
cf = changefinder.ChangeFinder(r=0.01, order=1, smooth=100)
Mettez le score dans un tableau
ret = []
for i in data:
score = cf.update(i)
ret.append(score)
C'est un tracé graphique.
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(ret)
ax2 = ax.twinx()
ax2.plot(data,'r')
plt.show()
Avec jupyter, vous pouvez interagir avec lui, vous pouvez donc facilement essayer différents packages!
Recommended Posts