机器学习得分函数

关于sklearn中GridSearch等中中scoring参数,有两个问题,一个问题关于一些不可能为负数的指标输出的误差有负数,说明其中做了一些处理,至于怎么处理的还没看懂,留着有空了看一下。还有一个问题是格网调参的时候的cv参数。

问题1:非负指标有负数,做了什么处理为什么这么处理。

参考链接:https://stackoverflow.com/questions/21050110/sklearn-gridsearchcv-with-pipeline

https://stackoverflow.com/questions/26282884/why-is-the-logloss-negative?noredirect=1&lq=1

https://stackoverflow.com/questions/21443865/scikit-learn-cross-validation-negative-values-with-mean-squared-error?noredirect=1&lq=1

问题2:自己定义得分函数(得分和损失函数),比较重要的一点是注意指标是越大越好还是越小越好,需要使用一个参数greater_is_better指定。

参考链接:

https://scikit-learn.org/stable/modules/generated/sklearn.metrics.make_scorer.html

https://scikit-learn.org/stable/auto_examples/model_selection/plot_multi_metric_evaluation.html#sphx-glr-auto-examples-model-selection-plot-multi-metric-evaluation-py

问题3:cv参数有四种情况:

  • None, to use the default 5-fold cross validation,

  • integer, to specify the number of folds in a (Stratified)KFold,

  • CV splitter,

  • An iterable yielding (train, test) splits as arrays of indices.

主要针对最后一种,可以自定义一个迭代器,每次输出训练集和测试集的下标。针对我使用的神经网络这种有随机模型需要针对一个数据集运行多次,这样只需要构造一个迭代器每次输出都是同一个数据集,这样就达到了重复多次的效果,然后格网搜索会自动统计都次运行得分的方差,得分平均值或者中位数。

(写的比较简略,欢迎交流,后面有时间再补充。)

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值