Appearance
特征工程统计量
本页整理题解中已经出现、可迁移到其他题目的手工统计特征与输入表示处理。当前先完整整理 口袋里的运动侦探 的 50 维参考特征,并补充音频、图片题中常用的可解释特征处理。
使用原则
特征统计量不是越多越好。若题目有维度限制,应先生成候选特征,再用交叉验证、特征重要性和稳定性筛选。对时间窗、传感器、音频短窗、图片网格等数据,建议同时覆盖几类信息:
- 幅值强度:区分静止/运动、强弱、能量大小。
- 周期形状:描述重复性、冲击、峰谷、节律。
- 空间结构:描述多轴、多通道或多模态之间的关系。
- 局部结构:描述事件、纹理、字符、主体区域或网格块的局部差异。
时序窗口统计
来源原题:口袋里的运动侦探。
| 统计量 | 计算方式 | 适用场景 | 作用 |
|---|---|---|---|
std | sqrt(mean((x - mean(x))^2)) | 单通道或模长序列 | 描述波动幅度,常用于区分静止和动态动作。 |
rms | sqrt(mean(x^2)) | 有非零偏移的传感器轴 | 同时保留均值偏移和波动强度。 |
iqr | percentile_75(x) - percentile_25(x) | 有尖峰噪声的时序 | 稳健描述中间 50% 波动范围。 |
p90_p10 | percentile_90(x) - percentile_10(x) | 波动主体范围比 IQR 更宽的信号 | 保留大部分动态范围,同时减少极端点影响。 |
mad | median(abs(x - median(x))) | 模长、冲击型信号 | 稳健离散度,适合脚步冲击、设备振动等含尖峰序列。 |
zero_cross | 统计相邻采样点符号变化次数 | 周期摆动、绕零振荡信号 | 衡量正负切换频率,辅助识别节律性运动。 |
差分与局部形状
来源原题:口袋里的运动侦探。
| 统计量 | 计算方式 | 适用场景 | 作用 |
|---|---|---|---|
dx_std | 对 diff(x) 计算标准差 | 加速度、角速度、负荷曲线 | 近似描述变化速度的波动,适合捕捉冲击或突然变化。 |
dx_max_up | max(diff(x)) | 局部陡升明显的信号 | 捕捉窗口内最剧烈的一次上升。 |
dx_max_down | -min(diff(x)) | 冲击后回落、急降信号 | 捕捉窗口内最剧烈的一次下降。 |
dx_pos_mean | 对 diff(x) > 0 的差分求均值 | 有持续上升段的信号 | 描述平均上升速度,弱化单个尖峰影响。 |
n_valleys | 统计局部低点数量 | 周期运动、波形重复任务 | 近似表示周期结构中的谷值次数。 |
valley_mean | 局部谷值取平均 | 非负模长或 jerk 序列 | 描述冲击间隔中的低活动水平。 |
周期性与自相关
来源原题:口袋里的运动侦探。
| 统计量 | 计算方式 | 适用场景 | 作用 |
|---|---|---|---|
autocorr_k | 计算 x[:-k] 与 x[k:] 的相关系数 | 已知可能周期或短滞后的序列 | 在固定滞后上采样周期性和平滑性。 |
autocorr_best | 在一段滞后范围内取最大自相关 | 周期不固定、个体差异大的动作 | 不预设准确周期,寻找最强重复性。 |
autocorr_mean_2_16 | 对多个短滞后自相关求均值 | 动作稳定性、传感器平滑性 | 描述整体短期相似度,降低单一滞后的偶然性。 |
| FFT 频带能量 | 对频谱若干频段求能量或能量占比 | 音频、振动、周期需求、步态 | 把周期强度压缩成低维特征。 |
| 主频/谱熵 | 主频取最大能量频点,谱熵衡量能量分散度 | 周期明显或频率分布有差异的任务 | 区分稳定周期、复杂噪声和宽带瞬态。 |
多轴空间结构
来源原题:口袋里的运动侦探。
| 统计量 | 计算方式 | 适用场景 | 作用 |
|---|---|---|---|
| 二维/三维模长 | sqrt(x^2 + y^2) 或 sqrt(x^2 + y^2 + z^2) | 三轴传感器、空间速度/加速度 | 压缩方向变化,保留整体强度。 |
axis_energy_ratio_i | mean(x_i^2) / sum_j mean(x_j^2) | 多轴传感器 | 描述能量主要落在哪个方向,比原始能量更抗整体幅值缩放。 |
acc_energy_dom_ratio | max(axis_energy) / sum(axis_energy) | 判断是否单轴主导 | 衡量运动或姿态是否由单一方向主导。 |
energy_entropy | -sum(p_i * log(p_i)),p_i 为轴能量占比 | 多轴能量分布 | 压缩表达能量分布均匀度。 |
eig1 | 三轴协方差矩阵最大特征值 | 手机姿态变化、空间轨迹 | 表示最佳空间方向上的最大方差。 |
eig_ratio_1/2 | 协方差特征值排序后求占比 | 判断运动维度结构 | 区分近似一维、二维或分散运动。 |
corr | 两轴去均值后的 Pearson 相关 | 多轴同步变化 | 捕捉同相或反相关关系。 |
maxabs_xcorr | 小范围滞后内取最大绝对互相关 | 多轴有相位差的动作 | 允许一个通道略早或略晚于另一个通道。 |
音频频谱与事件特征
来源原题:MusicArtist、Drum Beat Counter、APOAI T2 Audio、Synthetic Speech。
音频可以先转为短时帧或 mel 频谱,再对时间轴、频率轴和事件峰做统计。小数据、禁止预训练或需要传统模型 baseline 时,手工音频特征通常比直接堆深网更稳。
| 特征处理 | 计算方式 | 适用场景 | 作用 |
|---|---|---|---|
| 波形能量统计 | 对原始波形或短帧计算 RMS、峰值、分位数、静音比例 | 音量差异、静音/噪声区分明显的任务 | 快速描述整体响度和动态范围,可作为频谱特征的补充。 |
| 过零率统计 | 对 waveform 或帧级 zero_crossing_rate 求均值、方差、分位数 | 鼓点、噪声、人声真假、清浊音差异 | 高频噪声、摩擦音、打击瞬态通常有更高过零率。 |
| 频带能量 | 在 STFT/mel 上对低频、中频、高频或领域频带求能量和占比 | 底鼓/军鼓、设备异常声、电话事件 | 用少量特征表达“能量落在哪些频段”,底鼓偏低频,军鼓和噪声偏中高频。 |
| 频带能量差分 | 对频带能量沿时间做 diff、正向增量、最大上升 | onset 检测、敲击计数、短促事件 | 捕捉能量突然上升,比绝对能量更适合检测瞬态事件。 |
| MFCC 统计 | 对 MFCC 各阶求均值、标准差、分位数、delta/delta-delta 统计 | 音色、说话人/艺人、语音真假 | 压缩频谱包络,适合表格模型或与侧向特征拼接。 |
| 谱质心/带宽/rolloff | 用 spectral_centroid、spectral_bandwidth、spectral_rolloff 后再聚合 | 音色明暗、噪声宽窄、乐器/事件区分 | 描述频谱中心、扩散程度和高频覆盖范围。 |
| 谱平坦度/谱熵 | 衡量频谱能量是否尖锐集中或接近噪声 | 合成语音、噪声检测、宽带事件 | 合成伪影、背景噪声和真实语音可能有不同的谱纹理。 |
| 色度/chroma | 12 音级能量统计、主音级、chroma 方差 | 音乐风格、艺人识别、和声差异 | 保留音高/和声信息,适合音乐类任务,不适合纯环境声。 |
| tempo/onset 数量 | onset envelope 峰值检测、BPM 估计、峰间距统计 | 鼓点计数、节奏类音乐分类 | 描述节奏密度和周期稳定性;计数任务可直接作为预测或后处理依据。 |
| log-mel 图统计 | 对 mel 频谱按时间段/频带分块求均值、最大值、标准差 | 固定 mel 输入、CNN 前的轻量 baseline | 把二维谱图压成低维表格特征,也可用于检查模型是否只依赖响度。 |
| 帧级/片段级 pooling | 对帧级特征或 CNN 时间维输出做 mean、max 或 attention 加权汇聚 | clip-level 分类、事件位置不固定的音频 | 把变长或多帧响应压成整段特征/预测;mean 适合持续事件,max 适合短促事件,attention 适合模型自动选择关键时间段。 |
实用做法:
- 长音频先分片,再对每片提取统计量,最后对片级特征做均值、最大值、分位数或概率平均。
- 事件计数类任务优先保留时间结构,例如峰值数量、最小峰间距、局部最大能量和峰宽;不要只做全局均值。
- 对帧级预测或 CNN 输出做 clip-level 汇聚时,持续人声/背景类先试 mean pooling,咳嗽/喷嚏/鼓点等短事件先试 max pooling,事件持续时间和位置差异大时再试 attention pooling。
- 分类类任务可把音频特征与侧向表格特征拼接,但验证切分要按歌曲、原始音频或主体分组,避免片段泄漏。
- 若输入已经是 mel 频谱,仍可把它视作单通道图像做 CNN,也可先做分块统计作为快速 baseline 和错误诊断。
图片几何、颜色与空间特征
来源原题:Chicken Counting、CAPTCHA、Expired、豹猫个体识别、无人机飞控、图文匹配。
图片任务不一定都要端到端 CNN。计数、OCR、网格点击、mask 控制和细粒度识别里,合理的几何/颜色/局部统计可以降低模型负担,也能作为规则后处理或传统模型 baseline。
| 特征处理 | 计算方式 | 适用场景 | 作用 |
|---|---|---|---|
| 灰度/亮度统计 | 对 RGB/HSV/Lab 通道求均值、方差、分位数、直方图 | 光照差异、夜间红外、食品包装、简单图文匹配 | 描述整体亮暗和颜色分布;可帮助发现模型是否被背景/拍摄环境误导。 |
| 颜色比例/主色 | 统计颜色聚类、HSV 区间面积占比、主色数量 | 服饰、食品包装、天气、场景分类 | 对颜色是判别线索的任务有用,但要警惕光照和相机域偏移。 |
| 边缘密度 | Canny/Sobel 后统计边缘像素比例、方向直方图 | OCR、纹理、细粒度斑纹、物体边界 | 描述图像细节密度,适合判断文字区域、纹理丰富度和主体轮廓。 |
| HOG/LBP/纹理统计 | 计算梯度方向直方图或局部二值模式,再分块聚合 | 小图、传统分类、细粒度纹理 | 在小数据或不能用预训练时提供可解释纹理特征。 |
| 连通域统计 | 二值化或 mask 后统计连通域数量、面积、长宽比、圆度 | 计数、OCR 文本块、分割 mask、目标可见性 | 把空间对象转成表格特征,可用于计数、过滤噪声和判断主体是否可见。 |
| bbox/质心/面积 | 对 mask、阈值区域或检测框计算中心、宽高、面积占比、相对画面中心偏移 | 无人机控制、主体裁剪、网格定位 | 将视觉信息转为低维几何状态,常比直接输入整张图更稳、更快。 |
| 网格/分块统计 | 将图像切成固定网格,对每格统计颜色、边缘、mask 面积或目标概率 | CAPTCHA、计数、大图密度不均 | 保留空间分布,适合输出也是网格或数量的任务。 |
| 主体 crop 特征 | 先裁出目标区域,再提取纹理、颜色或 backbone embedding | 细粒度识别、ReID、动物个体识别 | 减少背景捷径,保留斑点、局部纹理等真正判别信息。 |
| OCR 预处理特征 | 灰度化、二值化、形态学、倾斜校正、文本框合并后抽取字符/日期候选 | 日期、票据、包装文字识别 | 把图像问题转成结构化文本抽取和规则判断,通常比图像二分类更可控。 |
| CNN/ViT embedding | 用允许的 backbone 提取倒数层向量,再接传统模型或小 head | 小数据分类、检索、计数回归 | 作为高维视觉特征使用;要确认题面是否允许预训练和外部权重。 |
实用做法:
- 有 mask、检测框或可阈值化区域时,先提几何特征,再决定是否需要 CNN。
- 计数任务要保证裁剪、缩放、分块和标签同步;随机裁剪若改变目标数量,必须调整标签或改用安全增强。
- OCR/规则类任务先把“识别字段”和“业务规则”拆开验证,分别统计文字识别错、字段抽取错和规则计算错。
- 细粒度识别先检查主体占比和背景泄漏;如果模型明显记住背景,优先做主体裁剪、灰度/亮度增强或局部 crop。
分段统计
来源原题:口袋里的运动侦探。
| 统计量 | 计算方式 | 适用场景 | 作用 |
|---|---|---|---|
segN_energy | 把窗口等分,对第 N 段求 mean(x^2) | 动作过渡、非平稳窗口 | 保留强运动发生在窗口哪个位置的信息。 |
segN_std | 把窗口等分,对第 N 段求标准差 | 非平稳短窗 | 补足全局标准差无法表达的局部变化。 |
组合与筛选
来源原题:口袋里的运动侦探。
在强维度预算下,一个稳健流程是:
- 对每个原始通道生成基础统计、差分统计和自相关统计。
- 对有物理意义的通道组生成模长、能量占比、协方差特征值和相关性。
- 加入少量分段统计,覆盖窗口内部过渡信息。
- 对音频/图片加入与题意对齐的频带、事件、网格、mask、OCR 或主体 crop 特征。
- 用分组交叉验证或与评测一致的验证切分筛选候选特征。
- 最终保留低冗余、跨折稳定、对指标有增益的特征。
注意不要在 preprocess_sample 一类单样本接口中使用标签或测试集统计;若需要全局常量,应通过离线训练集无泄漏地固定。