在实际的数据挖掘中,站在预测类问题的角度来看,除了需要预测连续型的因变量,还需要预判离散型的因变量。对于连续型变量的预 测,例如,如何根据产品的市场价格、广告力度、销售渠道等因素预测利润的高低、基于患者的各种身体指标预测其病症的发展趋势、如何根据广告的内容、摆放的位置、图片尺寸的大小、投放时间等因素预测其被单击的概率等,类似这样的问题基本上可以借助于多元线性回归模型、岭回归模型或LASSO回归模型来解决;而对于离散型变量的判别,例如,某件商品在接下来的1个月内是否被销售、根据人体内的某个肿瘤特征,判断其是否为恶性肿瘤、如何依据用户的信用卡信息认定其是否为优质客户等,则可以借助Logistic回归模型。

Logistic回归模型属于非线性模型,专门用来解决二分类的离散问题。Logistic回归模型目前是最受工业界所青睐的模型之一,例如电商企业利用该模型判断用户是否会选择某种支付方式、金融企业通过该模型将用户划分为不同的信用等级、旅游类企业则运用该模型完成酒店客户的流失概率预测。该模型的一个最大特色,就是相对于其他很多分类算法(如SVM、神经网络、随机森林等)来说,具有很强的可解释性。

Logit函数是一种变换函数,能够使线性回归模型的预测值压缩至0~1之间,这个结果可以作为二分类问题中判断为正类的概率。Logit函数的表达式为:$$g(z)=\frac{1}{1+e^{-z}}$$

其中,$z\in(-\infty,\infty)$。很明显,很明显,当$z$趋于正无穷大时,$e^{-z}$将趋于0,进而导致$g(z)$逼近于1;相反,当$z$趋于负无穷大时,$e^{-z}$会趋于正无穷大, 最终导致$g(z)$逼近于1;当$z=0$时,$e^{-z}=1$,所以得到$g(z)$=0.5。

如果将Logit函数中的$z$参数换成多元线性回归模型的形式,则关于线性回归的Logit函数可以表达为:

假定:$z=\beta_0+\beta_1x_1+\cdots+\beta_px_p$。则,

$$g(z)=\frac{1}{1+e^{\beta_0+\beta_1x_1+\cdots+\beta_px_p}}=h_{\beta}(X)$$

上式中的$h_{\beta}(X)$也被称为Logistic回归模型,它是将线性回归模型的预测值经过非线性的Logit函数转换为[0,1]之间的概率值。假定,在已知$X$和$\beta$的情况下,因变量取1和0的条件概率分别用$h_{\beta}(X)$和$1-h_{\beta}(X)$表示,则这个条件概率可以表示为:

$$p(y=1|X;\beta)=h_\beta(X)=p$$

$$p(y=0|X;\beta)=1-h_\beta(X)=1-p$$

将$p(y=1|X;\beta)$,$p(y=0|X;\beta)$整合成一个公式,则:

$$p(y|X;\beta)=h_\beta(X)^y \ast (1-h_\beta(X))^{(1-y)}$$

以上公式便为真实类别的概率函数,逻辑函数的建模目标就是希望训练样本真实所属类别发生的概率尽可能大,即希望下式取值尽可能大:

$$L(\beta)=\prod_{i=1}^nh_\beta(x^{(i)})^{y^{(i)}} \ast (1-h_\beta(x^{(i)}))^{1-y^{(i)}}$$

其中上标i表示第i个样本。接下来就是求解使目标函数达到最大的未知参数$\beta$,将似然函数$L(\beta)$做对数处理:

$$l(\beta)=ln(L(\beta))=\sum_{i=1}^n[y^{(i)}ln(h_\beta(x^{(i)})^{y^{(i)}}) + (1-y^{(i)})ln(1-h_\beta(x^{(i)})) ]$$

如上公式为对数似然函数,如想得到目标函数的最大值,通常使用的套路是对目标函数求导,进一步令导函数为0,进而可以计算出目标函数中的未知参数。接下来,尝试这个套路,计算目标函数的最优解。

步骤一:知识铺垫

步骤二:目标函数求导

步骤三:令导函数为0

$$\sum_{i=1}^n(y^{(i)}-h_\beta(x^{(i)}))(x^{(i)})=0$$

显然,通过上面的公式无法得到未知参数β的解,因为它不是关于β的多元一次方程组。所以只能使用迭代方法来确定参数β的值,迭代过程可以使用经典的梯度下降算法。梯度下降法详解见http://blog.halashuo.cn/487/