首页 > 解决方案 > 3类回归分析中的错误

问题描述

我正在尝试应用一个与所有逻辑回归:

我正在使用一对一的方法(class1 vs class2+ class3、c2 vs c1+c3、c3 vs c1+c2)来计算三个案例的权重w1、w2、w3:

   for n1 in range(0,50000):

        s1 = np.dot(dt, w1)
        p1 = (1 / (1 + np.exp(-s1)))
        gr1 = (np.dot(dt.T, p1-c1))
        gr1 /= N
        w1 -= 0.01 * gr1

        if n1 % 10000 == 0 and n1!=0:
          loss1 = np.sum( np.log(1 + np.exp(s1))-p1*s1 )
          print('loss1',loss1)

dt 是我的特征,

w1,w2,w3 被初始化为 w1=np.zeros((5,1)),

c1=np.vstack((np.ones(40),np.zeros(40),np.zeros(40)))
c2=np.vstack((np.zeros(40),np.ones(40),np.zeros(40)))
c3=np.vstack((np.zeros(40),np.zeros(40),np.ones(40)))

标签: python

解决方案


所以。iris 数据集在所有集合中并不是完美的线性可分的。因此,当我们使用逻辑回归之类的线性分类器时,无法线性分离的部分的损失往往是不可预测的。你可以放一个很小的学习仇恨和一个耐心的方法来避免过度拟合。将您的数据标准化在 0 和 1 之间也会有所帮助。


推荐阅读