为什么β>1 时 F-score中召回率越重要

模型训练中根据precision 和 recall计算F-score进而全面考虑准确率和召回率。

如果认为 准确率和召回率同等重要,就让β = 1,这就是F-1 score

如果认为召回率更重要,就设定 β > 1。如果认为精确率更重要,就设定 β < 1

这是因为,当 β 趋近于正无穷时,F-Score趋近于Recall rate;而当 β 趋近于 0 时,F-Score趋近于 Precision。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
首先,我们需要定义文法符号的编号,如下: ``` 0: D' 1: D 2: T 3: L 4: i 5: f 6: , 7: x 8: $ ``` 其,`0` 表示起始符号,`8` 表示结束符号。 然后,我们可以按照以下步骤构造 LR 项目集族: 1. 初始化第 0 个项目集为 {`D' -> .D`}。 2. 对于每个项目集 `I` 和文法符号 `X`,进行如下操作: a. 遍历 `I` 的每个项目 `A -> α.Xβ`。 b. 对于 `X` 的每个产生式 `X -> γ`,构造新的项目 `X -> .γ` 并将其加入集合 `J` 。 c. 对于 `J` 的每个项目 `X -> .γ`,计算其闭包 `closure(X -> .γ)` 并将其加入集合 `I` 。 d. 若集合 `I` 为新的项目集,则重复以上操作,直到不再出现新的项目集。 e. 记录 `I` `X -> .γ` 对应的项目编号,并将其加入 LR 分析表的对应位置。 下面是构造过程的详细过程: | I0: {D' -> .D} | | --- | 1. 初始项目集为 `{D' -> .D}`。 | I0: {D' -> .D} | | --- | | D -> .TL | 2. 对于 `I0` 的项目 `D -> .TL`,有两个产生式 `T -> i` 和 `T -> f`。因此,构造两个新的项目: ``` T -> .i T -> .f ``` 并将它们加入集合 `J0` : ``` J0: {T -> .i, T -> .f} ``` 接下来,计算 `J0` 每个项目的闭包: ``` closure(T -> .i): { T -> .i } closure(T -> .f): { T -> .f } ``` 并将它们加入项目集 `I0` : ``` I0: { D' -> .D, T -> .i, T -> .f } ``` 最后,记录 `T -> .i` 和 `T -> .f` 对应的项目编号,并将其加入 LR 分析表的对应位置: ``` ACTION[0,i] = shift(1) ACTION[0,f] = shift(2) ``` | I0: {D' -> .D, T -> .i, T -> .f} | | --- | | T -> .i | | T -> .f | 3. 对于 `I0` 的项目 `T -> .i`,没有新的产生式可以扩展,因此不需要进行操作。 4. 对于 `I0` 的项目 `T -> .f`,有两个产生式 `L -> L,x` 和 `L -> x`。因此,构造两个新的项目: ``` L -> .L,x L -> .x ``` 并将它们加入集合 `J1` : ``` J1: {L -> .L,x, L -> .x} ``` 接下来,计算 `J1` 每个项目的闭包: ``` closure(L -> .L,x): { L -> .L,x, L -> .x } closure(L -> .x): { L -> .x } ``` 并将它们加入项目集 `I1` : ``` I1: { T -> .f, L -> .L,x, L -> .x } ``` 最后,记录 `L -> .L,x` 和 `L -> .x` 对应的项目编号,并将其加入 LR 分析表的对应位置: ``` ACTION[1,x] = shift(3) ACTION[1,$] = reduce(L -> x) ``` | I1: {T -> .f, L -> .L,x, L -> .x} | | --- | | L -> .L,x | | L -> .x | 5. 对于 `I1` 的项目 `L -> .L,x`,只有一个产生式 `L -> L,x` 可以扩展,因此构造新的项目: ``` L -> L.,x ``` 并将其加入集合 `J2` : ``` J2: {L -> L.,x} ``` 接下来,计算 `J2` 的项目闭包: ``` closure(L -> L.,x): { L -> L.,x, L -> .L,x, L -> .x } ``` 并将其加入项目集 `I2` : ``` I2: { L -> L.,x, L -> .L,x, L -> .x } ``` 最后,记录 `L -> L.,x` 对应的项目编号,并将其加入 LR 分析表的对应位置: ``` ACTION[2,x] = shift(4) ``` | I2: {L -> L.,x, L -> .L,x, L -> .x} | | --- | | L -> L.,x | | L -> .L,x | | L -> .x | 6. 对于 `I2` 的项目 `L -> .L,x`,只有一个产生式 `L -> L.,x` 可以扩展,因此构造新的项目: ``` L -> L.,x ``` 并将其加入集合 `J3` : ``` J3: {L -> L.,x} ``` 接下来,计算 `J3` 的项目闭包: ``` closure(L -> L.,x): { L -> L.,x, L -> .L,x, L -> .x } ``` 并将其加入项目集 `I3` : ``` I3: { L -> L.,x, L -> .L,x, L -> .x } ``` 最后,记录 `L -> L.,x` 对应的项目编号,并将其加入 LR 分析表的对应位置: ``` ACTION[3,x] = reduce(L -> L) ACTION[3,$] = reduce(T -> fTL) ``` 最终得到的 LR 项目集族如下: | I0: {D' -> .D, T -> .i, T -> .f} | | --- | | T -> .i | | T -> .f | | I1: {T -> .f, L -> .L,x, L -> .x} | | --- | | L -> .L,x | | L -> .x | | I2: {L -> L.,x, L -> .L,x, L -> .x} | | --- | | L -> L.,x | | L -> .L,x | | L -> .x | | I3: {L -> L.,x, L -> .L,x, L -> .x} | | --- | | (reduce) L -> L | | (reduce) T -> fTL | LR 分析表如下: | | i | f | , | x | $ | | -- | -------- | -------- | -------- | -------- | -------- | | 0 | shift(1) | shift(2) | | | | | 1 | | | shift(3) | reduce | reduce | | 2 | | | | shift(4) | reduce | | 3 | | | | reduce | reduce | | 4 | shift(1) | shift(2) | | | |

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值