google 机器学习复习及重点笔记(二)
1、机器学习分类模型-Logistics回归
通过Sigmod函数,将回归值压缩入(0,1),用以表示分类概率。逻辑回归模型关键在于如何选择分类阈值,根据分类阈值进行回归值到类别的映射。
此分类阈值由TP与TN的重要性决定,例如欺诈用户检验,是欺诈用户为TP,非欺诈用户为TN,该模型的作用在于甄别欺诈用户,因此应该提高TP的精确率,仅仅在意准确率是每没有参考意义的。一般需要同时考虑精确率和召回率,其中
准确率:Accuracy= (TP+TN)/(TP+TN+FP+FN),即 所有正确预测的样本数/所有样本数
精确率:Precesion = TP/(TP+FP), 即 预测正确的正类样本数/所有预测为正类的样本数
召回率:recall= TP/(TP+FN),即 预测正确的正类的样本数/所有正类的样本数
ROC是一种衡量模型性能工具,能够体现分类模型在不同分类阈值下的效果,主要利用真正率(TPR)和假正率(FPR)
上图为在不同分类阈值下TPR和FPR
如果采用不同的分类阈值计算ROC上的点,效率将会很低,一般采用AUC来评价模型,即ROC曲线下面积。
AUC对所有可能的分类阈值的效果进行综合衡量,一种解读方式是看作模型将某个随机正类别样本排列在某个随机负样本之上的概率,也即是AUC以相对预测为依据,考虑的是样本的相对排名情况。
应用AUC衡量模型性能需要注意:
(1)值衡量模型质量,不考虑模型应用的分类阈值;
(2)例如对分类阈值敏感的“垃圾邮件”模型,并非总是要求分类阈值不变,此时AUC不太适用。
2、L0正则化
特征过于稀疏时,如果进行特征交叉组合,将得到更为稀疏的组合特征,此时创建一种正则项:减少模型中非零系数值的计数,只有在模型与数据拟合时增加此计数才有意义。但是这种方法会将凸优化问题变得非凸,即NP困难。可采用具有类似作用的L1正则化,L1具有凸优化优势。
3、神经网络
神经网络解决非线性可分问题。在隐藏层中采用非线性**函数,将模型转化为非线性模型。
包含**函数的三层网络模型
神经网络中很多常见情况都会导致反向传播算法出错。
梯度消失
较低层(更接近输入)的梯度可能会变得非常小。在深度网络中,计算这些梯度时,可能涉及许多小项的乘积。
当较低层的梯度逐渐消失到 0 时,这些层的训练速度会非常缓慢,甚至不再训练。
ReLU **函数有助于防止梯度消失。
梯度爆炸
如果网络中的权重过大,则较低层的梯度会涉及许多大项的乘积。在这种情况下,梯度就会爆炸:梯度过大导致难以收敛。
批标准化可以降低学习速率,因而有助于防止梯度爆炸。
ReLU 单元消失
一旦 ReLU 单元的加权和低于 0,ReLU 单元就可能会停滞。它会输出对网络输出没有任何贡献的 0 **,而梯度在反向传播算法期间将无法再从中流过。由于梯度的来源被切断,ReLU 的输入可能无法作出足够的改变来使加权和恢复到 0 以上。
降低学习速率有助于防止 ReLU 单元消失。
丢弃正则化
这是称为丢弃的另一种形式的正则化,可用于神经网络。其工作原理是,在梯度下降法的每一步中随机丢弃一些网络单元。丢弃得越多,正则化效果就越强:
- 0.0 = 无丢弃正则化。
- 1.0 = 丢弃所有内容。模型学不到任何规律。
- 0.0 和 1.0 之间的值更有用。
- 确保第一个模型简单易用。具有良好表现的线性模型时最佳选择。
- 着重确保数据管道的正确性。初始情况下,小心监控,保证数据端到端的准确性,否则在后期很那验证。
- 使用简单且可观察的指标进行训练和评估。
- 拥有并监控您的输入特征。
- 将您的模型配置视为代码:进行审核并记录在案。
- 记下所有实验的结果,尤其是“失败”的结果。不同结果作对比,有利于分析模型的表现,尤其是避免欺骗性的应用结果。