Answers:
您不需要领域知识(即您的数据含义的知识)即可进行功能工程(查找框架中更具表现力的方式)。
正如Tu N.解释的那样,您可以找到功能的“快速而肮脏”的组合,这些组合可能非常容易帮助。给定输出和单个特征,可以进行以下变换,。快速检查转换的有效性是之间的相关性是否高于之间的相关性。X X ' ∈ { é X,日志(X ),X 2,X 3,的tanh (X )} { Ý ,X ' } { ÿ ,X }
关于关联的警告:关联不会显示所有内容,并且取决于您使用的模型(高度非线性,例如NN或RF)以及与其他变量的交互作用,关联的变化可能没有任何意义。
但是,如果您使用诸如Logistic回归之类的简单线性模型,则这是性能的确定指标。正如Fokhruz Zaman所指出的那样,评估这种转换的最佳方法是建立一个带有或不带有您转换后的特征的模型,并查看(在交叉验证时)验证误差的演变情况。
这样很容易发现单一功能的转换。这些适用于大量数据,其中输入和输出之间更具表达力的关系可能具有不同的规模。例如,收入和“幸福”之间的关系似乎是对数的,但是您永远不会直接记录参与者收入的对数。
查找功能组合比较困难。首先,如果要测试每个添加的2个功能,并且您具有功能,测试转换的顺序。为了找到这样的变换,您可以对问题应用非线性模型(例如NN或RF),并尝试查看它正在学习的内容。如果可以确定NN中的中间层在做什么,则可以预先计算其结果并将其添加为新功能。它不需要再次计算,并且可能会尝试学习新知识。D 2
可能难以解释NN的内部表示,甚至难以解释随机森林中的特征重要性。为此目的,一种更简单,可能更合适的方法是使用决策树进行增强。有很多实现Boosting的库,如果您似乎暗示着您参加Kaggle竞赛,那么XGBoost似乎被很多参与者使用,因此您可能会找到一些关于我将要描述的帮助/教程。
首先,仅使用树桩(1级决策树)运行提升算法。树桩非常薄弱,但是Boosting使它成为一个合理的模型。这将作为您的基准。根据所使用的库,您应该能够很容易地显示出最常用的功能,并且应根据响应对它们进行绘制(如果响应是分类的,则可以进行直方图绘制)以识别某种模式。这可能使您对什么是好的单个功能转换有一个直观的认识。
接下来,使用2级决策树运行Boosting算法。这个模型比以前的模型复杂得多。如果将两个变量加在一起比单独使用具有更大的功效,则该模型应优于您先前的模型(同样,不是训练错误,而是验证错误!)。基于此,您应该能够提取经常一起使用的变量,并且这将导致您进行潜在的多功能转换。
在相关材料上,我建议以下视频易于观看
您能否以具体示例进一步说明以下内容?
The dataset has around 100 features and all are unknown (in terms of what actually they represent). Basically they are just numbers.
我不确定在不了解数据集和给定属性的情况下如何进行特征工程!
表格数据是根据由变量或属性(列)组成的观察值或实例(行)来描述的。属性可以是功能。
“特征的概念与属性分开,在问题的上下文中更有意义。特征是对您的问题有用或有意义的属性。它是用于了解特征结构的观察的重要部分。正在建模的问题。
在计算机视觉中,图像是观察值,但特征可能是图像中的线条。
在自然语言处理中,文档或推文可能是观察对象,而短语或字数可能是功能。
在语音识别中,发声可能是一种观察,但功能可能是单个单词或音素。”
请访问以下网址以获取更多信息: