当前位置: 首页 > 后端技术 > Python

机器学习100天-Day17-18神奇逻辑回归

时间:2023-03-25 23:10:59 Python

前情回顾机器学习100天|Day1数据预处理100天机器学习|Day2简单线性回归分析100天机器学习|Day3多元线性回归100机器学习1天搞定|Day4-6逻辑回归100天搞定机器学习|Day7K-NN100天搞定机器学习|Day8逻辑回归数学原理100天搞定机器学习|Day9-12支持向量机100daystogetmachinelearning|Day11ImplementKNNin100daysgetmachinelearning|Day13-14SVM实现100daysgetmachinelearning|Day15NaiveBayesianDay17,Avik-Jain在Coursera开启了深度学习的专业课程,完成了第一周和第二周的内容和学习课程逻辑回归、神经网络,以及用Python实现一个神经网络。Day4-6我们学习了逻辑回归模型。100天搞定机器学习|Day4-6Logisticregression但是当时并没有深入讨论可扩展性,毕竟这个模型非常简单易懂。其实模型是有关联的,比如LogisticRegression引出了SVM回归模型。首先我们回到LogisticRegression用于分类的主要思路:根据现有数据建立分类边界线的回归公式,进行分类。我们想要的功能应该能够接受所有输入并预测类别。例如,对于分类问题,函数应该返回0或1。逻辑回归假设函数如下。它用函数g对θTX进行变换,将其映射到0到1的范围,函数g称为sigmoid函数或logistic函数。函数图像如下图所示。逻辑回归用于获得样本属于某个类别的概率。当输入z等于0时,Sigmoid函数的值为0.5。随着z的增大,对应的函数值趋于1;随着z的减小,对应的函数值趋于0。然后,我们通过逻辑回归推导出SVM,发现hθ(x)只与θTX有关,且θTX>0,则hθ(x)>0.5.g(z)只是用于映射,真正的类别决策仍在θTX中。模型的目标无非就是让训练数据中y=1的特征θTX>>0,但是y=0的特征θTX<<0。逻辑回归就是学习得到θ,使得正例的特征远大于0,负例的特征远小于0,强调在所有的训??练例上都达到这个目标。上图中中间的线是θTX=0,logisticreview强调的是所有的点都离中间线越远越好,学习到的结果也是中间线。这样,我们可以得出结论,我们应该更多地关注靠近中间分界线的点,并使它们尽可能远离中线,而不是在所有点上都达到最优。然后,看y=1时logistic回归的costfunction,带上z=θTx,损失函数图像稍微修改一下,得到SVM损失函数图像,以z=1的点为分界点画线和逻辑Regression非常接近线性图像得到上图中的玫红线,称为Cost1(z)。y=0,同理得到Cost0(z)。LogisticRegression修改后得到的基本公式为:由于人们在使用LogisticRegression和SupportVectorMachines时遵循不同的规则,所以有些地方需要修改。上式中的损失部分和正则化部分都去掉了1/m项在逻辑回归中使用λ来平衡损失函数项和样本的正则化项,而在SVM中则使用C来平衡。最终SVM的表达:这里,当costfunction最小化的时候,得到参数θ,支持向量机做的就是直接预测y的值是等于1还是等于0。所以学习参数θ是支持向量机假设函数的形式。另:详细过程建议大家看吴恩达的课程原版机器学习公开课https://www.coursera.org/cour...--------------返回tothetopicdividingline-----------------神经网络和逻辑回归有什么关系?先说结论:逻辑回归就是神经网络没有隐藏层的逻辑回归导致神经网络的过程。我觉得李宏毅的机器学习课程最有匠心。首先,Logistic回归有局限性,没有办法对线性不可分的数据进行分类。比如上面的案例,就没有办法用直线来分类。一种解决方案是通过变换特征空间的方法来解决异或问题,线性不可分的数据经过特征变换后可以很好地区分出红色直线。但是靠人工的方法总不能找到好的转换,这有悖于机器学习的本质。所以,Logistic回归可以看成是一个二层神经元,激活函数是一个Sigmoid函数的神经网络。左边两个Sigmoid函数的作用是特征转换,右边的作用是分类。逻辑回归连接在一起构成了深度学习的基本结构。