【问题标题】:How to use sample weighting in RandomizedSearchCV?如何在 RandomizedSearchCV 中使用样本加权?
【发布时间】:2014-08-28 07:43:47
【问题描述】:

我正在使用 python 中的 scikit learn 库,我想在使用 RandomizedSearchCV 进行交叉验证期间对每个样本进行加权。当我尝试这段代码时:

search = RandomizedSearchCV(estimator, param_distributions,
                                    n_iter=args.iterations,
                                    scoring=mae_scorer, n_jobs=8, refit=True,
                                    cv=KFold(X_train.shape[0], 10, shuffle=True,
                                             random_state=args.seed), verbose=1,
                                    random_state=args.seed,
                                    fit_params={'sample_weight': sample_weight})

出现以下错误:

AttributeError: 'list' object has no attribute 'copy'

值得一提的是sample_weight是一个浮点数列表,包含每个类的权重。有办法解决这个问题吗?

【问题讨论】:

  • 您是如何生成此列表的?通常 scikit learn api 通常接受 numpy 数组作为数据,所以要么传递它,要么从你的列表中创建一个
  • 谢谢@EdChum。我也检查了numpy.asarray(sample_weight),但我收到了这个错误:ValueError: non-broadcastable output operand with shape (1118,1) doesn't match the broadcast shape (1118,1006)你知道吗?
  • 尝试隔离问题,没有 KFolds 是否可以工作?它是否适用于其他训练模型?检查您传递的参数类型,这些与在线文档和代码示例相比如何?尝试所有这些,看看你的进展如何,目前很难说,但我的建议应该会有所帮助
  • @EdChum 我认为问题出在k-fold。因为当我将折叠数从 10 更改为 2 时,错误的数字从 1006 更改为 559。你知道我应该如何解决这个问题吗?
  • 不确定,希望 scikit-learn 开发人员之一会看到并发表评论。

标签: python machine-learning scikit-learn cross-validation


【解决方案1】:
search = RandomizedSearchCV(estimator, param_distributions,
                                    n_iter=args.iterations,
                                    scoring=mae_scorer, n_jobs=8, refit=True,
                                    cv=KFold(X_train.shape[0], 10, shuffle=True,
                                             random_state=args.seed), verbose=1,
                                    random_state=args.seed
                             )

search.fit(X_train, np.ravel(y_train) 
              ,sample_weight=our_sample_weight
             )

这样的东西适用于我的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-10
    • 1970-01-01
    • 2015-03-26
    • 2019-12-24
    • 2019-08-02
    • 2021-06-22
    相关资源
    最近更新 更多