Ich suchte nach einer HMM-Implementierung in R, um Zustände in einer Zeichenfolge zu analysieren, und die HMM-Bibliothek scheint langsam zu laufen, dann verwende ich die RHmm-Bibliothek.r - viterbi RHmm Fehlerschutz Stapelüberlauf
Meine Daten ist eine Kette von 1.953.138 Symbole (U, D, N)
dies eine Probe meiner Daten:
string <- sample(c("D","U","N"),1953138,replace=T)
Einpassen HMM
HMM <- HMMFit(string,dis="DISCRETE",nStates=3)$HMM
läuft Viterbi und Hier bekomme ich den Fehler
viterbi_results <- viterbi(HMM,string)
#Error: protect(): protection stack overflow
Allerdings, wenn ich nur eine Teilmenge der Zeichenfolge Viterbi() verwenden, funktioniert gut:
viterbi_results <- viterbi(HMM,string[1:49963])
Eigentlich, wenn ich zu laufen versuchen:
viterbi_results <- viterbi(HMM,string[1:49964])
#Error: protect(): protection stack overflow
ich den gleichen Stack-Überlauf-Fehler erhalten, dann 49964 Elemente im Vektor ist das Limit
Ich denke, das Problem kann mit der Tatsache zusammenhängen, dass die Standard-R-Option von --max-ppsize 50000 ist, aber die Änderung dieses Parameters auf sein Limit --max-ppsize 500000 nicht #das Problem lösen. Das Vektorlimit in viterbi() erhöht sich jedoch, es geht von 49964 Elementen zu etwa 499960 Elementen im Zeichenfolgenvektor.
Ich habe versucht, den Viterbi-Algorithmus in Chunks auszuführen. Erste splited ich die Zeichenfolge in Stücke von 49.960 Elemente und gelten Viterbi für jeden von ihnen, aber ich habe den gleichen Fehler
list_string <- split(string, ceiling(seq_along(string)/49960))
viterbi_results <- lapply(list_string,function(x) viterbi(HMM,x)$states)
#Error: protect(): protection stack overflow
hier in Stackoverflow ich ein ähnliches Problem mit dem einen fand ich LINK habe. Anscheinend war die Ursache des Problems ein PROTECT innerhalb einer Schleife, die nicht benötigt wird. Ich bin in den C++ - Quellcode der Viterbi-Funktion gesprungen, aber es gibt keinen einzigen PROTECT.
Ich habe auch versucht ulimit -s unlimited
, aber ich bekomme den gleichen Fehler.
Ich arbeite an Unix mit 1009 GB RAM Speicher
Link zu dem RHmm package
Vielen Dank für die Hilfe!
Im in das exakt gleiche Problem läuft außer mit einem Vektor mit Millionen von Beobachtungen - haben Sie jemals das Problem zu lösen? –
Noch nicht, ich habe versucht, die Entwickler zu kontaktieren, aber bisher kein Glück. – Sierra