逻辑回归算法-通俗易懂易实现
转自https://www.cnblogs.com/hum0ro/p/9652674.html,看到介绍的逻辑回归很容易理解算法原理及实现,拿来存档做记录
一直做图像处理算法和视频方面的嵌入式应用软件,早起研究和应用过神经网络算法,一直没有了解其他分类的机器学习算法,这段时间用空学习研究这些算法,如k-means,em聚类算法,查阅了许多资料,算法推倒的,结合举例说明有个直观印象,这样可以更好地理解算法,方便实现
1.什么是逻辑回归
在前面讲述的回归模型中,处理的因变量都是数值型区间变量,建立的模型描述是因变量的期望与自变量之间的线性关系。比如常见的线性回归模型:
而在采用回归模型分析实际问题中,所研究的变量往往不全是区间变量而是顺序变量或属性变量,比如二项分布问题。通过分析年龄、性别、体质指数、平均血压、疾病指数等指标,判断一个人是否换糖尿病,Y=0表示未患病,Y=1表示患病,这里的响应变量是一个两点(0-1)分布变量,它就不能用h函数连续的值来预测因变量Y(只能取0或1)。
总之,线性回归模型通常是处理因变量是连续变量的问题,如果因变量是定性变量,线性回归模型就不再适用了,需采用逻辑回归模型解决。
逻辑回归(Logistic Regression)是用于处理因变量为分类变量的回归问题,常见的是二分类或二项分布问题,也可以处理多分类问题,它实际上是属于一种分类方法
2.逻辑回归的推导
1.Sigmoid 函数:(z值就是预测值)
Logistic Regression虽然名字里带“回归”,但是它实际上是一种分类方法,用于两分类问题(即输出只有两种)。根据第二章中的步骤,需要先找到一个预测函数(h),显然,该函数的输出必须是两个值(分别代表两个类别)
所以利用了Logistic函数(或称为Sigmoid函数),函数形式为:
二分类问题的概率与自变量之间的关系图形往往是一个S型曲线,如图所示,采用的Sigmoid函数实现:
2.推导
3.得到似然函数,和对数似:
4.求导计算
5.求解(通过参数的变化得到最优解):参数说明,yi为样本i的标签(逻辑回归算法是监督学习,所以样本有对应的分类标签),h(xi)通过
6. 实现步骤如下:
1.随机一组W.
2.将W带入交叉熵损失函数
更新参数,
3.循环第二步.知道当前值和上一个参数的误差在期望的范围类,停止迭代,得到的参数即为要求的多项式系数,即得到了分类函数
3.自我总结:
逻辑回归就是一个分类的算法,常见用在二分类当中,就是把我们的输入值在线性回归中转化为预测值,然后映射到Sigmoid 函数中,讲值作为x轴的变量,y轴作为一个概率,预测值对应的Y值越接近于1说明完全符合预测结果。但是拟合的越好,不代表效果就越好,有可能拟合过度。
注:拟合的越好的意思是,测试集的测试效果符合训练集的训练效果。在我看来训练集就是真实值的集合,测试集就是预测值的集合。
相关推荐
theta = np.zeros #theta = array,构造全为零的行向量。grad[0,j] = np.sum/len #∑term / m. return value > threshol