逻辑回归
分类问题中如果数据量不大的情况下用 SVM 会多一些.
做排序的话用 LR 和 NN 比较多, 像 GBDT 这种模型也是可以输出概率值.
在噪声的影响下, 阈值 y 会有很多的浮动, 如果绝对阈值做不了的话, 那能不能找到一个相对阈值呢?
能不能找一函数将连续的 y 值约束到某一个范围内, 常见的范围是 0-1(概率).
将离散值压缩到 0-1 之间的连续值.
分类问题实际上是在 n 维空间里面试图找到一条曲线或者超平面 (可能是曲面) 做判定的一个区分边界.
Z=θ0+θ1_X1+θ2_X2, g(Z)=1/1+e^-Z
这个损失函数是很多个二次函数的叠加, 走到局部最低点就不动了, 所以不能用 GD 去做优化!!
这是非凸函数, 即有很多个洼点.
损失函数不一定都要求是非凸的, 神经网络里面用的 loss function 就是非凸的, 不过他用的是 SGD, 保证随机找一个接近全局最优点即可.
在正样本的情况下, 如果 h_θ(x)预测出来是正样本概率很低 0.01, 那么损失函数负 log 之后的损失值就会非常大.
在负样本的情况下, 如果 h_θ(x)预测出来是正样本概率很高 0.99, 那么损失函数负 log 之后的损失值也会非常大.
如果预测的值和我真实的值差别越大, 那么损失函数计算的结果值就会越大.
-1/m 是为了方便计算.
但是现实中的分类一般是多分类, 不是二分类, 在多分类的情况下, 使用的是上面式子的拓展形式.
随着它不断的接近谷底, 他的斜率值会慢慢的变小, 所以随着梯度的计算 他的步长自动就会越来越小.
多分类通过多个二分类实现, 取概率最大的那个!!
在样本不均衡的情况, 通过下采样等方式让样本尽量均衡.
上采样, 通过拷贝样本来达到样本均衡会带来一个问题 过拟合. 千万不要在样本的量级相差极大的情况下, 试图用上采样的方式去解决 unbalance 的问题.
SVM 与分类
线性不可分的情况, 映射到一个高维空间.
神经网络与分类
SVM+kernel 理论上可以做非线性分割, 但是他比较慢, 另外如果样本不是很合适的话, 效果也会不太好. 工业界, 特别是数据量大的时候, 大部分用的都是 linear LR 或者 linear SVM. 如果要完成一些非线性切分的话, 你需要手动的去构造一些特征, 已经设定好的, 高次的, 可以完成非线性切分的这样一些映射, 但是在工业界你很难知道怎样去构造这些特征.
一个神经元完成逻辑与的操作.
两个分类器 + 一个逻辑与操作完成分类任务.
神经网络完成非线性切分
理论上两个隐层的神经网络应该都可以完成最后结果的判定, 但是如果样本量非常大, 你的类别数比较多的话, 对两个隐层的神经元个数要求非常多, 全连接的情况下, 参数会暴涨, 所以这个时候, 我们的常用做法是把神经网络拉升或拉长, 把各层的节点数 (神经元个数) 降下来. 在一些场合下, 两层的神经网络是够用的.
神经网络层数与分类理解
神经网络之 BP 算法
分批次, 在每个批次上求梯度. BP 算法是来帮助求梯度的. 神经网络里面最优化算法叫 SGD, 而 SGD 要使用到梯度, 所以求梯度要借助于 BP 算法.
BP 算法实际使用中, 我们是将每一层的导数直接先记下来, 往前推的时候, 连乘就行.
BP 算法执行的流程
在手工设定了神经网络的层数, 每层的神经元的个数, 学习率 η(下面会提到)后, BP 算法会先随机初始化每条连接线权重和偏置, 然后对于训练集中的每个输入 x 和输出 y,BP 算法都会先执行前向传输得到预测值, 然后根据真实值与预测值之间的误差执行逆向反馈更新神经网络中每条连接线的权重和每层的偏好. 在没有到达停止条件的情况下重复上述过程.
其中, 停止条件可以是下面这三条:
● 权重的更新低于某个阈值的时候
● 预测的错误率低于某个阈值
● 达到预设一定的迭代次数
分类与排序
GBDT(Gradient Boosting Decision Tree 梯度提升决策树) 又叫 MART(Multiple Additive Regression Tree), 是一种迭代的决策树算法, 该算法由多棵决策树组成, 所有树的结论累加起来做最终答案.
下面的样本示例中, LR 会往左边靠一些, 因为 LR 考虑的是概率, 它会沿着两边样本点的重心去做这个分割. 但 SVM 只跟支持向量有关, 一般我们认为 SVM 在分类任务当中的鲁棒性或健壮性是更强的.
如果数据量不是那么大的话, 可以用 RBF kernel, 用注意加正则化项. 如果数据量特别大的话, 建议把特征离散化, 拉高维度, 然后用 linear SVM.
神经网络的学习能力特别强, 但它是个黑盒不具解释性, 可调性不高.
神经网络要注意控制层数和样本的个数.
LR 的损失函数是交叉熵, SVM 使用的是 hinge loss.LR 天生可以产出概率, 而 SVM 需要根据样本到超平面的距离去做一个映射. LR 简单, 可解释性强. SVM 会有点慢, 但他的健壮性很强, 他不会因为样本的不同分布, 而使得决策边界左右移动.
来源: https://juejin.im/post/5bfcae4c51882551236e9ac4