Moduł Pythona do analizy punktu zmiany


24

Szukam modułu Python, który wykonuje analizę zmiany punktu na szeregu czasowym. Istnieje wiele różnych algorytmów i chciałbym zbadać skuteczność niektórych z nich bez konieczności ręcznego rzucania każdym z algorytmów.

Idealnie chciałbym, aby niektóre moduły, takie jak bcp (Bayesian Change Point) lub pakiety strucchange w R. Spodziewałem się znaleźć kilka w Scipy, ale nie byłem w stanie niczego podkręcić.

Dziwi mnie, że nie ma żadnych udogodnień w:

Czy są jakieś moduły z algorytmami wykrywania punktu zmiany w Pythonie?


Szukam również analizy punktu zmiany w Pythonie. Czy znalazłeś coś przydatnego (np. Używając RPy?).
Jack Kelly

Użyj skondensowanego lasso w SPAMS spams-devel.gforge.inria.fr (ma powiązania Pythona).
Vladislavs Dovgalecs

ktoś już znalazł jakąś dobrą bibliotekę analizy punktu wymiany (implementacja różnych algorytmów mówi, że segmentacja binarna, sąsiedztwo segmentu)?
Maha

W przypadku danych online szeregów czasowych, w jaki sposób implementacja wykrywania punktu zmiany, powiedzmy, że zmiennik może się skalować? To wydaje mi się nieodłącznym problemem.
HoofarLotusX

Odpowiedzi:


7

Możesz wypróbować bibliotekę zmieniacza na PyPI. Opis mówi, że jest to internetowa biblioteka wykrywania zmian oparta na algorytmie ChangeFinder

Istnieją również niektóre implementacje w Pythonie technik statystycznego wykrywania punktu zmiany Michele Basseville dostępne w formie samouczka na tym repozytorium Github.


3
W tym repozytorium Github można również znaleźć implementację Pythona Bayesian Change Point Detection .
kushan_s

1
wygląda na to, że pierwszy link w odpowiedzi (amanahuja) jest niepełny? drugi zamieszczony w komentarzu jest przydatny!
okkhoy

6

W bibliotece Pythona nadal występują luki w korzystaniu z zaawansowanych pakietów statystyk. Czy próbowałeś użyć modułu RPy? Korzystając z RPy, możesz załadować moduły R.

krótki samouczek na temat RPy: http://www.sciprogblog.com/2012/08/using-r-from-within-python.html struczmienić


2
czy nadal tak jest? Czy nadal muszę korzystać z mostka R-Python?
Maha,

ktoś już znalazł jakąś dobrą bibliotekę analizy punktu wymiany (implementacja różnych algorytmów mówi, że segmentacja binarna, sąsiedztwo segmentu)?
Maha

4

Ta implementacja pakietu rpy2 Pythona działała dla mnie:

import numpy as np
from rpy2.robjects.packages import importr
import rpy2.robjects as robjects

r = robjects.r #allows access to r object with r.

bcp = importr('bcp') #import bayesian change point package in python

values = bcp.bcp( r.c( r.rnorm(50) , r.rnorm(50,5,1), r.rnorm(50) ) ) #use bcp function on vector

posterior_means = np.array(values[5]).flatten()
posterior_probability = np.array(values[7]).flatten()

Następnie możesz wykreślić średnie tylne i prawdopodobieństwo tylne względem oryginalnego wektora. Zobacz przykład funkcji bcp w R, aby uzyskać bardziej szczegółowe informacje na temat tego przykładu.

Również twarde indeksowanie wartości liczbowych (tj. Wartości [5]) nie jest idealne, ale miałem trudności z użyciem ekstraktora rx i rx2. Więc jeśli ktoś może oświecić mnie mniej hackerską metodą ekstrakcji, chciałbym wiedzieć!



0

Czy próbowałeś biblioteki ChangeFinder, możesz zainstalować ją na Linuksie przez:

pip install changefinder

także Bayesian_changepoint_detection Kod GitHub można znaleźć tutaj: Kod GitHub

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.