逻辑回归知识点整理

逻辑回归笔记整理

逻辑回归(Logistic Regression)

首先需要明确两个概念:

  1. 逻辑回归并非回归算法,而是分类算法。“回归”一词来源于最佳拟合(拟合:调整分类边界),可简单理解为用一条直线对一些数据点进行拟合(该线称为最佳拟合直线),而拟合过程称为回归。
  2. logistic分类的思想:根据现有数据对分类边界建立回归公式

分类问题

对于二分类问题:
y ϵ { 0 , 1 } y\epsilon\{0,1\} yϵ{0,1} 其中,0表示负例,1表示正例。

对于多分类问题
y ϵ { 0 , 1 , 2 , 3 , . . . , n } y\epsilon\{0,1,2,3,...,n\} yϵ{0,1,2,3,...,n}
若分类器使用的是回归模型,并且模型已经训练好,可设置一个阈值:
h θ ( x ) ≥ 0.5 h_{\theta}(x)\geq0.5 hθ(x)0.5,y属于正例;若 h θ ( x ) &lt; 0.5 h_{\theta}(x)&lt;0.5 hθ(x)<0.5,y属于负例

对于二分类问题,线性回归模型Hypothesis输出值 h θ ( x ) h_{\theta}(x) hθ(x)可以大于1也可以小于0。而对于逻辑回归,Hypothesis输出值介于0到1之间:
0 ≤ h θ ( x ) ≤ 1 0\leq h_{\theta}(x)\leq1 0hθ(x)1

代价函数

将Hypothesis输出值界定在0到1之间,需引入函数g,令Hypothesis表示为:
h θ ( x ) = g ( θ T x ) h_{\theta}(x)=g(\theta^Tx) hθ(x)=g(θTx)

g称为Sigmoid Function或Logisitic Function:
g ( z ) = 1 1 + e − z g(z)=\frac1{1+e^{-z}} g(z)=1+ez1
其函数图形为:
sigmoid函数图
其中, θ \theta θ为参数。综合以上两个式子,可得到LR模型的数学表达式:
h θ ( x ) = 1 1 + e − θ T x h_{\theta}(x)=\frac1{1+e^{-\theta^Tx}} hθ(x)=1+eθTx1

决策边界

假设给定阈值0.5,当 h θ ( x ) ≥ 0.5 h_{\theta}(x)\geq0.5 hθ(x)0.5时, y = 1 y=1 y=1;当 h θ ( x ) &lt; 0.5 h_{\theta}(x)&lt;0.5 hθ(x)<0.5时, y = 0 y=0 y=0。对于 h θ ( x ) = g ( θ T x ) ≥ 0.5 h_{\theta}(x)=g(\theta^Tx)\geq0.5 hθ(x)=g(θTx)0.5,则 θ T x ≥ 0 \theta^Tx\geq0 θTx0,意味着预估 y = 1 y=1 y=1;反之,当预测 y = 0 y=0 y=0时, θ T x &lt; 0 \theta^Tx&lt;0 θTx<0
故可认为 θ T x = 0 \theta^Tx=0 θTx=0是一个决策边界,当其大于或小于0时,LR分别预测不同的分类结果。如:
h θ ( x ) = g ( θ 0 + θ 1 x 1 + θ 2 x 2 ) h_{\theta}(x)=g(\theta_0+\theta_1x_1+\theta_2x_2) hθ(x)=g(θ0+θ1x1+θ2x2)
θ 0 , θ 1 , θ 2 \theta_0,\theta_1,\theta_2 θ0,θ1,θ2,分别取-3,1,1,当 − 3 + x 1 + x 2 ≥ 0 -3+x_1+x_2\geq0 3+x1+x20时, y = 1 y=1 y=1,则 x 1 + x 2 = 3 x_1+x_2=3 x1+x2=3是一个决策边界:
线性决策边界
这是一个线性的决策边界,当 h θ ( x ) h_{\theta}(x) hθ(x)更复杂时,可得到非线性的决策边界:
h θ ( x ) = g ( θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 1 2 + θ 4 x 2 2 ) h_{\theta}(x)=g(\theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_1^2+\theta_4x_2^2) hθ(x)=g(θ0+θ1x1+θ2x2+θ3x12+θ4x22)
θ 0 , θ 1 , θ 2 , θ 3 , θ 4 \theta_0,\theta_1,\theta_2,\theta_3,\theta_4 θ0,θ1,θ2,θ3,θ4分别取值-1,0,0,1,1,当 x 1 2 + x 2 2 ≥ 1 x_1^2+x_2^2\geq1 x12+x221时, y = 1 y=1 y=1,此时决策边界是一个圆:
非线性决策边界

代价函数(Cost Function)

LR的代价函数为对数似然损失函数
f ( x ) = { − l o g ( h θ ( x ) ) if y=1 − l o g ( 1 − h θ ( x ) ) if y=0 f(x)= \begin{cases} -log( h_{\theta}(x))&amp; \text{if y=1}\\ -log(1- h_{\theta}(x))&amp; \text{if y=0} \end{cases} f(x)={log(hθ(x))log(1hθ(x))if y=1if y=0
加入惩罚项:
J ( θ ) = 1 m ∑ i = 1 m C o s t ( h θ ( x ( i ) ) , y ( i ) ) J(\theta)=\frac1m\sum_{i=1}^{m}Cost(h_{\theta}(x^{(i)}),y^{(i)}) J(θ)=m1i=1mCost(hθ(x(i)),y(i))
最终的代价函数公式为:
J ( θ ) = 1 m [ ∑ i = 1 m y ( i ) l o g h θ ( x ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) ] J(\theta)=\frac1m\left[\sum_{i=1}^{m}y^{(i)}logh_{\theta}(x^{(i)})+(1-y^{(i)})log(1-h_{\theta}(x^{(i)}))\right] J(θ)=m1[i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))]
取似然函数为:
L ( θ ) = ∏ i = 1 m P ( y ( i ) ∣ x ( i ) ; θ ) = ∏ i = 1 m ( h θ ( x ( i ) ) ) y ( i ) ( 1 − l o g h θ ( x ( i ) ) ) 1 − y ( i ) L(\theta)=\prod_{i=1}^{m}P(y^{(i)}|x^{(i)};\theta)=\prod_{i=1}^{m}(h_{\theta}(x^{(i)}))^{y^{(i)}}(1-logh_{\theta}(x^{(i)}))^{1-y{(i)}} L(θ)=i=1mP(y(i)x(i);θ)=i=1m(hθ(x(i)))y(i)(1loghθ(x(i)))1y(i)
对数似然函数为:
l ( θ ) = l o g L ( θ ) = ∑ i = 1 m ( y ( i ) l o g h θ ( x ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) ) l(\theta)=logL(\theta)=\sum_{i=1}^{m}\left(y^{(i)}logh_{\theta}(x^{(i)})+(1-y^{(i)})log(1-h_{\theta}(x^{(i)}))\right) l(θ)=logL(θ)=i=1m(y(i)loghθ(x(i))+(1y(i))log(1hθ(x(i))))
最大似然估计就是求使 l ( θ ) l(\theta) l(θ)取最大值时的 θ \theta θ

多类分类问题

处理方法:保留其中一类,剩下的作为另一类。
多类分类问题图示
分别计算其中一类相对于其他类的概率:
多类分类问题
对于每一个类i训练一个LR分类器,并预测 y=i 的概率。对于每一个新的输入变量x,分布对每一个类别进行预测,取最大概率的那个类作为分类结果。

参考链接:
[1]: http://meta.math.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当准备408面试时,以下是一些可能的分科知识点整理: 1. 数据结构与算法:包括数组、链表、栈、队列、树、图等常见数据结构的基本概念、特性和操作,以及常见的排序和搜索算法。 2. 计算机网络:涵盖TCP/IP协议族、网络层、传输层、应用层等网络基础知识,包括IP地址、子网划分、路由器、交换机、HTTP协议等。 3. 操作系统:涉及进程管理、内存管理、文件系统、设备管理等操作系统基本概念和原理,如进程调度算法、内存分配算法、死锁处理等。 4. 数据库:包括关系型数据库的基本概念、SQL语言、事务处理、索引和查询优化等。 5. 编程语言:熟悉至少一种主流编程语言,如C/C++、Java、Python等,了解语言的基本语法、面向对象编程、异常处理等。 6. 离散数学:包括集合论、逻辑推理、图论、代数结构等数学基础知识,对算法和数据结构的理解有一定帮助。 7. 系统设计与架构:了解大型系统的设计原则和常见的架构模式,如分层架构、微服务架构、消息队列等。 8. 数据挖掘与机器学习:了解常见的数据挖掘算法和机器学习算法,如聚类、分类、回归等,以及常用的数据处理和特征工程方法。 9. 软件工程与项目管理:熟悉软件开发的基本流程和常用的开发方法论,如敏捷开发、测试驱动开发等,了解项目管理的基本概念。 10. 网络安全与加密:了解常见的网络攻击方式和防御方法,如DDoS攻击、SQL注入、加密算法等。 这些只是一些可能的知识点,具体还需要根据个人情况和面试要求进行调整和准备。同时,还建议多做一些面试题和编程练习,加强自己的实际操作能力。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值