从系列:应用机器学习
亚当Filion,MathWorks公司
探索如何执行特征工程,这是一种将原始数据转换为适合于机器学习算法的特征的技术。
特性工程开始于你 最佳猜测 特性可能会影响什么动作你试图预测。之后,这是一个迭代的过程,您创建的新特性,将它们添加到您的模型,看看你的结果有所改善。
此视频提供了该主题的高度概括,它使用了几个例子来说明功能的工程背后的基本原理和方法建立从信号,文本和图像中提取的特征。
机器学习算法并不总是对原始数据有效。作为工程师和科学家,我们的部分工作就是转换原始数据,使系统的行为更容易被机器学习算法发现。这被称为功能工程。
特性工程从您对什么特性可能影响您试图预测的事物的最佳猜测开始。在此之后,这是一个迭代过程,在此过程中,您创建新特性,将它们添加到您的模型中,并查看结果是否得到了改进。
让我们举一个简单的例子,我们要预测一个航班是否将要被延迟或不。
在原始数据,我们有信息,如飞行,目的地,和星期的一个月。
如果我适合决策树只是这个数据,我会得到70%的准确度。我们可以从这些数据计算出些什么,这可能有助于改善我们的预测?
那么,每天飞行的次数是多少呢?有些日子的航班比其他日子多,这可能意味着它们更有可能被延误。
我已经从我的应用程序的数据集此功能,所以让我们添加它和再培训的模式。你可以看到模型的精度提高到74%。不坏只是增加一个功能。
特征工程经常被称为创作过程中,以上的艺术而非科学的。有做不正确的做法,但如果你有专业知识和数据的深入了解,你会在一个很好的位置,执行功能的工程。正如您稍后将看到的,用于功能工程技术的事情,你可能已经很熟悉了,但在此之前环境下,你可能没有想到他们。
让我们看另一个更有趣的例子。在这里,我们试图通过对心脏发出的声音进行分类,来预测心脏的行为是否正常。
声音以音频信号的形式出现。我们可以设计特性,然后使用这些值来训练模型,而不是对原始信号进行训练。
近日,深学习方法越来越受欢迎,因为它们需要较少的手动功能的工程。但是,这些功能被学习为训练过程的一部分。虽然这常常表现出非常乐观的结果,深度学习模型需要更多的数据,需要更长的时间来培训,并将得到的模型通常比如果你要手动工程师功能少解释。
我们用来区分心音的特征来自于信号处理领域。我们计算了偏度、峰度和主导频率。这些计算提取的特征使模型更容易区分异常的心音和正常的心音。
那么人们还使用其他什么功能呢?许多人使用传统的统计技术,比如平均值、中位数和众数,以及一些基本的东西,比如计算事情发生的次数。
很多数据都有一个与之相关联的时间戳。您可以从时间戳中提取许多特性,这些特性可能会提高模型性能。是几月几号,几号星期几号,几号小时几号?是周末还是假日?这些特征在决定人类行为方面起着重要作用,例如,如果你试图预测人们使用了多少电。
另一类特性工程与文本数据有关。计算某个单词在文本中出现的次数是一种技术,通常与术语频率-文档频率-反向文档频率等规范化技术相结合。Word2vec是另一种流行的文本特征工程技术,它将单词转换为高维向量表示。
我要讲的最后一门技术与图像有关。图像包含大量的信息,因此您经常需要提取重要的部分。传统的技术计算颜色的直方图或应用变换,如Haar小波。最近,研究人员开始使用卷积神经网络从图像中提取特征。
根据您正在使用的数据类型,它可能是有意义的使用各种我们所讨论的技术。特点工程是一个试错的过程。要知道只有这样,如果一个特征是什么好是将其添加到模型并检查它是否提高的结果。
包裹起来,那是功能工程的简要说明。我们有我们的网站有更多的例子,所以检查出来。