特征请求:在特征选择操作符中,允许指定始终包含的特征

christos_karraschristos_karras 成员职位:50大师
对于特征选择操作符(向前选择、向后消除、优化选择、优化选择(进化)等)来说,能够提供我们一直想要包含的一组初始特征是很有用的。当我们已经有了一个具有基本功能集的工作模型,但是想要考虑添加额外的功能(例如,由于实现复杂性,高CPU/内存使用率等)时,这将是有用的。

在这种情况下,我们不想评估现有的特性集:它们不应该在特征选择操作符的不同迭代中被考虑添加/删除,它们应该一直存在。我们想知道的是,从附加特征的集合中,是否有任何特征能给模型带来显著的改进。我们还希望避免这样的结果:功能选择过程选择了一个昂贵的功能,而不是我们的一个基本功能。

例如,我们可能能够简单有效地计算一个时间窗口内的平均值,但需要更复杂的实现和更高的CPU/RAM使用率来获得中位数或第95百分位(例如,我们可以直接从源系统查询平均值,但需要查询高分辨率的原始数据来计算中位数或第95百分位)。如果没有能力强制执行一组固定的特征,特征选择过程可能会告诉我们,拥有第95个百分位数比拥有平均值更有用,但可能不会告诉我们通过选择第95个百分位数我们获得了什么样的改进(是0.01%的准确性提高,还是10%?)相反,如果我们在特征选择操作符测试的特征集中强制总是包括平均值,那么我们会期望第95个百分位数只有在它明显好于总是在那里的平均值时才会被选中。

为了克服这个特征的缺失,我实现了一个hack,我们将“固定特征”从特征选择操作符中隐藏起来,但是在特征选择的内部过程中训练模型时将它们添加回来。因此,在每次迭代中,我们基于我们的固定特征加上特征选择算子为该迭代选择的剩余特征的子集来训练模型。我将分享这个过程的一个示例,但它只是为了说明功能请求,而不是作为一个真正的解决方案。如果特征选择操作符能够选择一组固定的特征,那么它将更加容易和可维护。我希望能够灵活地为这个集合提供两种方法:
*使用常用的功能规格选项(正则表达式,功能列表,反转选择等)
*使用一个包含我们想要使用的“固定特征”的特征列表的输入ExampleSet。这个ExampleSet的结构类似于我们使用“权重到数据”操作符得到的结构

<?xml version="1.0" encoding="UTF-8"?> <过程version = " 9.6.000”>
> <上下文
<输入/ >
<输出/ >
<宏>
宏观> <
<键> FixedFeaturesRegex关键> < /
< >价值。*意味着$ < /值>
宏观> < /
< /宏>
> < /上下文






<过程扩展= " true " >












< /操作符>

<列出关键= " function_descriptions " >

< / >列表

< /操作符>



<列出关键= " set_additional_roles " / >
< /操作符>

<过程扩展= " true " >
























<过程扩展= " true " >


























< /操作符>






> < /过程
< /操作符>




< /操作符>







> < /过程

< /操作符>















< /操作符>














< /操作符>





< /操作符>






<过程扩展= " true " >




< /操作符>




<列出关键= " key_attributes " >

< / >列表

将当前特征子集(由本次迭代的特征选择操作符选择)加入到"固定特征"中。我们总是想保持
< /操作符>








<过程扩展= " true " >

















< /操作符>





> < /过程
<过程扩展= " true " >

<列出关键= " application_parameters " / >

< /操作符>


< /操作符>










> < /过程
< /操作符>






> < /过程
< /操作符>















生成额外的特征,这些特征可能是昂贵的(复杂的实现,需要额外的数据集成,高CPU或内存使用等)。<br><br>我们希望在最终模型中添加它们,只有当特征选择方法证明它们除了基本特征之外是有用的。并且只添加真正改进模型的附加功能子集
这些属性将在训练模型时始终包含。<br><br>在本例中,我们保留所有的&;默认情况下,因为我们知道它们是简单和有效的计算,并想知道哪些额外的特征带来了改进模型。
正向选择运算符不会意识到固定特征的存在,因此它永远不会尝试将它们排除在外的任何特征组合在一起。<br><br>然而,在运算符内部,我们添加回被排除在外的特征。因此,所有测试的模型都包含这些FixedFeatures.<br>这个过程的结果将是在现有FixedFeatures之上最有用的特性列表
> < /过程
< /操作符>
> < /过程

lionelderkrikor
    登录注册置评。