【问题标题】:advanced feature extraction for cross-validation using sklearn使用 sklearn 进行交叉验证的高级特征提取
【发布时间】:2013-05-29 06:56:34
【问题描述】:

给定一个包含 1000 个样本数据的样本数据集,假设我想对数据进行预处理以获得 10000 行数据,因此每个原始数据行都会导致 10 个新样本。此外,在训练我的模型时,我也希望能够执行交叉验证。 我拥有的评分函数使用原始数据来计算分数,因此我希望交叉验证评分也适用于原始数据而不是生成的数据。由于我将生成的数据提供给训练器(我使用的是 RandomForestClassifier),因此我不能依靠交叉验证来根据原始样本正确拆分数据。

我想做什么:

  • 创建自定义特征提取器以提取特征以提供给分类器。
  • 将特征提取器添加到管道并将其馈送到例如 GridSearchCv 中
  • 实现一个自定义评分器,该评分器对原始数据进行操作,以便在给定一组选定参数的情况下对模型进行评分。

对于我想要完成的事情,有更好的方法吗?

我问这个与现在在Kaggle上进行的比赛有关

【问题讨论】:

    标签: scikit-learn feature-extraction cross-validation


    【解决方案1】:

    也许您可以在扩展样本上使用分层交叉验证(例如,分层 K 折叠或分层随机拆分),并将原始样本 idx 用作分层信息,并结合自定义评分函数,该函数将忽略模型评估。

    【讨论】:

    • 我会试一试的。感谢您的回答奥利维尔!
    • 由于我的评分函数需要对每个样本进行评分(因此所有生成的样本都属于该样本),因此在生成的样本上使用 StratifiedKfold 是否有害,因为生成的折叠可能由样本的不同部分而不是全部一起?
    猜你喜欢
    • 2015-06-11
    • 2021-11-24
    • 2016-02-11
    • 2018-11-28
    • 2018-10-02
    • 2020-07-10
    • 2013-12-13
    • 2017-06-19
    • 2015-11-13
    相关资源
    最近更新 更多