【问题标题】:WEKA & HMMWeka, train and test models‏WEKA 和 HMMWeka,训练和测试模型
【发布时间】:2014-05-08 15:58:51
【问题描述】:

我正在尝试使用 WEKA 来进行手势识别。我是这个程序的新手,所以任何帮助都将不胜感激。

更具体地说,我在步骤中做了什么:

  1. 安装 WEKA
  2. 安装 HMMWeka 库
  3. 我的数据包含旋转形式的传感器,我尝试以“简单”格式和“多实例”格式创建 .arff

我已经记录了 4 个手势,每个手势重复了 3 次。因此,我使用“简单”格式的初始想法是使用第一次重复中的手势 1 训练模型,并使用其余两次重复中的手势 1 对其进行测试(识别它)。 使用“多实例”格式,在每个 .arff 文件中,我都有来自每次重复的所有四个手势。

所以我的问题是:

  • 我不确定我的“多实例”格式的文件是否正确。这是它的结构示例

@relation rotation
@attribute bag_ID {1, 2, 3, 4, 5, 6, 7, 8, 9}
@attribute bag relational
@attribute rotation { rot1 , rot2 , rot3 }
@attribute x_left_hand numeric
@attribute y_left_hand numeric
@attribute z_left_hand numeric
@attribute x_right_hand numeric
@attribute y_right_hand numeric
@attribute z_right_hand numeric
@end bag
@attribute gesture { g1, g2, g3, g4}

@data
1,"rot1, 1.394962, 19.704826, 0.536432, 1.594745, 7.511097, 0.269678", g1
2,"rot1, 1.337786, 19.681709, 0.468583, 1.63736, 7.536188, 0.35687", g1
3,"rot1, 1.280635, 19.658672, 0.400756, 1.679905, 7.561322, 0.443999", g1
4,"rot1, 2.217022, 15.327432, -1.997938, 0.256819, 10.011353, 2.300805", g2
5,"rot1, 2.304201, 15.276058, -2.076832, 0.161013, 9.993914, 2.351273", g2
6,"rot1, 2.271477, 22.43351, 3.477951, 1.245202, 5.531068, -1.06918", g3
7,"rot1, 2.218041, 22.370411, 3.506101, 1.299245, 5.590856, -1.078336", g3
8,"rot1, 1.557125, 16.531981, 4.000765, 3.098644, 5.841918, -3.751997", g4
9,"rot1, 1.557125, 16.531981, 4.000765, 3.116652, 5.932492, -3.760822", g4
  • 虽然 WEKA 读取这两种格式,但当我选择 HMM 进行训练时,它会选择(这也是默认的)名义类手势,而我想使用关系属性或所有其他属性作为一群。 trainig中正确分类的结果也很低..22%

  • 根据我作为输入提供给 WEKA 的所有属性,测试结果将是哪个手势。

  • 你知道这是否可能吗?我可以使用所有数字属性进行训练吗?我的格式有问题吗?

我在谷歌搜索了很多,找到了http://weka.8497.n7.nabble.com/Relational-attributes-vs-regular-attributes-td29946.html 之类的东西并尝试了很多组合..但我仍然有问题! 我也尝试使用两个分类器,高斯过程和 HMM,但它弹出一个错误(weka.classifiers.meta.Stacking: cannot handle binary class)。

任何帮助将不胜感激!

提前谢谢你!! 最好的问候,

【问题讨论】:

    标签: weka gesture-recognition hidden-markov-models


    【解决方案1】:

    mmmm 您正在使用时间序列,但没有序列,我的意思是,假设您有一个向量

    x[] 并且 x 的每个元素都是那个时候 x 的值,你只发布了 x[0],很多次,在你的情况下 x 是一个结构,有

    struct x {
        double x_left_hand;
        double y_left_hand;
        double z_left_hand;
        double x_right_hand;
        double y_right_hand;
        double z_right_hand;
    }
    

    这是正确的,但是手势的时间没有进化,我不知道我是否解释得很好,英语太糟糕了......

    我将向你发布一个我正在研究的小例子,它可能会对你有所帮助

    @relation AUs
    
    @attribute sequences relational
     @attribute  AU0 NUMERIC
     @attribute  AU1 NUMERIC
     @attribute  AU2 NUMERIC
     @attribute  AU3 NUMERIC
     @attribute  AU4 NUMERIC
     @attribute  AU5 NUMERIC
    @end sequences
    @attribute class {01, 01b, 01c, 01d, 02, 02a, 02c, 04, 05, 07, 10, 11, 13, 14, 15, 17, 18, 19, 21}
    
    @data
    "0.5840133,-0.13073722,-0.8034836,0.16867049,-0.30464363,-0.15208732\n....\n0.47603312,-0.10599292,-0.4781358,0.30258814,-0.27299756,0.07913079\n0.5878206,-0.12593555,-0.42014712,0.30809718,-0.33109784,0.013338812\n0.6120923,-0.12400548,-0.3479098,0.26818287,-0.39161837,0.07279621\n0.6180023,-0.11955684,-0.35120794,0.28354084,-0.351862,-0.017126387\n0.6166399,-0.13956356,-0.3506564,0.25470608,-0.34935358,0.025823373\n0.59575284,-0.13704558,-0.42580596,0.24725975,-0.33137816,-0.04043307\n0.5571964,-0.13607484,-0.3777615,0.21615964,-0.35109887,-0.068926826\n0.52844477,-0.10942138,-0.38436648,0.2355144,-0.3238311,-0.06743353\n0.64967036,-0.13547328,-0.28889894,0.21237339,-0.3741229,0.02283336\n0.641207,-0.13648787,-0.35315526,0.27048427,-0.39234316,0.026359601\n0.6241689,-0.14557217,-0.39503983,0.261346,-0.3732989,0.0811597\n0.46664864,-0.092378475,-0.42906052,0.29789245,-0.3076035,0.015037567\n0.528294,-0.19327107,-0.59035814,0.26079395,-0.3222413,-0.022527361\n0.56722254,-0.16849008,-0.4722441,0.2480416,-0.3971509,0.023736712",01
    

    在这个例子中,我们有时间,而不仅仅是一个初始位置。

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2016-04-04
      • 2013-01-01
      • 2018-10-19
      • 2012-12-04
      • 2013-11-30
      • 2013-03-23
      • 2012-03-31
      • 2013-08-13
      • 2013-01-04
      相关资源
      最近更新 更多