首页 文章

如何设计机器学习功能[关闭]

提问于
浏览
32

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

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

A motivation example: 在观看拼图时会有什么好的输入(例如,15-puzzleSokoban)?是否有可能认识到哪两个国家更接近目标?

1 回答

  • 48

    良好的特征工程涉及两个组件 . 首先是了解您尝试解决的任务的属性以及它们如何与您正在使用的分类器的优势和局限进行交互 . 第二个是实验性工作,您将测试您的期望并找出实际工作和不工作的内容 .

    这可以迭代完成:您对问题的理解会激发实验,然后您为这些实验学到的信息可以帮助您更好地理解问题 . 对问题的更深入理解可以推动更多实验 .

    Fitting Features to Your Classifier

    假设你使用的是一个简单的线性分类器,如logistic-regression或带有线性内核的SVM . 如果您认为可以测量并提供给分类器的各种属性之间可能存在有趣的交互,那么您将使用具有多项式或高斯核的SVM,输入变量之间的交互将已经被模型的结构捕获 .

    类似地,如果某些输入变量具有比其他变量具有更大范围的值,则SVM可以表现不佳(例如,大多数特征采用值0或1,但是一个特征采用-1000和1000之间的值) . 因此,当您为SVM进行特征工程时,您可能希望在将特征值提供给分类器之前尝试对其进行规范化 . 但是,如果您使用decision treesrandom forests,则不需要进行此类归一化,因为这些分类器对于各种功能所采用的值之间的大小差异很稳健 .

    Notes Specifically on Puzzle Solving

    如果您正在寻找解决复杂状态空间的问题,您可能希望使用像Q-learning这样的reinforcement learning方法 . 这有助于构建学习任务,包括通过系统的一系列中间步骤达到某个目标 .

相关问题