逻辑回归虽然带有回归字样,但是逻辑回归属于分类算法。逻辑回归可以进行多分类操作,但由逻辑回归算法本身性质决定其更常用于二分类。
逻辑回归概念:
首先我们给出逻辑回归的公式:
其中,Y为决策值,x为特征值,e为自然对数,w为特征值的权值,b为偏置。为两者的内积。Y(x)的图形如下:
该函数是一条S形的曲线,并且曲线在中心点附近的增长速度较快,在两段的增长速度较慢。w值越大,曲线中心的增长速度越快。从图上可知,Y的值域为(0,1),那么就可以将决策函数值大于等于0.5的具有对应x属性的对象归为正样本,决策函数值小于0.5的具有对应x属性的对象归为负样本。这样就可以对样本 数据进行二分类。
逻辑回归推导:
逻辑回归是一种简单,常见的二分类模型,通过输入未知类别对象的属性特征序列得到对象所处的类别。由于Y(x)是一个概率分布函数,因此对于二分类而言,离中心点的距离越远,其属于某一类的可能性就越大。
对于常见二分类,逻辑回归通过一个区间分布进行划分,即如果Y值大于等于0.5,则属于正样本,如果Y值小于0.5,则属于负样本,这样就可以得到逻辑回归模型,判别函数如下:
在模型参数w与b没有确定的情况下,模型是无法工作的,因此接下来就是在实际应用期间最重要的是模型参数w和b的估计。
其代价函数为:
给定y值为1时,代价函数曲线横坐标为决策函数Y(x)的值越接近1,则代价越小,反之越大。当决策函数Y(x)的值为1时,代价为0。类似的,当给定y值为0时有同样的性质。
如果将所有m个样本的代价累加并平均,就可以得到最终的代价函数:
由于y的取值为0或1,结合上面两个公式可以得到:
这样就得到了样本的总的代价函数,代价越小表明所得到模型更符合真实模型,当最小的时候,就得到了所求参数。
关于损失函数的求解,可以通过梯度下降法求解,先设置一个学习率,从1到n,更新:
其中:
重复更新步骤,直到代价函数的值收敛为止。对于学习率的设定,如果过小,则可能会迭代过多的次数而导致整个过程变得很慢;如果过大,则可能导致错过最佳收敛点。所以,在计算过程中要选择合适的学习率。
逻辑回归案例:
以下为研究一个学生优秀还是差等的问题,已知训练数据的学生基本特征信息如下:
学生 | 平均每天学习时长 | 平均每天问问题数 | 平均考试分数 | 评级 |
a | 10 | 3 | 90 | 优 |
b | 9 | 1 | 70 | 优 |
c | 4 | 0 | 55 | 差 |
d | 6 | 1 | 80 | 优 |
需要分类学生数据:
学生 | 平均每天学习时长 | 平均每天问问题数 | 平均考试分数 | 评级 |
e | 8 | 2 | 85 | |
f | 3 | 1 | 60 |
步骤一:
整理数据,转化为数学模型
将分数归一化,除以10,将评级优表示为1,评级差表示为0,则转化为:
步骤二:
假设,求出此时的损失函数,,同时初始值设置为(0.5,0.5,0.5,0.5),学习率为0.3,并且设置损失函数为0.1时,迭代停止截止。
步骤三:
第一次迭代的值为(-0.096,0.50008,-0.32,0.350858),不断迭代,直到损失函数小于0.1.
步骤四:
最终就能求出Y(x)的表达式,从而能够分类上面没分类的数据:
学生 | 平均每天学习时长 | 平均每天问问题数 | 平均考试分数 | 评级 |
e | 8 | 2 | 85 | 优 |
f | 3 | 1 | 60 | 差 |