I am currently working on a sequence classification problem I try to solve with machine learning. The target variable is the current state of a system. This target variable is following a repeating pattern (eg. [00110200033304...]). So Transitions are only allowed from or to the "0" state if you imagine the system as a state machine. The only deviation is the time the system stays in one state (eg. iteration_1 = [...0220...], iteration_2 =[...02220...]).
What would be the best choice of (machine learning) model for this task if one wants to optimize for accuracy?
- No restrictions regarding time / space complexity of the model
- No restrictions regarding the type of model
- The model is only allowed to make wrong classifications in the state transitions phases (e.g. true: [011102...], pred: [001102...]) but must not validate the sequence logic (e.g. true: [011102...], pred: [010102...])
Additional Info / Existing Work
- With a lstm neural network (many to 1) I achieved an overall accuracy of 97% in an unseen test set. Unfortunately the network predicted sequences which violate the sequence logic (e.g. true: [011102...] predicted: [010102...]) even tough the window length was wide enough to cover at least 3 state transitions.
- with simple classification models (only one times step per classification, tested models: feed forward neural network, xgboost / adaboost) an accuracy of ca. 70% are reachable
- The input signal is acoustic emission in the frequency domain; Ca. 100 frequency bins / 100 features
- Maybe the lstm would work better in "many to many" designed with a drastic reduced input dimensionality by increased window size?
- Maybe a combination of the probability output of the lstm with a timed Automaton (a state machine with time dependent probability density functions about the state changes) or a Markov chain model could significantly improve the result? (But this seems really inelegant)
- Is it eventually possible to impose the restriction of valid sequences onto the lstm model?