โมดูล Python สำหรับการวิเคราะห์จุดเปลี่ยน


24

ฉันกำลังมองหาโมดูล Python ที่ทำการวิเคราะห์จุดเปลี่ยนในอนุกรมเวลา มีอัลกอริทึมที่แตกต่างกันจำนวนหนึ่งและฉันต้องการสำรวจประสิทธิภาพของบางอันโดยไม่ต้องหมุนแต่ละอัลกอริทึม

เป็นการดีที่ฉันต้องการโมดูลบางอย่างเช่นbcp (Bayesian Change Point) หรือแพ็คเกจstrucchangeใน R ฉันคาดว่าจะพบบางอย่างใน Scipy แต่ฉันไม่สามารถเปิดอะไรได้

ฉันประหลาดใจที่ไม่มีสิ่งอำนวยความสะดวกใน:

  • statsmodels.tsa : เครื่องมือวิเคราะห์ทางสถิติอนุกรมเวลา
  • scikits.timeseries : เครื่องมือการวิเคราะห์อนุกรมเวลาเพื่อขยาย scipy
  • scipy.signal : เครื่องมือประมวลผลสัญญาณใน scipy

มีโมดูลใดบ้างที่มีอัลกอริธึมตรวจจับการเปลี่ยนแปลงใน Python หรือไม่?


ฉันกำลังมองหาการวิเคราะห์จุดเปลี่ยนใน Python ด้วย คุณพบสิ่งที่มีประโยชน์ (เช่นใช้ RPy หรือไม่)
แจ็คเคลลี่

ใช้เชือกผสมใน SPAMS spams-devel.gforge.inria.fr (มีการผูก Python)
Vladislavs Dovgalecs

ทุกคนพบห้องสมุดการวิเคราะห์ changepoint ที่ดีในขณะนี้ (ใช้อัลกอริทึมต่างๆพูดว่าการแบ่งส่วนไบนารีฐานละส่วน)
มหา

สำหรับข้อมูลอนุกรมเวลาออนไลน์การใช้งานการตรวจจับจุดเปลี่ยนพูดว่าเครื่องมือเปลี่ยนช่องสัญญาณสามารถปรับขนาดได้อย่างไร นี่เป็นปัญหาที่เกิดขึ้นกับฉัน
HoofarLotusX

คำตอบ:


7

คุณสามารถลองchangefinderห้องสมุด PyPI คำอธิบายบอกว่ามันเป็นห้องสมุดตรวจจับการเปลี่ยนแปลงออนไลน์ที่ใช้อัลกอริทึม ChangeFinder

นอกจากนี้ยังมีการใช้งาน Python บางส่วนของเทคนิคการตรวจจับจุดเปลี่ยนทางสถิติของ Michele Basseville ที่มีอยู่ในรูปแบบการสอนเกี่ยวกับ repo Github นี้


3
การดำเนินงานของงูหลามคชกรรมเปลี่ยนจุดตรวจสอบนอกจากนี้ยังสามารถพบได้ที่นี่ repo Github
kushan_s

1
ดูเหมือนว่าลิงค์แรกในคำตอบ (amanahuja) ไม่สมบูรณ์? อีกอันที่คุณโพสต์ไว้ในความคิดเห็นนั้นมีประโยชน์!
okkhoy

6

ยังมีช่องว่างบางส่วนในไลบรารี Python สำหรับใช้แพ็คเกจสถิติขั้นสูง คุณได้ลองใช้โมดูล RPy แล้วหรือยัง? เมื่อใช้ RPy คุณสามารถโหลดโมดูล R

บทแนะนำสั้น ๆ เกี่ยวกับ RPy: http://www.sciprogblog.com/2012/08/using-r-from-within-python.html strucchange


2
ยังคงเป็นกรณีนี้หรือไม่? ฉันยังต้องลงเอยด้วยการใช้สะพาน R-Python หรือไม่?
มหา

ทุกคนพบห้องสมุดการวิเคราะห์ changepoint ที่ดีในขณะนี้ (ใช้อัลกอริทึมต่างๆพูดว่าการแบ่งส่วนไบนารีฐานละส่วน)
มหา

4

การติดตั้งแพ็กเกจ Python rpy2 นี้เหมาะกับฉัน:

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()

จากนั้นคุณสามารถพล็อตค่าเฉลี่ยด้านหลังและความน่าจะเป็นหลังกับเวกเตอร์ดั้งเดิม ดูตัวอย่างฟังก์ชัน bcp ใน R สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับตัวอย่างนี้

นอกจากนี้ค่าการจัดทำดัชนีแบบแข็งที่มีตัวเลข (เช่นค่า [5]) นั้นไม่เหมาะ แต่ฉันมีเวลาลำบากในการใช้ตัวแยก rx และ rx2 ดังนั้นถ้าใครสามารถสอนฉันเกี่ยวกับวิธีการแฮ็กที่น้อยกว่าฉันอยากรู้!



0

คุณได้ลองใช้ไลบรารี ChangeFinder แล้วคุณสามารถติดตั้งลงบน linux ได้โดย:

pip install changefinder

ยัง Bayesian_changepoint_detection รหัส GitHub สามารถพบได้ที่นี่: รหัส GitHub

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.