算法描述
1.逻辑回归要做的事就是寻找分界面实现二分类。
2.问题假设:对一堆三角形和正方形分类。
3.数据输入:已知正方形和三角形的坐标和标签。
4.算法过程:
知识储备
1.分类和回归
①分类的目标是预测一个离散型变量(e.g. 是/否,好/坏等)。
②回归的目标是预测一个连续型变量(e.g. 温度37.0℃,光强1000mcd等)。
③逻辑回归利用已知数据拟合一条分界线,进而利用这条分界线做二分类。
2.Sigmoid公式如下:
②异或问题
异或逻辑是当输入不同时,输出真;反之输出假。
在二维异或问题中,一条直线无法将正方形和三角形区分开,但曲线可以轻易实现。由此我们需要使用sigmoid函数引入非线性。
3.最优化
梯度上升:沿着函数的梯度方向寻找到函数的最大值,其迭代公式如下:
4.欠拟合和过拟合
首先,推荐阅读[4]的129页,这一章节吴恩达老师已作详细说明。欠拟合即拟合出来的函数与数据的真实分布有较大的整体偏差,而过拟合则是拟合函数与数据分布有较大的方差,泛化能力差。
举个栗子
1.假设仅有四个数据如下图:
2.将结果代入梯度上升公式:
其中,学习率取0.01,数据①的标签减去sigmoid的结果:
注:此处仅为单个数据的训练,一般需要整个训练集多次训练迭代。下图为分类结果和过程关系,可视化代码来源于[1]。
实现代码
1.debug代码引用《机器学习实战》提供的demon,此书作者提供完整代码和数据集,强烈推荐。[1]
2.sklearn实现版本。[3]
算法分析
1.适用于二分类且需要数值型特征。
2.计算开销小但容易欠拟合。
资料引用
[1]GitHub:https://github.com/wzy6642/Machine-Learning-in-Action-Python3/tree/master/Logistic_Project1
[2]CSDN:https://blog.csdn.net/jiaoyangwm/article/details/79570864
[3]CSDN:https://blog.csdn.net/loveliuzz/article/details/78708359
[4]GitHub:https://github.com/fengdu78/deeplearning_ai_books
此算法笔记会在CSDN、知乎、b站及公众号同步更新,账号名为一枚嘉应子。转载注明出处,侵权必究。