Regression:Logistic Regression Analysis

 RegressionLogistic Regression Analysis

 

Linear Regression在处理数据输入和数据输出的线性关系上非常有用,但是还是有很多情况,如数据输出空间为R且连续,如果处理的数据离散、输出为二分类(Binary,{0,1})时,LR就不合适处理这宗数据模型,准确的说不是最优(Optimal)处理数据的方法。在这种数据模型下,Logistic Regression(LR)方法作为一种替代的Regression方法正好能够处理这些数据模型。

注意:LR从名字上看是Regression,实际上是分类算法;本文讨论的是Binomial二分数据,如Success or Fail,death or live,malignant or benign等。 

 

在Logistic Regression中,使用更多的是Odds而非Proportions;前者定义的是输出空间中两个输出变量的比值。如果P定义为Positive的概率,1-P表示为Negative的概率,那么Odds的概率定义为:

Odds的定义是结果集中PositiveNegative的比例。

Linear Regression中,输出值为线性函数,所以输出的空间为(-Infinate,+Infinate),在Logistic Regression中,Positive概率的输出范围为[0,1],需要映射这种关系,从[0,1]映射到[-Infinate,+Infinate],引入logit函数能够满足这种映射关系:

Logit函数的数学意义大家可以仔细思考下,是怎么完成这种映射关系的。

 

我们使用logit函数进行建模,能够使输出空间为(-Infinate,+Infinate),而Linear Regression的输出空间也为(-Infinate,+Infinate),那么我们使用logit来按照Linear Regression的思路建模:

Odds概念和logit函数的概念放到一起,可以得到:

其中P表示positive的概率,将P解出来,可以得到:

将其中的函数部分重新定义出来:

该函数被称为是Logistic Function、或者是Sigmoid Function,从wiki上的一张截图看下Sigmoid函数的性质:

前面的推导比较清楚地描述了为什么使用Sigmoid函数作为Logistic Regression的一部分。我看到其他人在分析Logistic Regression时,只是简单的将Sigmoid函数提出来作为结果的一部分,如果想了解Sigmoid函数在Logistic Regression中的推导,请再仔细看下上面的推导过程。

我们了解了Sigmoid函数在Logistic Regression中的地位后,我们继续来看Logistic Regression的分类问题。假设模型服从Bernoulli分布:

考虑使用二分类(Binomial)来建模,多分类的问题也可以转化为二分类问题来解决。假设类别标签分别为C1C2表示,则C1后验概率可以表示为:

其中Sigmoid函数的定义如上所示。

根据概率的性质,C2的概率值可以根据C1计算为:

可以看出来,后验概率为服从Bernoulli分布的离散分布,这个跟前面的Linear Regression模型有很大的不同。前面目标值连续,使用高斯分布模型;后者目标值离散,使用Bernoulli分布来计算。

 

下面我们计算独立Logistic RegressionMaximum Likelihood Estimation(MLE)。假设训练集合为{Xy},其中t{0,1}集合中;假定N个观察变量符合i.i.d.分布,则似然函数可以表示为:

从上面的MLE定义可以看出来,这个最大似然估计和Linear Regression的分析一致;可以作为最大似然的函数的相反数,得到如下表示:

 这个误差结果被称为是Cross-Entropy Error Function,这个就是Logistic Regression要优化的目标函数。下面的工作就是优化、求解这个误差函数。

 

Cross-Entropy Error Function

优化该误差函数可以使用前面提到的Gradient Descent算法。在梯度下降算法中,梯度的结算至为关键,计算过程如下:

然后根据Linear Regression模型里面的梯度下降方法进行迭代求解:


 

Cross-Entropy Error Function高级优化算法

我们使用Gradient Descent算法来求解的话,对于学习率的计算是个难题:如果学习率过大,导致收敛不能保证;学习率过小的话,导致收敛速度太慢。而一些比较复杂的优化算法能够避免学习率的缺点。当然这些算法和随机梯度相比会更加复杂,不过收敛速度也比较快。

Andrew Ng的机器学习课程中,除去梯度下降(Gradient Descent)外,还提到另外三种优化算法:

Conjugate Gradienthttp://class.htu.cn/nla/chat5/sect5_2.htm,重点在于选择共轭方向作为搜索方向,直到算法收敛。

BFGShttp://en.wikipedia.org/wiki/BFGS_method

L-BFGShttp://en.wikipedia.org/wiki/Limited-memory_BFGS

这几个算法都是优化算法中比较典型的算法。大家如果想深入理解的话,可以仔细看下后面的wiki链接。

 

本次Logistic Regression结束。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
If you have 11 features in your dataset but LogisticRegression is expecting only 2 features as input, you might need to perform feature selection or dimensionality reduction techniques to reduce the number of features before feeding them into the LogisticRegression model. Here's an example of using Principal Component Analysis (PCA) for dimensionality reduction: ```python from sklearn.decomposition import PCA from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # Load data X, y = load_data() # Split data into train and test sets X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) # Perform PCA for dimensionality reduction pca = PCA(n_components=2) X_train_pca = pca.fit_transform(X_train) X_test_pca = pca.transform(X_test) # Create and train the logistic regression model logreg = LogisticRegression() logreg.fit(X_train_pca, y_train) # Make predictions on the test set y_pred = logreg.predict(X_test_pca) # Calculate accuracy accuracy = accuracy_score(y_test, y_pred) print("Accuracy:", accuracy) ``` In this example, we first use PCA to reduce the dimensionality of the input features from 11 to 2. Then, we create a LogisticRegression model and train it using the transformed training data. Finally, we make predictions on the transformed test data and calculate the accuracy. Note that PCA is just one example of dimensionality reduction technique. Depending on your specific problem, you may consider other techniques such as feature selection or other dimensionality reduction methods like Linear Discriminant Analysis (LDA) or t-distributed Stochastic Neighbor Embedding (t-SNE).

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值