标签:
之前在学习logistic回归的时候遇到几个问题,一直困扰着我,随着学习的深入,我终于想通了这些问题,而且我发现这些看似很难的算法,其实不难,是可以战胜的,所以不要浅尝辄止,要百折不挠,现在把几个问题和答案小结如下:
Q1:woe本来是ln((Bi/BT)/(Gi/GT)),如果定义成ln((Gi/GT)/(Bi/BT))对于最后训练出来的模型(参数)会有什么影响?
A1:由于ln(A/B) = - ln(B/A),所以就是等价于训练数据X取负号,结果是参数除了常数项全部取反,这个很明显,因为拟合的目标是固定的,极大似然函数最大,所以参数自然会如此变化,也可以把负号拿出去-θ看成α然后就是拟合α,当然就是-θ = α
Q2:通常来说h(θ) = 1/(1+e^-z),如果令h(θ) = 1/(1+e^z),对最后训练出来的模型会有什么影响?
A2:全部θ取反,原理也同Q1,就是负号可以拿进去,所以说其实我们实现logistic的时候h(θ)可以用两者中的任意一种,但是我发现一般的现成算法,包,模块都是令成的h(θ) = 1/(1+e^z),和教科书上的形式有一定的出入,同事告诉我,之所以要写成h(θ) = 1/(1+e^-z)这种形式是因为涉及到什么信息熵的原因,难道不是因为这样函数单增?有朋友会问,如果直接用包、用现成算法,一般跑出来就一堆系数还有一些评价指标,怎么确定他令的哪个h(θ)?一般来说都是前者,如果不放心,假设是h(θ) = 1/(1+e^z),然后带入,算出来的评价指标是否相符?比如混淆矩阵啊,准确率啊之类的,如果退一万步,你说这个包只给了你系数,那带进去试吧,应该是准确率超过50%那个,但估计没有这种情况!自己写就更没问题,自然知道自己用的哪个h(θ)
Q3:如果我在标记训练数据集的时候把0和1反着标记,对训练出来的结果有啥影响?
A3:模型参数θ取反,自然最后结果probability也互补了,比如之前标记为1 概率0.9 标记为0 概率为0.1
A4:h(θ)的意义?
A4:h(θ)的意义是很明确的,他就是取1的概率,这个1和0是函数本身的1和0,而并非标记样本的1和0,因为样本也可以标记成A、B,之所以样本要标记为0和1,是为了极大似然函数,所以最后结果probability都是1的概率,这个1是和之前标记样本相符
Q5:极大似然函数的对数和损失函数及其相似,可不可以说损失函数的灵感就是来自于极大似然函数?还是另外一种思想,无意间形成了巧合联系?
A5:好像是从极大似然函数想到的?具体地还要继续学习才能很好理解!留个坑
标签:
原文地址:http://blog.csdn.net/strwolf/article/details/51329377