【问题标题】:How to engineer features for machine learning [closed]如何为机器学习设计功能[关闭]
【发布时间】:2011-02-10 02:13:21
【问题描述】:

您是否有一些建议或阅读如何为机器学习任务设计功能? 即使对于神经网络,良好的输入特征也很重要。选择的特征会影响所需的隐藏神经元数量和所需的训练样本数量。

以下是一个示例问题,但我一般对特征工程感兴趣。

激励示例: 查看谜题时,什么是好的输入(例如,15-puzzleSokoban)?是否有可能识别出两种状态中的哪一种更接近目标?

【问题讨论】:

    标签: artificial-intelligence machine-learning neural-network classification pattern-recognition


    【解决方案1】:

    良好的特征工程涉及两个组成部分。首先是了解您尝试解决的任务的属性以及它们如何与您正在使用的分类器的优势和局限性相互作用。第二个是实验性工作,您将测试您的期望并找出实际有效的方法和无效的方法。

    这可以反复进行:您对问题的自上而下理解会激发实验,然后您为这些实验学习的自下而上信息有助于您更好地理解的问题。对问题的更深入理解可以推动更多的实验。

    为您的分类器拟合特征

    假设您正在使用一个简单的线性分类器,例如 logistic-regression 或带有线性内核的 SVM。如果您认为可以测量的各种属性之间可能存在有趣的交互并将其作为输入提供给分类器,则需要手动构建并提供捕获这些交互的特征。但是,如果您使用的是具有多项式或高斯核的 SVM,则输入变量之间的交互作用将已经被模型的结构捕获。

    同样,如果某些输入变量的取值范围比其他变量大得多(例如,大多数特征取值 0 或 1,但一个特征取值介于 -1000 和 1000 之间),SVM 的性能也会很差。因此,当您为 SVM 进行特征工程时,您可能希望在将特征值提供给分类器之前尝试对其进行归一化。但是,如果您使用的是 decision treesrandom forests,则无需进行此类归一化,因为这些分类器对于各种特征所采用的值之间的大小差异具有鲁棒性。

    解谜注意事项

    如果您正在考虑解决复杂状态空间的问题,您可能需要使用reinforcement learning 方法,例如Q-learning。这有助于构建涉及通过系统的一系列中间步骤达到某个目标的学习任务。

    【讨论】:

    • 一本书里提到的属性间交互的识别?如何识别输入中缺少某些内容?
    • 大多数统计教科书都应该提到交互。但是,维基百科上有一个很好的概述:en.wikipedia.org/wiki/Interaction_%28statistics%29
    • 至于输入中缺少的内容,我假设您的意思是“我如何知道我是否有足够的正确功能”。如果您将分类器的正则化方式调低,并且训练数据的性能仍然很差,您可能应该尝试集思广益更多特征。但是,当您的训练集表现良好但测试集表现不佳时,您就会过度拟合训练集,您需要移除一些特征和/或启用正则化。
    猜你喜欢
    • 2015-01-27
    • 2010-09-23
    • 2017-12-25
    • 1970-01-01
    • 2013-02-04
    • 2011-06-16
    • 2018-11-16
    • 1970-01-01
    • 2020-03-06
    相关资源
    最近更新 更多