符号回归中的遗传编程特性与算法扩展
1. 变量频率与相关性
在处理如Friedman问题这类多变量函数时,变量频率分析是一项重要的工作。以一个包含10个变量(x1 - x10)的简单函数为例,通过观察在50代进化过程中种群里各变量的相对引用次数(即相对变量频率),可以发现遗传编程(GP)能够快速识别出与预测因变量相关的变量。在这个问题中,x1 - x5是预测因变量所必需的,而x6 - x10则并非必要。这一结果表明,不同变量集的使用情况可作为判断某些变量是否冗余或相关的指标。
2. 模型复杂度
模型复杂度是值得跟踪和可视化的重要属性,主要分为结构复杂度和语义复杂度:
- 结构复杂度 :指表达式或其树表示的复杂程度。在进化过程中,树表达式可能会变得非常大,甚至达到设定的大小限制,还可能出现冗余,如代码膨胀和内含子。结构复杂度的衡量相对容易,可从编码表达式中计算得出,常见的指标包括树的大小、树的深度、变量引用次数、非线性函数的数量以及变量交互的最大数量等。此外,还有一些用于评估表达式可读性或可解释性的结构复杂度指标,如递归复杂度度量会对非线性函数的嵌套进行惩罚,访问长度则考虑树的形状,更倾向于规则的树。
- 语义复杂度 :是指表达式输出(即函数)的复杂程度。语义复杂度的增加会提高过拟合的风险。然而,语义复杂度较难估计,因为它需要计算表达式在有限训练数据甚至整个(无限)输入域上的输出复杂度。直观上,一个函数如果有许多局部最优解或高曲率点,则被认为是复杂的,尤其是对于多变量函数,这些属性的计算更为困难。语义复杂度的例子包括函数的非线性程度(Vladislavleva等人,2009)或单变量
超级会员免费看
订阅专栏 解锁全文
21

被折叠的 条评论
为什么被折叠?



