使用加速度数据为在线驾驶风格分类寻找合适的方法

数据挖掘 r 分类 时间序列 爪哇 在线学习
2022-02-27 07:31:43

我在车里使用智能手机来收集加速度数据(纵向和横向)。现在,我想根据加速、制动和转弯施加的加速力对我的数据进行实时分类。

有没有合适的方法来做这种在线分类?还有一个人如何确定是“苛刻/激进”还是“正常”的驾驶风格?

在此处输入图像描述

1个回答

监督与无监督学习

您首先需要决定是否将此作为一个问题来supervised处理unsupervised learning

对于supervised learning,您需要获取部分数据并将其手动评分为苛刻/激进和正常。我建议你不要走这条路开始。但是,如果您这样做,我建议support vector classifier您使用 a 进行初始测试。

我建议将其视为一个unsupervised learning问题。假设您倾向于成为一个正常/安全的驾驶员,您可以将这种行为视为正常和苛刻/激进的驾驶,如 aanomaly或 a outlier这称为异常值检测

特征工程

Feature engineering将在这个问题上发挥重要作用。尽管您注意汽车的纵向和横向轴线,但手机在汽车内的方向是任意的,即它只会放在您的口袋里。因此,最好在一定程度上确定方向。

首先,我会找到加速度矢量的长度(加速度的大小,不考虑其方向)。由于您有三个正交轴,因此您可以使用:

||a||=ax2+ay2+az2=a

此外,您还可以随时间积分加速度矢量并求其大小以求出车速:

speed=||v||=vx2+vy2+vz2=v

其中

v(t)=startoftripta(t)

速度对于确定不同加速模式之间的差异非常有用,例如,绕圈行驶会产生恒定的加速度,但也有恒定的速度与按住油门踏板并直线行驶,这可能会随着速度的变化而产生恒定的加速度。

这种方法的一个重要方面在于,数据的积分往往会抑制噪声,而导数(差异)往往会放大噪声。 不要对您的数据进行衍生

异常值检测

此时,您可以对速度和加速度幅度进行归一化,并找到这两个值的平均值和标准差。当您的标准化速度和加速度幅度超出某个 z 值(例如两个标准偏差)时,您可以将您的驾驶归类为危险驾驶。

不要忘记将速度和加速度视为正交值,并根据各自的 z 值形成一个循环函数,以进行正确的异常值检测。您可以在此处阅读有关 2D 或 nD 异常值检测的信息

请记住,圆的方程是:

r2=a2+v2

因此,我们可以求解并将其设置为等于标准差。r2

顺便说一句,请注意,由于方差只是标准差的平方,因此您也可以根据方差来考虑这一点。

现在对于两个标准偏差,如果出现以下情况,驾驶是激进的:

(vμvσv)2+(aμaσa)2>2

在线学习组件只需要您不断更新均值和标准差。不过,我建议以某种批处理模式而不是连续进行。

希望这可以帮助!