小组技术分享会之逻辑回归

逻辑回归应用

文本分类 NLP
医学疾病预测
用户流失分析
广告点击率预估
用户信用计算分析
股票涨跌预估

1.线性回归算法

拟合曲线,求损失函数最小值问题

损失函数公式.jpg

【梯度下降算法】
1)首先对θ赋值,这个值可以是随机的,此时好比站在山顶的某处。
2)改变θ,使得J(θ)按照梯度下降的方向进行减少,相当于每次按照下降最快的方向下山,最终到达山底,即J(θ)最小值。

【随机梯度下降】
每次计算最快下降的方向,即新的θ值,都会将所有数据进行迭代计算,虽然得到全局最优解,但是耗费时间大,故而引进了“随机梯度下降”,每次迭代只计算其中一组值,有点像摸石头过河,碰碰运气,也许该条路就是下降的最快方向,这样做的优点是减少时间,但不一定获取全局最优解,而有可能是局部最优解,运气好的话,不必等到所有的sample都进行一轮迭代,就可以到达底部,但是也有可能在最开始收敛快速,而最后却变慢。

【小批量随机梯度下降】
为了降低随机梯度下降迭代过程中,每一组数据可能导致的噪声,每次训练时,从样本中抽取一批进行训练。

【L-BFGS】
一种改进版的拟牛顿法,基于目标函数的二阶导使其收敛速度快,迭代次数少。但同时又解决了拟牛顿法耗费大量计算资源和存储的缺点,在SparkMLlib 2.0之后,抛弃了随机梯度下降SGD,引进了L-BFGS法

2. 逻辑回归

其本质就是一种线性回归,只是在线性回归的基础上增加了一层映射,使其结果在0-1之间(二项概率分布),故而用其解决分类问题

3. SparkMLlib 中逻辑回归的使用

LogisticRegressionWithSGD
LogisticRegressionWithLBFGS
是SparkMLlib中提供的两种逻辑回归的类,其run/train方法可以对数据集进行训练,传入的数据集格式为RDD[LabeledPoint]类,构造LabeledPoint的方法:
LabeledPoint(label,Vectors)
label是该条数据的类别label:0,1(Double)
Vectors是该条数据所有的features值(Double),可传入Vectors.dense(Array...)

你可能感兴趣的:(小组技术分享会之逻辑回归)