实战人品预测之二_热门模型xgboost
实战人品预测之二 _ 热门模型
xgboost
1. 介绍
有人戏称数据挖掘比赛为 GBDT 调参大赛,因为在很多比赛后期,大家都使用
GBDT
类的算法,特征类似,只有模型参数不同,模型集成方法不同,最终大家的成绩差别也很小。
上篇《实战人品预测之一 _ 国内大数据竞赛平台》,介绍 DataCastle
平台的“微额借款用户人品预测大赛”比赛规则,以及一些初步的尝试。本篇说说最终获胜的,也是
GDBT 类算法中使用频率最高的 xgboost 算法的使用和调参方法。
2. xgboost 原理
之前在《机器学习 _
集成算法》篇(http://www.jianshu.com/p/3c8cca3e1ca2)中介绍过 GBDT
类的算法,简单回顾一下:
Boosting
算法不断地使用同一算法(比如决策树)建立新模型,而新模型分配给上一次错分样本更大的权重,最终根据按成功度加权组合得到结果。由于引入了逐步改进的思想,重要属性会被加权。
Gradient Boosting
Machine(GBM)梯度提升算法是目前比较流行的数据挖掘模型,它通过求损失函数在梯度方向下降的方法,层层改进,是泛 ...
实战人品预测之一_国内大数据竞赛平台
实战人品预测之一 _
国内大数据竞赛平台
1. 竞赛平台哪家强
Kaggle
是一个很好的竞赛平台,上面大牛很多,代码分享和思路讲解也很棒,但是它的用户信息和数据全都存在
google
服务器上,虽然网页能看到,但上传下载数据需要连外网,从当前的网络情况看来,只能用
VPN,用起来实在太麻烦了。
国内的大数据竞赛平台,DataCastle
和天池也不错,也有奖金。比赛结果后,排名靠前参加答辩的选手会将答辩 PPT
分享出来,有时也会分享代码。相对来说天池的数据包含丰富的业务场景,更粘近现实情况,有的比赛还提供在计算平台。
天池和 Kaggle 都有数据科学家的排行榜,以提供展示实力的途径。
2. 选择竞赛
从时效来看,建议一开始先选择参赛队多的往期题目,最好是获胜者提供了源代的。很多比赛在结束之后仍开放提交代码并提供线上评分(没有奖金),这样边做边学,速度更快,也不会陷入某个比赛无法自拔。
从难易来看,建议从简单的开始,如果影响因素太多,难以判别哪里出了问题。最好一开始选择纯数据的。
3. 典型问题
我觉得在实践的过程中,有几类典型问题是需要常试的:
以 xgb ...
机器学习_总结篇_十大经典算法与算法选择
机器学习 _ 总结篇 _
十大经典算法与算法选择
一、数据挖掘十大经典算法
最近写了一些机器学习的文档,对应数据挖掘经典算法,列表如下:
1. 聚类 K-Means
《机器学习_基于距离的算法KNN与K-Means》
2. 关联 Apriori
《机器学习_规则与关联规则模型Apriori、FP-Growth》
3. 最大期望 EM
《机器学习_隐马尔可夫模型HMM》
4. 决策树 DTree
《机器学习_决策树与信息熵》
5. CART: 分类与回归树
《机器学习_用树回归方法画股票趋势线》
6. 贝叶斯 Bayes
《机器学习_统计模型之(一)贝叶斯公式》
《机器学习_统计模型之(二)贝叶斯网络》
《机器学习_统计模型之(三)朴素贝叶斯》
7. 线性回归 logistic
《机器学习_最小二乘法,线性回归与逻辑回归》
8. 集成算法 adaBoost
《机器学习_集成算法》
####9. 支持向量机 SVM
《机器学习_SVM支持向量机》
10. PageRank
(没写)
11. 其它(特征工程)
《机器学习_用SVD奇异值分解给数据降维》
《机器学习_用PCA主成分分析给数据降 ...
机器学习_规则与关联规则模型Apriori、FP-Growth
机器学习 _
规则与关联规则模型 Apriori、FP-Growth
#机器学习 #关系规则
1. 何时使用规则模型
机器学习时常遇到一个问题:当数据并不完全可分时,分类器得分不高。真实世界中的数据经常是这样:各种无意义数据和少量有意义数据混在一起,无意义数据又没什么规律,无法统一去除。比如说,对股票外汇市场受各种因素影响,预测次日涨跌一般各算法效果都不好。虽然找不到通用的规则,却能在数据中探索到一些模式,比如十字星,孕线,三只乌鸦等组合还是具有一定的预测性。
之前使用决策树时,就遇到过这种情况,虽然整体得分不高,但某些叶节点上纯度高(全是正例或全是反例)并且实例多,可以把该分枝拿出来当规则使用。虽然不能用它预测任意数据,但可以作为一个过滤器使用。
2. 规则模型是什么
规则模型和决策树同属逻辑模型,不同的是决策树对正例反例同样重视,而规则只重视正例/反例其中一项。因此决策树呈现的是互斥关系,而规则模型允许重叠,结果也相对零散的规则列表。规则更像是在大量数据中挑选有意义的数据。
如果说树是精确模型,规则模型则是启发式策略(虽然经过修改也能覆盖所有实例,但一般不这么用)。 ...
机器学习_基于距离的算法KNN与K-Means
机器学习 _
基于距离的算法 KNN 与 K-Means
1. 距离的量度
1) 距离
距离的定义是一个宽泛的概念:只要满足非负、自反、三角不等式就可以称之为距离。其中非负是指任意两个相异点的距离为正;自反是
Dis(y,x)=Dis(x,y);三角不等式是 Dis(x,z)<=Dis(x,y)+Dis(y,z)
2) 马氏距离(闵可夫斯基距离)
其中 d 是维数,p 是阶数,也称为 p 范数。
当 p=1 时,是曼哈顿距离
当 p=2 时,是欧氏距离
当 p→∞时,是切比雪夫距离
当 p=0 时,是海明距离
3) 欧氏距离
两点间的直线距离(一般用两条竖线||w||代表 w 的 2 范数)代入公式:
4) 曼哈顿距离(城市街区距离)
各坐标数值差的和,就像汽车只能行驶在横平竖直的街道上,代入公式:
5) 切比雪夫距离
各坐标数值差的最大值,当马氏距离的
p→∞时,最终的结果取决于距离最大的维度上的距离:
Dis∞=maxj|xj-yj|
在二维的情况下:c=max(a,b)
6) 海明距离
L0
范数并不是一个真正的范数,它主要被用来度量向量中非零元素的个数。
7) 总 ...
机器学习_SVM支持向量机
机器学习 _SVM 支持向量机
1. 介绍
SVM
支持向量机属于广义的线性模型,先回忆一下线性模型:可依据平面(多维)或直线(一维/二维)来理解模型。简单地说,可用一条线将两类分开,如下图所示。
能将两类分开的直线不止一条(左图),我们希望找到离两组数据都最远的那条线(正中间那条线),以便更好地泛化。这就是右图中所示的极大边距分类器,一般把中间的直线称为决策面,把离决策面最近的那些点(训练实例)称为支持向量,也就是右图中紫圈中的点。
有时会遇到无法用直线分类的情况,如左图所示,但可以用圆环划分,右图展示了同样的数据,各个特征值取原始值的平方,变换到新的特征空间后,数据变成了线性可分。将数据从线性不可分转成线性可分的函数称为核函数,转换的方法称为核技巧(这里是取平方的操作,核函数一般将低维数据映射到高维)。由于需要把原始模型转换成线性模型,再进一步操作,我们叫它“广义线性模型”。
这就是一般意义上的支持向量机
SVM,它有两个重点:一个是考虑分类时的最大边距,另一个是使用核函数把线性不可分的变成线性可分的。
原理并不难,但具体实现涉及数学较多,如果嫌麻烦,请跳过“求解线性方程”部分 ...
机器学习_统计模型之(一)贝叶斯公式
机器学习 _
统计模型之(一)贝叶斯公式
1. 贝叶斯法则
先举个例子:比如事件 X 是努力,事件 Y
是成功,能成功的基本都努力了(条件Y成立时,X必然成立);但是努力不一定都能成功(条件
X 成立时,Y 不是一定成立)。也就是说,X 与 Y 之间的关系不对等,但 X 和 Y
又确实有关系。贝叶斯法则就是用来描述这种关系的。
所有要是有人说“成功源于努力,所以努力必能成功”,那是心灵鸡汤。正确的说法是努力能把成功的可能性提高一点。
2. 贝叶斯公式
事件X发生的概率,称为边缘概率,记作 P(X)。
事件 Y 在事件 X 已经发生条件下的发生概率,称为条件概率,记为
P(Y|X)。
事件 X,Y 共同发生的概率称为联合概率,记为 P(XY) 或者 P(X,Y)。
有公式:
P(XY) = P(Y)P(X|Y)=P(X)P(Y|X)
P(Y|X)=P(XY)/P(X)=P(Y) P(X|Y)/P(X)
还用上面的例子,稍作调整:假设有 50% 的人努力了,即 P(X)=50%;有
20% 的人成功了 P(Y)=20%;且知道成功的人 75% 都努力了
P(X| ...
机器学习_统计模型之(三)朴素贝叶斯
机器学习 _
统计模型之(三)朴素贝叶斯
1. 条件独立假设
条件独立假设简单的说就是特征 x1 和 x2
没有关系,比如说兔子的特征中,尾巴短和爱吃萝卜这两个特征它们分别和兔子相关,但两特征彼此之间无关,不是说尾巴短的都爱吃萝卜。所以有
p(x2|x1)=p(x2),即无论 x1 是什么,x2
的概率都不变。朴素贝叶斯就是以条件独立假设为基础的。
2. 概率的乘法
两个独立事件都发生的联合概率等于两个事件发生概率的乘积。
当 P(A) 与 P(B) 无关时,P(B)=P(B|A),所以
P(A,B)=P(A)|P(B|A)=P(A)P(B)
比如:目标是判断该动物是不是兔子,有三个属性:长耳朵 P(A)=70%,短尾巴
P(B)=50%,爱吃萝卜 P(C)=60%,当三个条件都为真时:
P(A,B,C)=P(A) * P(B) * P(C)=70% * 50% * 60% = 21%,
奇怪,三个条件都为真,结果概率却小了?概率小不小主要看跟谁比,再看看三个条件都不成立时:
(1-P(A)) * (1-P(B)) * (1-P(C))=30% * 50% * 40%=6%,
对比这两 ...
机器学习_统计模型之(二)贝叶斯网络
机器学习 _
统计模型之(二)贝叶斯网络
1. 贝叶斯网络
贝叶斯网络 (Bayesian network),又称信念网络 (Belief
Network),或有向无环图模型。它用网络结构代表领域的基本因果知识。
贝叶斯网络中的节点表示命题(或随机变量),认为有依赖关系(或非条件独立)的命题用箭头来连接。
令 G = (I,E) 表示一个有向无环图 (DAG),其中 I
代表图形中所有的节点的集合,而 E 代表有向连接线段的集合,且令 X =
(Xi),i ∈ I 为其有向无环图中的某一节点 i 所代表的命题,则节点 X
的联合概率可以表示成:
其中 Pa(i) 是 i 的父结点,是 i
的因。联合概率可由各自的局部条件概率分布相乘得出:
p(x1,…,xk)=p(xk|x1,….,xk-1)…p(x2|x1)p(x1)
这里顺便说一下朴素贝叶斯,由于其中各个变量 x 相互独立
p(x2|x1)=p(x2),得出:
p(x1,…,xk)=p(xk)…p(x2)p(x1)
因此说朴素贝叶斯是贝叶斯网络的一种特殊情况。
2. 例程
(1) 功能
eBay 的 ...
机器学习_用SVD奇异值分解给数据降维
机器学习 _ 用 SVD
奇异值分解给数据降维
本想把 PCA 和 SVD 写在一起,可上篇 PCA 还没写清楚就已经 4 页 word
了。再把 SVD
和特征工程的内容加上,实在是太长了,一下说太多也记不住,于是重开一篇。
SVD 用到的原理和 PCA
非常相似,就不再此赘述了,如果对特征值、特征向量相关问题不清楚请参见前篇
《机器学习_用PCA主成分分析给数据降维》
1. 原理
先回忆一下特征值分解:把向量 x
往特征向量方向上分解,然后每个方向上做伸缩,最后再把结果加起来即可。也可以理解为将向量
x
转到正交坐标系,在各个坐标轴的方向上缩放后,再转换回原来的坐标系。只有方阵才能做特征值分解,因此我们在
PCA 中不是直接对数据做分解,而是对参数的协方差矩阵做分解。
我们知道,任何矩阵都可以分解为三个矩阵的乘积 A=U * Sigma *
VT,也就是奇异值分解.其中 U 和 VT 均是酉阵 (正交阵在复数域的推广),而
Sigma 为增广对角阵。从直观上讲,U 和 VT 可视为旋转操作,Sigma
可视为缩放操作。因此奇异值分解的含义就是说,若将矩阵看做一个变换, ...