首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >功能工程减少交叉验证

功能工程减少交叉验证
EN

Data Science用户
提问于 2018-10-09 05:30:45
回答 2查看 218关注 0票数 1

我现在在做一套欺诈检测数据集。我正在评估我的训练数据,用一个10码的roc和一个默认的param LightGBM的估计器。但是,问题是,每次我试图通过计算2栏的比率来创建一个新列时,我的简历总是会下降,尽管理论上新列会突显出欺诈与非欺诈之间的区别。

另一个问题是,当我发现两个好的(增加的简历)分离的新特征时,通过特征工程独立评估,我的简历实际上是减少当我把这两个特征在同一个评价。

我的特色工程方法有什么问题吗?现在我的步骤是: 1.在其他列的基础上创建一个新的列。用10倍的默认参数3来评估简历。如果简历增加了(相对于原始数据),那么它是好的特性,否则没有。

任何帮助都是非常感谢的。

EN

回答 2

Data Science用户

发布于 2018-10-09 06:07:00

您可能正在处理过度适合,因为您的模型没有得到很好的概括。值得注意的是,轻型GBM对小数据集中的过度拟合很敏感。

要解决这个问题,您可以检查相关的特性并删除其中的一些特性。另一种解决方案可以是实现特征选择方法。最后,由于GBM是一种树算法,所以可以尝试早期终止。

如果您正在处理高度不平衡的数据,您可以考虑使用分层方法,而不是简历。在sklearn中,有StratifiedKFold和StratifiedShuffleSplit,它们确保在训练阶段和验证阶段都能近似地保持相对的类频率。

票数 1
EN

Data Science用户

发布于 2018-10-18 23:18:28

我认为我有足够的经验,在数据的特性工程为培训的模型在LightGBM。在特性工程中,明智的做法是逻辑上推理您创建的特性以及它们应该如何影响您的模型,就像您所做的那样;您在逻辑上期望这个比率会起作用。然而,结果可能并不像你所期望的那样,正如你现在所经历的那样。

1)处理后一定要可视化您的数据;零的除法可以打破模型,或者通过难以置信的小除数而不是零创建有害的异常值。因此,比率可能是危险的,因为特征替代思想可能会围绕着两者之间的差异、平方差、和、平方和或乘法而变化。

我还建议您通过绘制发行版或使用像pandas.Describe()这样的工具来可视化这些特性的统计属性。然后你就可以看到是否有异常值。(例如,90%的特性分布在10至170范围内,其中一些功能的分布范围超过10 000左右)

2)一个新特性可能会损害您的模型,但是如果将几个新特性组合在一起,您的ML模型就可以显式地看到新的模式。首先在你的脑海中创建特征,然后尝试它们的组合。

3)始终在迭代期间打印您的训练和测试multi_error,verbose_eval = 10是一个可行的参数,您可以将它提供给LightGBM的train()函数;在训练时,您将在每10次迭代中看到训练和测试错误。通过这样做,您将能够通过特性观察性能上的变化,而不需要完成迭代,以及模型是否适合。

希望我能帮上忙。

票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/39404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档