门槛从来不在算法上,而在「把设备吐出来的字节,变成一张能训的表」。
如果你手上有设备读数,想训一个「识别动作 / 判断状态」的模型, 传统的路线要过三道关:
这三关里,只有第三关是「机器学习」。前两关是纯工程,而且是最耗时间、 跟你的业务最没关系的那部分。所以真正值得省掉的不是算法,是前两关。
用图形界面走一遍是这样的(每一步后面是这一步真正会卡人的地方):
第 ③ 步是真正的瓶颈,不是训练。训练点一下就跑,打标要人一条条看。 所以能自动分段的工具(按信号能量变化把连续数据切成「动作段」再逐段打标) 省下的时间,比换个更快的训练引擎多得多。
另外两个新手最常踩的坑:
训练档位本质是在回答一个问题:「我愿意花多少时间去找模型」。 时间给得多,它会试更多候选、还可能做集成(把多个模型组合投票),通常更准,但也更慢、更大。
下面这组数字来自一份公开教学数据集(UCI HAR 的动作识别子集)的实测记录, 同一份数据、只改档位:
| 档位 | 耗时 | 最佳模型 | 验证得分 | 模型体积 |
|---|---|---|---|---|
| 速度优先 | 约 51 秒 | LightGBMXT | 约 93.1% | 约 3.4 MB |
| 均衡 | 约 94 秒 | WeightedEnsemble_L2 | 约 95.4% | 约 75.0 MB |
请重点看后两列,而不是只看准确率。准确率只涨了 2.3 个百分点, 代价是时间翻近一倍、体积大了约 22 倍。
「更高准确率」不是免费的,要问值不值。如果这个模型最后要跑在一个 只有几百 KB 可用空间的单片机上,那速度优先那一档才是合理起点—— 甚至还需要进一步压缩。
训练跑完拿到一个 93% 的分数——这个模型现在能用了么? 这是最容易搞错的一步,见 《93% 的准确率说明不了什么》。