Scikit-learn:根据多个测试样本计算可能性

时间:2014-01-09 18:21:58

标签: python scikit-learn

我正在使用scikit学习构建GMM分类器。为了测试,我使用包含大量行的文件X,每行代表一个特征向量[x,y,z]。

例如:

[1,2,3]
[2,2,3]
[4,4,5]
...

我为每一行分配了一个相应的类标签。当我使用scikit-learn score()函数时,它计算X中每个数据点的日志概率。对于我的应用程序,这不是很有用,因为我的文件中的每个测试样本代表一个运动框架和基于单个框架的识别不准确。相反,我想使用更多数量的帧(样本)进行测试,并根据样本组而不是单个样本计算对数似然。通过这种方式,我可以通过观察30秒的动作来识别一个人,而不是看一个非常短的单一时间帧。 scikit-learn有可能实现这个目标吗?

1 个答案:

答案 0 :(得分:0)

如果我正确理解了这个问题,你想要在运行估算器之前采取各种行或“运动框架”并将它们合并为数字表示形式?所以从你的例子中可以看出:

[1,2,3]
[2,2,3]
[4,4,5]

您可能需要最终表示,例如从state_0到state_n的方向性差异或进度的count1,count2,count3。给定示例数据,最后一步可能是3,2,2,因为这是与最终状态和开始状态的差异。这并不能捕捉沿途表达的波动或变化,但需要这样的数据:

[1,2,3]
[10,6,1]
[3,3,5]
[1,0,6]
[2,2,2]

最终指标是1,0,1,它不会传达或捕捉任何波动。您是否允许使用协方差矩阵使用方差列/特征明智?

您可以考虑使用30帧(行/观察)的示例来检查统计数据:

>> import numpy as np 
>>> data = np.array([
...     [1, 2, 3],
...     [2 ,2, 3],
...     [4, 4, 5],
...     ...........
...     [3, 3, 3]])
>>> np.argmax(np.var(data, axis=1)) #var, mean, std, etc