[特征选择] DIscover Feature Engineering, How to Engineer Features and How to Get Good at It 翻译

本文是对Jason Brownlee的特征设计文章的翻译, 原文链接在这里.

 

特征设计是一个非正式话题, 但它毫无疑问被认为是成功应用机器学习的关键.

创建这个导文的时候, 我尽我所能的广泛而深入的学习和分析了所有材料.

你将发现什么是特征设计, 它解决了什么问题, 它为什么重要, 如何设计特征, 谁在这方面做的很好和你可以去哪里学到更多并擅长它.

如果你读一篇关于特征设计的文章, 我希望是这一篇.

"特征设计是另一个话题, 它似乎并不值得在任何评论文章或者书籍, 甚至书中的章节中称誉, 但它绝对是机器学习成功的关键.[...] 很多机器学习的成功实际上是在设计一个学习者可以理解的特征上的成功."

--Scott Locklin

 

特征设计解决的问题

当你的目标是从预测模型中获取最可能优的结果, 你需要最多的从你所有的里面获取.

这包括正从你所使用的算法中得到最好的结果。它还涉及了充分运用数据,为你的算法所用.

 

如何为你的预测建模充分利用数据?

这是特征设计的过程中和实践解决问题。

"其实所有的机器学习算法的成功取决于你如何呈现这些数据。"

 

你获得的结果是你选择的模型, 你所拥有的数据和你准备的特征的一个因素. 即便你对问题的框架和你用于估测准确度的主管方法发挥了作用, 你的结果还决定于许多内部依赖的特性.

你需要强大的能描述你的数据的内在结构的特征.

 

更好的特征意味着灵活性你可以选择"错误的模型"(非最优)并且仍然获得很好的结果. 大多数模型能够获得数据中的好的结构.这个好的特征的灵活性将会允许你选择较少复杂度的模型,能够使运行更快, 理解更简单, 并且维护更简单. 这是非常吸引人的.

更好的特征意味着更简单的模型有了很好涉及的特征,你能够选择"错误的参数"(非最优)并且仍然获得很好的结果, 理由同上. 你不需要很努力的工作来寻找对的模型和最优的参数.

有了很好的特征,你更接近于潜在的问题和你所有的所有数据的一个表达, 并且能够最好的表征这个潜在的问题.

更好的特征意味着更好的结果"我们使用过的算法对于Kagglers是非常标准的. 我们花了大部分时间在特征设计."

--Xavier

 

什么是特征设计?这是一个特征设计的定义:

" 特征设计是一个把原始数据转换成特征的过程, 这些特征能够更好地理解预测模型的潜在问题, 从而获得对未见数据的更好地模型精度."

你可以看到定义中的依赖关系:

  • 你选择的性能检测方法(RMSE? AUC?)
  • 问题的框架(分类? 回归?)
  • 你使用的预测模型(SVM?)
  • 你已经选择和准备的原始数据(样本?格式?清洗?)

"特征选择手动设计输入的x应该是什么"

--Tomasz

 

特征选择是一个表达问题

机器学习算法从样本数据中学习问题的一个解.

在这个环境下,特征选择问: 什么是样本数据学习问题的解的最好的表达?

这是深刻的. 做好机器学习, 甚至在人工智能中一般都回归到表达问题. 它是很难的事情, 可能知道最优表达是不可知的.

"你必须把你的输入转化成算法能够理解的事物."

--Shayne

特征学习是一种艺术

像工程是一门艺术, 编程是一种艺术, 药物是一种艺术一样, 它也想一种艺术.

有明确定义的流程,都有条不紊,可证明和理解.

数据是一个变量, 每次都不相同. 你在实践中善于决定使用哪个流程,何时使用. 通过实验学习.

 ===============未完待续

posted @ 2016-03-30 06:19  快乐的猫  阅读(689)  评论(0编辑  收藏  举报