贪心法有两个缺点:一个是结果很可能不是最优解;另一个是结果不唯一。 优点也是明显:克服了组合爆炸或不可穷尽的问题,能在有限的时间里得到一个较好的或可接受的结果。
子集搜索与评价
前一章我们学过了降维,那是通过变换将 d d d维向量转换成 d ′ d' d′维,在变换过程中,原来的 d d d维都参与了运算。 这里,我们再学习“删维”:将与任务不太相关的属性去掉。 注意“降维”与“删维”的区别,虽然二者的目的都是使属性变少,但前者变换后的属性已不是原来的属性了。
“删维”就是要保留重要的属性(特征),这就是特征选择问题。
回顾决策树算法,每一个分叉处都是要通过某个度量指标选择一个特征,这样生成的树实际上也对特征(属性)进行了一个排序,依这个排序,取前 d ′ d' d′个特征,即使得样本从 d d d维变为 d ′ d' d′维(对应为树的深度减小了)。 该原理可以推广到一般。
特征选择的两个环节:
- 子集搜索:这就是让子集变化,从而找到合适的子集。 显然,因组合爆炸而不可能试验所有子集,故采取“微调”方式:从一个小子集出发,让子集逐渐长大,即每次优选一个元增加进去,这称为向前搜索;或者从全集出发,让子集逐渐变小,即每次优选一个元减掉,这称为向后搜索。
- 子集评价:在上述搜索过程中,需要判断增加(或减少)哪个元才是当前的最优。 通常是用信息增益进行评价。
上述子集搜索策略,与其说是“贪心的”不如说是“短视的”,例如:在 { a 2 , a 4 } \{a_2,a_4\} {a2,a4}时,选择下一个最优 a 5 a_5 a5,得子集 { a 2 , a 4 , a 5 } \{a_2,a_4,a_5\} {a2,a4,a5},若 { a 2 , a 4 , a 5 , ∗ } \{a_2,a_4,a_5,*\} {a2,a4,a5,∗}比 { a 2 , a 4 , a 6 , a 8 } \{a_2,a_4,a_6,a_8\} {a2,a4,a6,a8}差,则因没选出 { a 2 , a 4 , a 6 } \{a_2,a_4,a_6\} {a2,a4,a6}(它比 { a 2 , a 4 , a 5 } \{a_2,a_4,a_5\} {a2,a4,a5}差)而搜索不到 { a 2 , a 4 , a 6 , a 8 } \{a_2,a_4,a_6,a_8\} {a2,a4,a6,a8}。 在生活中也有这样的例子:设以下山作为目标,“短视”者只看到当前的“局部”,而选择直接向下走,不会看到先翻过一个坡会下降到更低。 其实,这也是自然界法则:流水是“贪心”地、“短视”地向下流动。
贪心法有两个缺点:一个是结果很可能不是最优解(流水归大海是最优的,堵在湖泊里是次优);另一个是结果不唯一,这是由于出发点不同而导致的(不同的水源流入不同的湖泊)。 优点也是明显:克服了组合爆炸或不可穷尽的问题,能在有限的时间里得到一个较好的或可接受的结果(找到一个湖泊)。
特征选择实际上就是“删维”问题,后续将对过滤式选择算法进行详解。
而“删维”又可通过“稀疏”来实现,后续将结合
L
1
L_1
L1正则化(LASSO算法)详细讲解近端梯度下降。
现实中许多问题本身就是稀疏表达(如,文档向量),这类问题的求解即为稀疏学习,后续以词频表实例引入词典学习,并详解如何采用变量交替优化策略进行求解,涉及近端梯度下降(PGD)和KSVD算法,其中,“稀疏”对应于矩阵的“低秩”。
本文为原创,您可以:
- 点赞(支持博主)
- 收藏(待以后看)
- 转发(他考研或学习,正需要)
- 评论(或讨论)
- 引用(支持原创)
- 不侵权