XGBoost

What is XGBoost

XGBoost is a scalable tree boosting system, a faster tool for learning better models.

Advantages

Model Improvement

Regularized objective for better model

Systems Optimizations

Out of core computing

Parallelization

Cache optimization

Distributed computing

Algorithm ......

SVD

Neural Network

原理

实现

AdaBoost

AdaBoost原理

AdaBoost是adaptive boosting(自适应boosting)的缩写,其运行过程如下:

为训练数据中的每个样本赋予一个相等的权重,这些权重构成了向量D

在训练数据上训练出一个弱分类器并计算该分类器的错误率ε,ε = (未正确分类的样本数目)/(总样本数目)

计算该弱分类器的权重α,α = 0.5 * ln((1-ε)/ε)

根据上一次训练的结果,重新调整样本权重向量D:上一次分对的样本的权重将会降低,而上一次分错的样本的权重将会提高

如果被正确分类,权重更新为Di = (Di * e^(-α)) / sum(D)

如果被错误分类,权重......

Random Forest

实现

回归树

特点

优点:将数据集切分成很多份易建模的数据,可以对复杂和非线性的数据建模

缺点:结果不易理解

适用数据类型:数值型和标称型数据

回归树与模型树

回归树(regression tree):每个叶节点包含单个值

模型树(model tree):每个叶节点包含一个线性方程

模型树相比回归树的优点:

可解释性

更高的预测准确度

注意

变量类型需要是数值型,标称型数据应该映射成二值型数据

模型对于预剪枝的参数非常敏感

例子

逻辑回归

特点

优点:

计算代价不高

易于理解和实现

缺点:

容易过拟合

分类精度可能不高

推导

例子

朴素贝叶斯

原理

选择发生概率最高的类别

通过特征之间的条件独立性假设,降低对数据量的需求

特点

优点:

在数据较少的情况下仍然有效

可以处理类别问题

缺点:

对于输入数据的准备方式较为敏感

注意

平滑问题:计算多个概率的乘积时,如果任何一个概率值为0,那么最后的乘积也是0。为避免这种情况的发生,可以将所有词的出现频率的初始值设为1,并将分母初始化为2。

下溢出问题:太多很小的数相乘,程序四舍五入后的结果会得到0。一种解决方法是对乘积取自然对数,因为f(x)和ln(f(x))同增同减,并在相同的点上取到极值。

词袋模型和词集模型:词袋模型准确度较高

高频词和......

决策树

思路

决策树模型学习过程通常包3个步骤:特征选择、决策树的生成和决策树的修剪。其中,特征选择的目的是使每个子集中的标签更“纯净”。

度量特征好坏的方法有很多,包括误差率、信息增益、信息增益比和基尼系数等。ID3与C4.5都是经典的分类决策树算法。区别在于ID3算法采用信息增益作为特征选择准则,而C4.5采用的是信息增益比的方法。

注意:决策树是一种贪心算法,它要在给定时间内做出最佳选择,但并不关心能否达到全局最优。

特点

优点:

计算复杂度不高

输出结果易于理解

对中间值的缺失不敏感

可以处理不相关特征数据

缺点:

可能产生过拟合

数据格式

数值......

k-近邻算法

思路

将新数据的特征和样本数据(标签已知)的特征进行比较,取最接近的前k个样本数据

将前k个样本数据中出现次数最多的标签作为新数据的标签

特点

优点:

精度高

对异常值不敏感

无数据输入假定

缺点:

空间复杂度高:需要保存全部数据集,如果训练数据集的很大,必须使用大量的存储空间

计算复杂度高:由于必须对数据集中的每个数据计算距离值,实际使用时可能非常耗时

无法描述数据集的特征

数据格式

数值型和标称型

应用

改进约会网站匹配

改进手写数字识别系统

例子