wrikla 2021-05-09 10:22 采纳率: 0%
浏览 26

逻辑回归F1measure不下降

在做对老师给定的文本的命名实体识别  逻辑回归的迭代不需要torch 只用给定的公式即可  现发现不管是给定的数据集还是自己试验用的小规模数据  F1是一个常数不随sita的改变而变。请问是什么原因呢?  一下贴一下我的部分代码及数据

for i in range(1000):
    temp=0
    for j in range(len(xto)):
        temp+=(yto[j]-sigmoid(np.dot(sta,xto[j])))*xto[j]
    print("temp=",temp)
    sta=sta+0.02*temp
    print("sta[",i,"]=",sta)
    correct=0
    presum=0
    truesum=0
    for t in range(len(wordsn)):
        if(wordsn[t].count("/ns")==1):
            truesum+=1
        if(dic.get(wordsn[t])!=None):
            presum+=1
            x1 = np.zeros((len(num)))
            if t > 0 and dic.get(wordsn[t - 1]) != None:
                x1[dic.get(wordsn[t - 1])] = 1
            x = np.zeros((len(num)))
            x[dic.get(wordsn[t])] = 1
            x2 = np.zeros((len(num)))
            if i + 1 < len(wordsn) and dic.get(wordsn[t + 1]) != None:
                x2[dic.get(wordsn[t + 1])] = 1
            xtemp2=np.concatenate((x1,x,x2))
            if np.dot(sta,xtemp2)>0 and wordsn[t].count("/ns")==1:
                correct+=1
    print("presum[",i,"]=",presum)
    print("correct[", i, "]=", correct)
    print("truesum[", i, "]=", truesum)
    if(presum==0):
        r1=0
    else:
        r1=correct/presum
    if(truesum==0):
        r2=0
    else:
        r2=correct/truesum
    if(r1==0 and r2==0):
        F1=0
    else:
        F1=(2*r1*r2)/(r1+r2)
    print("F1[",i,"]","=",F1)

一千次迭代中f1始终是0.5没变(用的自己写的数据 用大规模数据是同样不变)用的公式为

𝜃 ≔ 𝜃 + 𝛼 ∑(𝑦 𝑖 − 𝑔(𝜃𝑇𝑥(𝑖))) 𝑥(𝑖)   i从0->m

  • 写回答

1条回答 默认 最新

  • 半调子全栈 2023-04-22 16:41
    关注

    从代码看,你使用的是逻辑回归模型,而逻辑回归模型中的模型参数$\theta$,是通过最大化对数似然函数得到的,即通过最大化训练数据的似然函数(概率密度函数的乘积)得到的。因此,在训练集上的F1值不变,可能是因为训练数据集中的命名实体占比较少,使得模型的泛化能力较差,无法在测试集上得到好的结果。建议可以尝试使用更多的命名实体数据,或者调整模型结构,以提高模型的泛化能力。

    评论

报告相同问题?

悬赏问题

  • ¥100 python 调用 cgps 命令获取 实时位置信息
  • ¥15 两台交换机分别是trunk接口和access接口为何无法通信,通信过程是如何?
  • ¥15 C语言使用vscode编码错误
  • ¥15 用KSV5转成本时,如何不生成那笔中间凭证
  • ¥20 ensp怎么配置让PC1和PC2通讯上
  • ¥50 有没有适合匹配类似图中的运动规律的图像处理算法
  • ¥15 dnat基础问题,本机发出,别人返回的包,不能命中
  • ¥15 请各位帮我看看是哪里出了问题
  • ¥15 vs2019的js智能提示
  • ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了