Logistic回归
Logistic回归
利用Logistic 回归的主要思想是:更具现有数据对分类边界线简历回归公式,以此进行分类。
Logistic 回归的一般过程
| 1 | 收集数据 | 采用任意方法收集数据 |
| 2 | 准备数据 | 由于需要进行距离计算,因此要求数据类型为数值型。结构化数据格式最佳 |
| 3 | 分析数据 | 采用任意方法对数据进行分析 |
| 4 | 训练算法 | 大部分时间将用于训练,训练的目的是微乐找到最佳的分类回归系数 |
| 5 | 测试算法 | 一旦训练步骤完成,分类将会很快完成 |
| 6 | 使用算法 | 首先, 需要一些输入数据,并将其转换成对应的结构化数值;其次,基于训练好的回归系数就可以对这些数值进行简单的回归计算,判定它们属于哪个类别;然后可以在输出的类别上做一些其他分析工作 |
基于Logistic回归喝Sigmold函数的分类
- 优点:计算代价不高,易于理解和实现
- 缺点:容易欠拟合, 分类精度可能不高
- 使用数据类型: 数值型和标称型数据
海维赛德阶跃函数(Heaviside step function)或者称为单位阶跃函数,能接受所有的输出,然后预测输出类别。问题在于,该函数在跳跃点上葱0瞬间跳跃到1,这个瞬间跳跃过程有时很难处理。Sigmoid函数有单位阶跃函数的性质,而且在数学上更易处理。
Sigmoid函数具体的计算公式为
δ(z)=1/(1+e-z)
Sigmoid函数是一种阶跃函数。(如果实数域上的某个函数可以用半开区间上的指示函数的有限次线性组合来表示, 那么这个函数就是阶跃函数。指示函数是定义在某个集合X上的函数, 表示其中有哪些元素属于某个子集A)。
为了实现Logistic回归分类器,可以在每个特征上乘以一个回归系数,然后把所有的结果值相加,将总和代入Sigmoid函数中,进而得到一个范围的值。因此 Logistic回归也可以看作是一种概率估计。
基于最优化方法的最佳回归系数(权值)确定
Sigmoid函数的输入记为z, 由公式得出:
z=w0x0 + w1x1 + w2x2 + w3x3 + w4x4 + ...... + wnxn
采用向量的写法,z=wTx,表示将这两个数值向量的对应元素相乘然后全部加起来得到z。其中的向量x是分类器的输入数据, 向量w是我们要找的最佳参数(权值),从而使得分类器尽可能地精确。
梯度上升法
梯度上升法的思想是:要找到某个函数的最大值,最好的方法是沿着该函数的梯度方向探寻。令梯度为Γ,则函数f(x, y)的梯度表示:
Γf(x, y)=[∂f(x, y)/∂x ∂f(x, y)/∂y]
梯度算子总是指向函数值增长最快的方向(移动方向),因此是梯度上升算法。记移动量为步长为α,则迭代公式向量表示:
w = w + αΓf(x, y)
梯度上升算法伪代码:
| 1 | 每个回归系数初始化为1 |
| 2 |
重复R次: |
| 3 | 计算整个数据集的梯度 |
| 4 | 使用`alpha * gradient`更新回归系数的问题 |
| 5 | 返回回归系数 |
随机梯度上升
梯度上升算法在每次更新回归系数时都要遍历整个数据集。如果数据集的样本和特征值过大,那么该方法的时间复杂度就太高了。 一种改进方法是用一次仅用一个样本点来更新回归系数,称为随机梯度上升算法。 由于可以在新样本到来时对分类器进行增量式更新,因而随机梯度上升算法使一个在线学习算法(在线算法:需要及时处理收集的数据,并给出预测或建议结果,并更新模型)。与在线学习相对应,一次处理所有数据被称为是批处理。
随机梯度上升算法伪代码:
| 1 | 所有回归系数初始化为1 |
| 2 |
对数据集中每个样本 |
| 3 | 计算该样本的梯度 |
| 4 | 使用alpha * gradient 更新回归系数值 |
| 5 | 返回回归系数 |
浙公网安备 33010602011771号