Page 241 - 《应用声学》2025年第1期
P. 241
第 44 卷 第 1 期 武雅琴等: 数据增强和复杂特征优化的类不平衡病理嗓音检测 237
类样本占比超过半数,则该种子样本被标记为边界 病理嗓音数据的识别精度与泛化能力。
样本,视为合成新样本的候选样本。随后,对于每个 本文使用主成分分析将数据可视化到三维空
选定的边界样本,采用线性插值方法,在其与相邻少 间中,对增广前后的数据分布进行了对比。图 3(a)
数类样本之间构造新的合成样本。这一过程重复进 展示了原始数据集的分布情况,不同类别的数据
行,直至生成的合成样本数量达到预设的阈值。此 点呈现出不平衡状态,类别之间的比例差异显著。
策略不仅显著缓解了数据集的类别不平衡问题,还 图 3(b) 则展示了数据增广后的效果:少数类别的数
通过强化边界区域的样本表示,提升了分类模型对 据点显著增加,有效提升了样本的数量。
表 1 改进的 SMOTE 算法流程
Table 1 The workflow of the improved SMOTE algorithm
改进的 SMOTE 数据增强算法
输入: 语声特征数据集 D = {x 1 , x 2 , · · · , x m}; 增强样本数量 Num 0 ; 预设变量 Num; 边界样本 x i
输出: 增强后的语声特征数据 D
1: {步骤 1. 初始化: };
2: Num = 0;
3: { 步骤 2. 判断 seed_sample 是否为边界样本 x i };
4: while Num < Num 0 do
5: 从 D 中选择一个少数类特征样本作为种子样本 seed_sample;
6: 计算 seed_sample 与所有非 seed 样本之间的欧几里得距离;
7: 应用 k 近邻算法,找到 seed_sample 的个最近邻的特征样本;
8: 计算这 k 个最近邻中的多数类样本数量 countNum;
9: if countNum >= k/2 then
10: 将 seed_sample 设置为边界样本 x i ;
11: else
12: goto: 从 D 中选择一个少数类特征样本作为 seed_sample;
13: end if
14: {步骤 3. 生成新样本};
15: 从 x i 的最近少数类邻居中随机选择一个样本 x j ;
16: 使用线性插值生成一个新样本 new_sample:
17: new sample = x i + λ × (x j − x i ); 其中 λ 为 0 到 1 之间的随机数;
18: 将 new_sample 添加到 D 中;
19: Num = Num + 1;
20: end while
ܦࣜ࠵ፇ ܦࣜ࠵ፇ
ܦࣜৌᐛ ܦࣜৌᐛ
ܦࣜඵᐹ ܦࣜඵᐹ
ܦ᳤ࣜკ ܦ᳤ࣜკ
0.6
0.4
0.4
0.2 0.2
፥ए3 0
0 ፥ए3
-0.2 -0.2
-0.4 -0.4
0.6
0.6
-0.4 0.4 -0.4 0.4
-0.2 -0.2 0.2
0 0.2 0 0
0
0.2 ፥ए2 0.2 -0.2 ፥ए2
0.4 -0.2 ፥ए1 0.4
፥ए1
0.6 -0.4 0.6 -0.4
(a) ܙࣹҒ (b) ܙࣹՑ
图 3 增广前后的特征数据分布图
Fig. 3 Feature distribution before and after augmentation