关于机器学习实战,那些教科书里学不到的12个“民间智慧”
由于固定大小的训练集覆盖了输入空间的一小部分(可能的组合变得巨大),因此随着示例的维度(即特征的数量)的增长,正确泛化的难度呈指数级增加。但这就是为什么机器学习既有必要又有难度。正如你在下图所示,即使我们从1维过渡到3维,能够分辨出不同示例的工作似乎开始变得越来越难——在高维度上,所有示例都开始相似。 这里的一般问题是,我们来自三维世界的直觉使我们在高维度上失败。例如,高维度橙色的大部分体积都在外部,而不是内部! 令人难以置信的是:如果恒定数量的示例在高维超立方体中均匀分布,并且如果我们通过将其刻在超立方体中来近似超球面,则在高维度中,超立方体的几乎所有体积都在超球面之外。这是个坏消息。因为在机器学习中,一种类型的形状通常由另一种形状近似。 澄清注意:如果你对所有“夸大其词”感到困惑,超立方体内部的超球面看起来像是这样的二维和三维: 因此,你现在可以理解,构建2维或3维分类器很容易,但在高维度上,很难理解发生了什么。反过来,这使得设计好的分类器变得困难。事实上,我们经常陷入这样的陷阱:认为获取更多特征不会带来负面影响,因为在最坏的情况下,它们不会提供关于类的新信息。但事实上,维度的诅咒可能会超过它们的好处。 启示:下次当你考虑添加更多特征时,请考虑当你的维度变得太大时可能出现的潜在问题。 6. 特征工程是关键 当一天结束时,所有机器学习项目中有成功的,也有失败的。它们之间有区别呢?这个不难想到,最重要的因素就是使用的特征。如果有许多独立的特征,并且每个特征都与类的相关性很好,那么机器学习就很容易。相反,如果类是需要通过复杂方式处理特征后才能被使用,那么事情就变难了,这也就是特征工程——根据现在输入的特征创建新的特征。 通常原始数据格式基本不能为建模所用。但你可以从中构建可用于学习的特征。事实上,这是机器学习项目中的最花精力的部分。但这也是最有趣的部分之一,在这里直觉、创造力和“小技巧”与技术是同样重要的东西。 经常会有初学者惊讶一个机器学习项目中花费在训练上的时间竟如此之少。但是,如果考虑收集数据,整合数据,清理数据并对其进行预处理的时间以及在特征选择上的试错次数,这个时间就相对合理。 更何况,机器学习在构建数据集和运行学习样例上不是一次性的过程,而是一个迭代的过程,需要运行学习样例,分析结果,修改数据或学习样例,以及重复上述过程。训练往往是最快的部分,但那是因为我们对这部分相当熟练!特征工程很难,因为它是专业领域的,不过学习器在很大程度上是通用的。当然,机器学习界的梦想之一就是提高特征工程的自动化程度。 7. 丰富的数据胜过聪明的算法 假设你已经构建了一组最好的特征,但是你得到的分类器仍然不够准确。你现在还可以做什么?有两个主流的办法: 设计更好的机器学习算法或者是收集更多数据(更多样例,可能还有更多原始特征)。机器学习研究人员会去改进算法,但在现实中,通往成功的最快途径往往是获取更多数据。 根据经验,具有大量数据的傻瓜算法胜过一个具有适度数量的聪明算法。 (编辑:西安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |