我正在 python 中进行手势识别,我发现可以管理隐藏马尔可夫模型的更完整的库之一是nltk。但是有一点我无法理解。
首先,数据。我有手势的坐标,我已经将它们聚集在 8 个集群中(使用 k-means)。所以这是我的手势结构:
raw coordinates x,y: [[123,16], [120,16], [115,16], [111,16], [107,16], [103,17], ...]
centroids x,y : [[ 132.375 56.625 ]
[ 122.45454545 30.09090909]
[ 70.5 27.33333333]
...]
labels: [5 6 6 6 6 6 6 2 2 2 2 2 2 4 4 4 ...]
现在我想用我的 . 所以 HiddenMarkovModelTrainer 是我的课。
我在互联网上发现了一些更多的 baum welch 实现,但仅限于 Matlab。这个算法的实现通常需要这个输入:
baum-welch(X, alphabet, H)
其中 - X 是火车的数据(在我的情况下 - 标签) - 数据的可能值的字母表(在我的情况下 - 0,1,2,3,4,5,6,7) - H 隐藏的数量状态
现在我很困惑,因为在 ntlk.HiddenMarkovModelTrainer 构造函数中我必须给出状态和符号,我不知道它们应该是什么,考虑到训练 X 的数据是 HiddenMarkovModelTrainer.train_unsupervised() 方法的输入,我认为我的字母表是符号..我不知道在州里放什么。
即使我的英语很差,我也希望我的解释清楚。