我收到了一个分析数据集,其中有~100个带有匿名列名的数字列(X1、X2、X3等.)并要求进行二进制分类。基于SVM的分类算法具有较好的分类精度(> 95%),但由于对列没有直觉,除了标准标度、零值替换等外,我无法在特征工程或特征生成方面做更多的工作。
对于如何进行某种自动特性生成,即各种列的简单数学组合以创建新的、有用的特性,是否有任何标准逻辑?这类东西对线性或基于树的模型有任何数学基础吗?或者只有当一个人拥有基于列名的直觉时,功能工程才真正有意义.
发布于 2019-08-31 22:53:01
我想你的问题有很多答案。让我们从一个名为特征工具的工具开始。您可以在优秀的文档中了解更多关于它的内容,但是为了给您一个直觉,考虑一下事务级别上的数据集,即有一行新事务,然后您想要根据客户级别进行预测,您将创建一系列基于事务的特性,例如:
此工具将根据实体集和数据集之间的关系自动化所有这些任务。
现在,考虑一下您的情况,您可以使用scikit中的PolynomialFeatures --学习生成比其他方法更自动化的交互和多项式特性。
尽管如此,根据您的成绩,在一个实际的应用程序中,使用这些方法,或者使用更多的特性来提高性能,都是压倒性的,也是没有用的。我们使用kaggle作为我们的标准培训,我认为这是非常好的,但商业也需要解释,如果他们能够相信的话,他们将乐于使用较少的预测算法。
发布于 2020-07-01 03:52:59
在生成更多特性之前,我认为值得考虑的另一个相关问题是确定哪些列对于分类任务很重要,即改进目标变量的预测。
一种常见的方法是依赖特征重要性分数,但其缺点是只有在训练模式下才能获得分数。为了在训练前猜测哪些特征可以提高对目标变量的预测,我们可以计算特征与目标之间的相关性。请注意,关联计算仅适用于数字特性。为了度量分类特征与数字目标之间的关系,我们需要其他度量,称为关联。您可以在这个好文章中找到更多的信息。
https://datascience.stackexchange.com/questions/56594
复制相似问题