Also, covering Sergey's first question, what anomalies are you looking for? See this report that uses a Fourier Transform and it's inverse for R-peak detection; http://www.egr.msu.edu/classes/ece480/capstone/spring13/group03/documents/SignalProcessingofECGSignalsinMatlab.pdf
PS: I have Matlab if required/helps. Although other ways in Python can be used, see nupic.critic for example. On Sat, Oct 24, 2015 at 6:13 PM, Richard Crowder <[email protected]> wrote: > Kentaro, Sergey, > > I've been trying to get my head around available data for training/testing. > > For example, https://physionet.org/physiobank/ Graph viewing and download > via > https://physionet.org/cgi-bin/atm/ATM?database=mimic2wdb&tool=plot_waveforms > (River > view applicable?) > > Any idea what could be the best form of data, and which kind of data to > obtain (ECG only?, with arterial blood pressure, need for labeling?). See > graph here https://physionet.org/physiobank/database/mimic2wdb/ > > Best regards, Richard. > > > On Thu, Oct 22, 2015 at 1:12 PM, 飯塚健太郎 <[email protected]> wrote: > >> Richard, Sergey, >> Thank you for replies. >> >> I read replies carefully, and noticed some fact. >> >> Currently, My code using raw ECG data with NuPIC’s Scalar Encoder and >> TemporalAnomaly for inferenceType. >> >> But It is another way, >> use pre encoded ECG data to learn and predict anomalies. >> >> I found FFT used in Audio Stream example. >> >> https://github.com/numenta/nupic/blob/master/examples/audiostream/audiostream_tp.py#L249 >> >> It might be better to use Wavelet or another encoding technique, >> That technique make data more discretely and might be suitable for detect >> anomalies. >> >> I think I should learn about Encoding technique. >> I’ll read the paper Richard suggested, too. >> >> Thanks! >> >> 2015-10-22 19:36 GMT+09:00 Richard Crowder <[email protected]>: >> >>> Hello Kentaro, >>> >>> Sergey's questions, response, and paper link are important. The linked >>> paper is the first I've read on ECG signal analysis, but has a lot of >>> cross-over with audio and speech signal analysis and recognition. Plus >>> recently research into steganalysis [1]. >>> >>> For example - >>> The use of Wavelet transform, or Fourier Transform / DCT (both magnitude >>> AND phase), >>> Perceptual linear prediction, as opposed to Mel-Frequency Cepstral >>> analysis, >>> Very importantly, statistical analysis of spectral features - >>> Wavelet/DCT with Hilbert transform, spectral envelope curve analysis and >>> derivative tracking (velocity and acceleration of curve changes, can limit >>> up to 5th order). >>> >>> A lot of this occurs within animal's brains, with mammals adding >>> addition feedback and inference through the neocortex. As humans, we have >>> exploited the spectral analysis within our 'old brain' to listen, detect, >>> and track spectral features. Such as ECG signals, and sonar signals >>> (hunting for shoals of fish and submarines), for example. Cross-over and >>> similar analysis occurs in vision sensory analysis too (e.g. edge >>> detection). >>> >>> Which points to the key questions of how you are encoding the ECG >>> signals? As well as classification techniques? >>> >>> Best regards, Richard. >>> >>> 1 http://www.shsu.edu/~qxl005/new/publications/tifs_audiosteg.pdf >>> >>> On Thu, Oct 22, 2015 at 10:18 AM, Sergey Alexashenko < >>> [email protected]> wrote: >>> >>>> Actually, I can write out the scenarios here. >>>> >>>> NuPIC should definitely be able to learn different people's heartbeats >>>> in one model. You have to give it plenty of data to learn on. Also, make >>>> sure to resetSequenceStates every time you start feeding in data from a new >>>> person. Finally, you might want to shuffle the data so that you don't feed >>>> it person 1, then person 2, then person 3, but rather a mixture of all the >>>> data to reduce bias towards the latest people (but I don't think that this >>>> is necessary to be honest). >>>> >>>> There is, however, the issue of encoding. I'm assuming that you are >>>> using a scalar encoder produced by swarming. That's fine, that's a quick >>>> approach and it might work (in fact I would bet that it will produce usable >>>> results - be mindful of swarming on a data set including different people's >>>> data, though!). >>>> >>>> However, if you think about the data type - ECG data, unlike, say, EEG >>>> data, consists of almost perfectly discrete steps (heartbeats) which could >>>> be matched to NuPIC timesteps very well. If you run through the trouble of >>>> extracting features from your data (there is ample literature on how to do >>>> it - see [1] for example), and creating encoders for all the >>>> intervals/amplitudes, I think that NuPIC would do a marvelous job. Note >>>> that this approach condenses the time interval per step to one per >>>> heartbeat and, thus, is not going to work if you are trying to do >>>> super-rapid detection or prediction (on a time scale shorter than one >>>> heartbeat). It is also more time-consuming for you - once again, swarming >>>> could work well enough. >>>> >>>> Hope this helps, >>>> >>>> Sergey >>>> >>>> [1] http://arxiv.org/pdf/1005.0957.pdf >>>> >>>> >>>> >>>> On Thu, Oct 22, 2015 at 1:58 AM, Sergey Alexashenko < >>>> [email protected]> wrote: >>>> >>>>> Hello Kentaro, >>>>> >>>>> I think that NuPIC can definitely work with ECG data, but I need a >>>>> little more information about your project to make any helpful >>>>> suggestions. >>>>> Two questions: >>>>> >>>>> 1) Are you trying to predict or detect anomalies? You use both terms, >>>>> but they involve somewhat different mechanisms. >>>>> >>>>> 2) How are you encoding ECG data? >>>>> >>>>> Best, >>>>> >>>>> Sergey >>>>> >>>>> >>>>> On Wed, Oct 21, 2015 at 10:07 PM, Kentaro Iizuka < >>>>> [email protected]> wrote: >>>>> >>>>>> Hello NuPIC. >>>>>> >>>>>> Thank you Matt for post. >>>>>> >>>>>> Here is my question detail. (It is same as gitter post) >>>>>> https://gist.github.com/iizukak/72526863d3f504f2ff5e >>>>>> >>>>>> I hope somebody have good idea for that. >>>>>> >>>>>> Thank you! >>>>>> >>>>>> >>>>>> 2015-10-22 13:29 GMT+09:00 Matthew Taylor <[email protected]>: >>>>>> > Hello NuPIC, >>>>>> > >>>>>> > Check this out: >>>>>> https://gitter.im/numenta/htm-challenge/archives/2015/10/21 >>>>>> > >>>>>> > Watch the ECG anomaly in the video: >>>>>> https://youtu.be/5KdwV-trMhE?t=1m41s >>>>>> > >>>>>> > He has an interesting question about how to train a model on a >>>>>> healthy >>>>>> > heartbeat, and it is expressed well with pictures in the link >>>>>> above. He >>>>>> > wants to train a model with the ECG history of more than one person >>>>>> to get a >>>>>> > representation of a "healthy heartbeat". The problem is that every >>>>>> person's >>>>>> > heartbeat is a little different. Is it feasible to train a model on >>>>>> multiple >>>>>> > heartbeats in sequence? I'm not sure if it will work, but maybe >>>>>> someone has >>>>>> > a better idea? >>>>>> > >>>>>> > Solving this problem would help in a lot of different signal >>>>>> analysis >>>>>> > applications of HTM... >>>>>> > >>>>>> > --------- >>>>>> > Matt Taylor >>>>>> > OS Community Flag-Bearer >>>>>> > Numenta >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Kentaro Iizuka<[email protected]> >>>>>> >>>>>> Github >>>>>> https://github.com/iizukak/ >>>>>> >>>>>> Facebook >>>>>> https://www.facebook.com/kentaroiizuka >>>>>> >>>>>> >>>>> >>>> >>> >> >> >> -- >> 飯塚健太郎([email protected]) >> >> 埼玉大学理工学研究科 >> 暗号基盤研究室 >> 博士前期課程一年次 >> > >
