ML--LR学习小结

上周学习的是决策树,这周接触了算是第一个最优化问题-Logistic Regression。逻辑斯提回归实际上是一种分类的算法,是广义上的线性回归,与感知机很相似。做个小小的预告,下篇将探讨支持向量机(SVM),算是近期ML学习的一个小的节点,因为接下来将精力转移到深度学习的入门。但仍会一如既往的在博客上更新一些想法,ML的学习不会结束,后面将进行更深入的学习。

线性回归

-线性模型形式简单、易于建模,许多功能更加强大的非线性模型在线性模型的基础上通过引入层级结构或高维映射得到,在神经网络入门的第一个实例XOR问题中有所体现。线性回归问题求解和LR回归类似,只是为了完成分类任务将任务的真实标记联系到单调可微函数上。这种分类学习的优点是无需知道先验分布,同时不仅可以得到“分类”,更可得到近似概率预测。此外对率函数是任意阶可导的凸函数,这个解释一定程度上解答了梯度下降为何可以很好得解决这个问题。

核心思想与推导

-利用回归模型

y=wTx+b
然后对似然函数求极值,转化成最优化问题。今早在看prml的时候在贝叶斯的介绍中提到了频概和贝叶斯的核心都是对这个条件概率,即围绕似然函数做文章。这里用梯度下降求解,随机梯度下降则是将整个数据集梯度的迭代换成随机数据的梯度求解,核心思想不变。
似然函数的表达
梯度下降的原理:
梯度下降原理
下面是梯度下降法的推导,可能有些错误,希望指正:
梯度下降
代码如下:

def gradAscent(dataMatIn, classLabels):
    dataMatrix = np.mat(dataMatIn)             
    labelMat = np.mat(classLabels).transpose() #转置
    m,n = np.shape(dataMatrix)
    alpha = 0.001
    maxCycles = 500#迭代次数
    weights = np.ones((n,1))
    for k in range(maxCycles):             
        h = sigmoid(dataMatrix*weights)     
        error = (labelMat - h)              
        weights = weights + alpha * dataMatrix.transpose()* error 
    return weights

学习过程中的思考

《实战》一书中迭代的代码并没有做公式上的解释,之前我对于LR回归的理解错误在于对梯度下降优化的目标函数理解有误。经过下午的反复思考结合蓝皮书上的似然函数以及梯度下降的基本原理做了简单的推导从而理解了这段代码。学习过程中一个模棱两可可能会导致对知识的一知半解。同时西瓜书上很好的解释了线性回归和LR回归的关系,以及和感知机之间的联系,三个算法的几乎完全一样,但目的和理解上略有不同。在看花书前馈神经网络的时候看到了线性模型的用处,希望以后可以在这里继续补充关于线性模型的进一步思考。张侃建老师上课提到了最优化问题中的全局最优和局部最优问题,也是这类算法需要着重解决的。还有很多思考没有继续,还有很多思考有待补充,先告一段落,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值