使用加速度数据为在线驾驶风格分类寻找合适的方法
监督与无监督学习
您首先需要决定是否将此作为一个问题来supervised处理unsupervised learning。
对于supervised learning,您需要获取部分数据并将其手动评分为苛刻/激进和正常。我建议你不要走这条路开始。但是,如果您这样做,我建议support vector classifier您使用 a 进行初始测试。
我建议将其视为一个unsupervised learning问题。假设您倾向于成为一个正常/安全的驾驶员,您可以将这种行为视为正常和苛刻/激进的驾驶,如 aanomaly或 a outlier。这称为异常值检测。
特征工程
Feature engineering将在这个问题上发挥重要作用。尽管您注意汽车的纵向和横向轴线,但手机在汽车内的方向是任意的,即它只会放在您的口袋里。因此,最好在一定程度上确定方向。
首先,我会找到加速度矢量的长度(加速度的大小,不考虑其方向)。由于您有三个正交轴,因此您可以使用:
此外,您还可以随时间积分加速度矢量并求其大小以求出车速:
其中
速度对于确定不同加速模式之间的差异非常有用,例如,绕圈行驶会产生恒定的加速度,但也有恒定的速度与按住油门踏板并直线行驶,这可能会随着速度的变化而产生恒定的加速度。
这种方法的一个重要方面在于,数据的积分往往会抑制噪声,而导数(差异)往往会放大噪声。 不要对您的数据进行衍生。
异常值检测
此时,您可以对速度和加速度幅度进行归一化,并找到这两个值的平均值和标准差。当您的标准化速度和加速度幅度超出某个 z 值(例如两个标准偏差)时,您可以将您的驾驶归类为危险驾驶。
不要忘记将速度和加速度视为正交值,并根据各自的 z 值形成一个循环函数,以进行正确的异常值检测。您可以在此处阅读有关 2D 或 nD 异常值检测的信息
请记住,圆的方程是:
因此,我们可以求解并将其设置为等于标准差。
顺便说一句,请注意,由于方差只是标准差的平方,因此您也可以根据方差来考虑这一点。
现在对于两个标准偏差,如果出现以下情况,驾驶是激进的:
在线学习组件只需要您不断更新均值和标准差。不过,我建议以某种批处理模式而不是连续进行。
希望这可以帮助!
