数据分类与排序随记

逻辑回归

分类问题中若是数据量不大的状况下用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是为了方便计算。

可是现实中的分类通常是多分类,不是二分类,在多分类的状况下,使用的是上面式子的拓展形式。3d

随着它不断的接近谷底,他的斜率值会慢慢的变小,因此随着梯度的计算 他的步长自动就会愈来愈小。

多分类经过多个二分类实现,取几率最大的那个!!

在样本不均衡的状况,经过下采样等方式让样本尽可能均衡。cdn

上采样,经过拷贝样原本达到样本均衡会带来一个问题 过拟合。千万不要在样本的量级相差极大的状况下,试图用上采样的方式去解决unbalance的问题。blog

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会有点慢,但他的健壮性很强,他不会由于样本的不一样分布,而使得决策边界左右移动。

相关文章
相关标签/搜索