Logistic回归中的S形函数行为

时间:2018-11-01 14:59:28

标签: machine-learning logistic-regression

简而言之,我的考试问题是训练集,其中很少有学生在少数学科上有成绩,并且通过某种工程入学考试的成绩为PASS / FAIL:

  • StudentId:数学:物理:化学:合格
  • 1:100:50:50:1
  • 2:70:70:70:0 0
  • 3:80:70:70:1

这里某人通过考试的等式是:  2 *(数学)+ 1 *(物理)+ 1 *(化学)> = 300

现在,如果我没记错的话,逻辑回归的目的是在内部找出这些theta值(2,1,1)和固有方程,然后为任何测试数据输入生成结果。

我的问题是,当我从样本系数a1 = 1,b1 = 1,c1 = 1开始并进行像

的预测时
prediction = (a1.X1 + a2.X2 + a3.X3)

sigmoidResult = sigmoid(prediction)

sigmoid(X)是传统的Sigmoid函数:[1.0 /(1 + np.exp(x * -1))]

很明显,对于我的输入,S形结果将在1侧,而不是在0侧,因为预测计算产生的结果> 0.5

例如

 prediction = 1*70 + 1*70 + 1*70 = 210

 sigmoid(prediction) = sigmoid(210) = 1.

所以不确定在这里我在做什么错,因为S形总是在1的一边,这将在末端产生错误的曲线。

所以基本上,我在这里问一个关于Logistic回归的非常幼稚和基本的问题:

很显然,逻辑回归的任务是找出系数(theta)值(a1,a2,a3),但是在这种情况下,用户是否需要了解方程式(无需知道theta)a1.x1 + a2.x2 + a3.x3 <=300?还是找出这个方程并据此产生正确的结果是逻辑回归本身的任务?最后,如果用户不知道Sigmoid总是返回> 0,怎么办?

0 个答案:

没有答案