机器学习笔记(十一)——逻辑回归
2016-07-09 11:38
375 查看
一、引言
虽然说是逻辑回归,其实既可以用它做回归,也可以用它做分类。一般我们从最简单的二分类问题开始了解他,当然也可以做多分类。二、Logistic Regression 的一般步骤
找一个合适的假设构造损失函数
让损失函数最小,求出对应的参数值
三、二分类问题下Logistic Regression的过程
3.1 Logistic Function
在机器学习笔记(十)——Logistic Function AND Softmax Function中我们已经讨论过了Logistic 函数,因此,建议不熟悉的读者参考上述文章。3.2 找一个合适的假设
假设样本是各个贷款人的信息,标签是他是否违约。目标是建立一个模型,用来预测一个贷款人违约的可能性,而银行根据这个信息决定是否放款给当前的贷款人。那么,很明显,这是一个分类问题,根据贷款人的一些信息和已知的标签,我们建立模型,去预测新来的贷款人违约的可能性。这里将贷款人的各个信息,如学历、年收入、信用卡违约次数等作为x,将他是否违约记为y,其中y=1表示违约,y=0表示不违约。那么,一个贷款人违约的可能性为:hθ(x)=g(θTx)=11+e−θTx
其中,θ是参数向量。通过上式,可以将借款人的各个信息映射到(0,1)之间,表示他是否违约的可能性。
P(y=1|x;θ)=hθ(x)P(y=0|x;θ)=1−hθ(x)
将上式表示成一个式子:
P(y|x;θ)=hθ(x)y(1−hθ(x))1−y
至此,得到了一个给定贷款人信息时,他违约概率的表达式。
3.3 构造损失函数
在整个样本集中,m个独立样本出现的似然函数是:L(θ)=∏i=1mP(yi|xi;θ)
利用最大似然求θ,取对数最大似然:
l(θ)=logL(θ)=∑i=1mlogP(yi|xi;θ)
定义下式为损失函数:
J(θ)=−1ml(θ)=−1m∑i=1mlog[hθ(xi)yi(1−hθ(xi))1−yi]=−1m∑i=1m{yiloghθ(xi)+(1−yi)log[1−hθ(xi)]}
最大化l(θ)相当于最小化J(θ).
3.4 让损失函数最小,求出对应的参数值
优化的目标函数如下:minJ(θ)
由于上式中的θ是一个参数向量,因此,没办法用函数导数等于0直接求出,它是没有解析解的,因此,我们可以采用梯度下降的方法求得极小值。梯度下降方法请参照最优化学习笔记(三)——梯度下降法。
∂J(θ)∂θ=−1m∑i=1m{∂T(θ)∂θ}(1)
其中:
T(θ)=yloghθ(x)+(1−y)log[1−hθ(x)]
∂T(θ)∂θ=y1hθ(x)∂hθ(x)∂θ+(1−y)11−hθ(x)(−∂hθ(x)∂θ)=∂hθ(x)∂θ(yhθ(x)+(y−1)1−hθ(x))=∂hθ(x)∂θ(y−hθ(x)hθ(x)(1−hθ(x)))
因为:
∂hθ(x)∂θ=hθ(x)(1−hθ(x))x
则:
T(θ)=(y−hθ(x))x
由于取的是样本集中的第i 个样本,所以将上式代入(1)
∂J(θ)∂θ=−1m∑i=1m(yi−hθ(xi))xi=1m∑i=1m(hθ(xi)−yi)xi
这样,就可以得到θ的迭代公式:
θ=θ+α∂J(θ)∂θ=θ+α1m∑i=1m(hθ(xi)−yi)xi(2)
需要说明的是,我们可以从2式中看出,每次计算一次θ,都要进行全部样本数据的计算,直到θ收敛,还有一种可以采用随机梯度法进行计算,这样只需要遍历一遍数据集即可,下次讨论。
相关文章推荐
- 用Python从零实现贝叶斯分类器的机器学习的教程
- My Machine Learning
- 机器学习---学习首页 3ff0
- Spark机器学习(一) -- Machine Learning Library (MLlib)
- 反向传播(Backpropagation)算法的数学原理
- 关于SVM的那点破事
- 也谈 机器学习到底有没有用 ?
- TensorFlow人工智能引擎入门教程之九 RNN/LSTM循环神经网络长短期记忆网络使用
- TensorFlow人工智能引擎入门教程之十 最强网络 RSNN深度残差网络 平均准确率96-99%
- TensorFlow人工智能引擎入门教程所有目录
- 如何用70行代码实现深度神经网络算法
- 量子计算机编程原理简介 和 机器学习
- 近200篇机器学习&深度学习资料分享(含各种文档,视频,源码等)
- 已经证实提高机器学习模型准确率的八大方法
- 初识机器学习算法有哪些?
- 机器学习相关的库和工具
- 10个关于人工智能和机器学习的有趣开源项目
- 机器学习实践中应避免的7种常见错误
- 机器学习常见的算法面试题总结
- 不平衡数据处理技术——RUSBoost