机器学习得分函数

关于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.

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

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

### 软max函数解释 软Max函数是一种常用于机器学习尤其是多分类问题中的激活函数。其主要作用在于将前一层神经元的输出转换成一个概率分布向量,使得这些值加起来等于1,并且每一个分量都表示对应类别的相对可能性大小[^1]。 对于输入向量 \( z \),经过软Max变换后的输出为: \[ p_i = \frac{e^{z_i}}{\sum_j e^{z_j}} \] 其中\(p_i\)代表第i个类别的预测概率。 这种特性让软Max非常适合用来处理需要从多个离散选项中做出唯一选择的情况,在诸如图像识别、自然语言处理等领域有着广泛应用[^3]。 ### 使用场景 在实际应用当中,软Max不仅限于传统意义上的监督式学习任务;在强化学习领域同样扮演着重要角色。通过调整参数来影响动作的选择倾向——既可以偏向那些已知能带来较大回报的行为(即所谓的“利用”),也可以鼓励尝试未曾经历过的其他可能行为路径(也就是常说的“探索”)。这有助于找到最优策略并提高整体性能表现。 另外值得注意的是,尽管软Max能够很好地完成许多工作,但在特定条件下可能存在不足之处。比如当面对高度不平衡的数据集或是希望得到更加稀疏化的输出时,则可能会考虑采用像Sparsemax这样的变体方案作为替代[^2]。 ### Python代码示例 下面给出一段简单的Python代码片段展示如何使用`numpy`库实现基本版的软Max功能: ```python import numpy as np def softmax(x): """Compute softmax values for each sets of scores in x.""" exp_x = np.exp(x - np.max(x)) # 防止数值溢出 return exp_x / exp_x.sum(axis=0) scores = [1.0, 2.0, 3.0] print(softmax(scores)) ``` 这段程序定义了一个名为`softmax()` 的函数接受列表形式的得分数组作为参数,并返回相应位置上各元素经由软Max运算后的新集合。这里还加入了减去最大值得操作以确保计算过程稳定可靠。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值