随机森林基础知识总结
1. 决策树与随机森林的区别:决策树是一种非线性有监督分类模型,随机森林是一种非线性有监督分类模型,线性分类模型比如说逻辑回归,可能存在不可分问题,但是非线性分类就不存在。
2. 解决过拟合的两种方法: 一、剪枝;二、随机森林。
3. 随机森林是当前一个比较火的算法,它的优点有:
a. 在数据集上表现良好;
b. 在当前的很多数据集上相对于其他算法有很大的优势;
c. 能处理很高维度的数据,并且不用做特征选择;
d. 在训练完后,能够给出哪些feature比较重要;
e. 训练速度快;
f. 在训练过程中,能够检测到feature之间的相互影响;
g. 容易做成并行化方法;
h. 实现比较简单。
4. 基于决策树的学习算法给预测模型赋予了准确性、稳定性以及易解释性,和线性模型不同,它们对非线性关系也能有很好的映射,常见的基于树的模型有:决策树(decision trees)、随机森林(random forest)和提升树(boosted trees)。决策树虽然简单,但与最好的监督学习方法相比,它们通常没有竞争力。为了克服决策树的各种缺点,需要理解各种概念,比如自助聚集或袋装(boostrap aggregating bagging),随机森林(Random Forests),分类和回归树(简称CART)是用来解决分类或回归预测建模问题的决策树算法,常使用scikit生成并实现决策树:sklearn.tree.DecisionTreeClassifier和sklearn.tree.DecisionTreeRegressor。CART模型包括选择输入变量和那些变量上的分割点,直到创建出适当的树,使用贪婪算法(greedy algorithm)选择使用那个输入变量和分割点,以使成本函数最小化。树建造的结尾使用一个预定义的停止准则,比如分配到树上每一个叶子节点的训练样本达到最小数量,其他决策树算法:ID3,iterative dichotomiser 3, C4.5,ID3算法的改进,CHAID,Chi-squared automatic interaction detector. MARS:决策树的扩展形式,以更好地解决数值型预测。
分类和回归的区别:
a. 输入变量和输出变量均为连续变量的预测问题为回归问题;
b. 输出变量为有限个离散变量的预测问题称为分类问题;
其实回归问题和分类问题的本质一样,都是针对一个输入做出一个输出预测,其区别在于输出变量的类型,分类是给定一个模式,根据训练集推断它所对应的类别,是一种定性输出,也叫离散变量预测,回归问题是指给定一个新的模式,根据训练集推断它所对应的输出值(实数)是多少,是一种定量输出,也叫连续变量预测。
因此,分类树和回归树十分相似,只不过它是定性地预测响应值而非定量预测。
决策树常见参数和概念:
a. 根节点;b. 分裂;c. 决策节点;d. 叶子/终止节点;e. 分枝/子树;f. 父节点和子节点;g. 结点分裂的最小样本数;h. 叶节点的最小样本数;i. 叶节点的最大数量;j. 分类所需要考虑的最大特征数。
5. 树分类器,用sklear.tree.DecisionTreeClassifier创建一个简单的树分类器模型,需要把所有的非数值数据转换成数值型数据,可以在pandas数据框架中使用sklear.preprocessing.LabelEncoder模块和sklear_pandas模块中完成这一步骤。
6. 决策树的局限性:决策树有很多优点,比如易于理解,易于解释,可视化,无需大量数据准备,需要注意的sklear.tree模块不支持缺失值。使用决策树(预测数据)的成本是训练决策时所用数据的对数数量级。
决策树的缺点:a. 但这些模块一般不直接使用,决策树一些常见的缺陷是:构建树的过程过于复杂,无法很好地在数据上实现泛化。
b. 数据的微小变动都可能导致生成的树完全不同,因此决策树不够稳定。
c. 决策树学习算法在实践中通常基于启发式算法,比如贪婪算法,在每一个节点做出局部最优决策,此类算法无法确保返回全局最优决策树;
d. 如果某些类别占据主导地位,则决策树学习器构建的决策树会有偏差,因此推荐做法是在数据集与决策树拟合之前先使用数据集保持均衡;
e. 某些类别的函数很难使用决策树来建模,如XOR,奇偶检验函数(parity)和数据选择器函数(multiplexier);
以上大部分的限制可以通过改善决策树轻易解决。
7. 解决过拟合的方法:剪枝,袋装(Bootstrap Aggregating-Bagging),其中涉及到的概念有Out-of-Bag(OOB)误差,特征重要性度量。
8. 随机森林模型通过降低方差而提高了一般决策树的预测能力。随机森林主要有三个超参数需要调整:结点规模,目标是生成树的时候尽可能保持最小偏差;树的数量,在实践中选择数百棵树一般是比较好的选择;预测器采样的数量。
RF的缺点:除了Bagging树模型的一般局限性外,随机森林还有一些局限性,当需要推断超出范围的独立变量或者非独立变量,随机森林做的不好,最好使用如MARS那样的算法;
b. 随机森林算法在训练和预测时都比较慢;
c. 如果需要区分的类别十分多,随机森林的表现并不会很好;
d. 总的来说,随机森林在很多任务上一般要比提升方法的精度差,并且运行时间也更长,所以在Kaggle竞赛上,有很多模型都是使用的梯度提升树算法或者其他更优秀的提升方法。
9. 随机森林和神经网络的对比,一般来说,随机森林能好些。在《Do we Need Hundreds of Classifiers to Solve Real World Classification Problems?》分析了179中分类算法,其中最好的几个是random forest, SVM, extreme learning machine.
10. 线性回归,神经网络与随机森林三种方法的优点缺点:
线性回归:优点是可以迅速建模,特别适用于所要建模的关系不是特别复杂并且数据量不大的情况,线性回归简单且易于理解,有利于商业决策;缺点是对非线性数据进行多项式回归设计的困难比较大,因为必须具有特征变量之间关系和数据结构的一些信息,当涉及到数据复杂度较高时,这些模型的性能通常不如其他模型。
神经网络由于神经网络可以有多个非线性的层和参数,因此非常适合比较复杂的非线性关系建模;神经网络中的数据结构基本上对学习任何类型的特征变量关系都非常灵活;研究表明,为网络提供更多的训练数据(不管是增加全新的数据集还是对原始数据集进行扩张)可以提高网络性能。缺点是:这些模型比较复杂,不太容易被理解,网络的训练可能非常具有挑战性和计算密集性,需要对超参数进行微调并设置学习率表;网络的高性能需要大量的数据来实现,在“少量数据”情况下通常不如其他机器学习算法的性能。
回归树和随机森林:优点是善于学习复杂且高度非线性的关系,通常可以具有很高的性能,其性能优于多项式回归,并且通常与神经网络的性能相当。确定是:由于训练决策树的性质,可能很容易出现重大的过度配合。完整的决策树模型可能过于复杂并且包含不必要的结构,有时可以通过适当的树木修剪和较大的随机森林合奏来缓解这种情况。使用较大的随机森林合奏来获得更高的性能,会使速度变慢,并且需要更多的内存。
机器学习中有一种定理叫作“没有免费的午餐”,并不存在一个能够解决所有问题的机器学习算法,机器学习算法的性能在很大程度上依赖于数据大小和数据结构,会使速度变慢,并且需要更多的内存。
有关随机森林的IEEE文章目前还有,但是也不是很多。
11. 随机森林与神经网络相结合的文章:
12. 神经网络的主要优点,在于它们能够胜过几乎所有其他机器学习算法,例如在癌症检测中,对于性能的要求是非常高的,因为性能越好,可以治疗的人越多。但是缺点也是明显的:
缺点1:缺乏可解释性,这是神经网络的黑匣子性质,意味着不知道神经网络会如何产生结果,更不知道为什么会产生这种结果,这是相比随机森林最大的缺点。
缺点2:耗时耗力,虽然有像Keras这样的库可以使神经网络的开发变得相当简单,但需要更多地控制算法的细节,比如tensorflow就比较复杂并且开发需要更长的时间;
缺点3:神经网络比传统的机器学习算法通常来说需要更多的数据,数千甚至数百万的标记样本,数据的来源是一个问题。相比数据增长的速度,cpu处理速度的增快速率才只有数据量增长速度的一半。
缺点4:贵,这里的贵指的是算力的昂贵,最先进的深度学习算法,需要几周甚至更长时间,但是传统方法需要的训练时间要少的多;神经网络所需的计算能力在很大程度上取决于数据而大小,也取决于网络的深度和复杂程度,只有一个层+50个神经元的网络,当然比1000个决策树的随机森林要快得多,相比之下,有50个层的神经网络,将比仅仅具有10个决策树的随机森林慢得多。
13. 随机森林从市场营销到医疗保健保险,既可以用来做市场营销模拟的建模,统计客户来源、保留和流失,也可以用来预测疾病的风险和病患者的敏感性。最近几年的国内和国外大赛,参赛者使用随机森林的比例相当高,一大部分人都选择了Random Forest和GBDT算法,所以RF算法在准确率方面还是很有优势。随机森林是通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树,而其本质属于机器学习的一大分支—集成学习(Ensemble Learning)方法。从直观角度来解释,每棵决策树都是一个分类器,对于一个输入样本,N棵树会有N个分类结果,而随机森林集成了所有的分类投票结果,将投票次数最多的类别指定为最终的输出,是一种简单的Bagging思想。
14. 随机森林的特点:准确率高,能在大数据上运行,能处理高维特征,且不需要降维,能够评估各个特征在分类问题上的准确性,在生成过程中能够获取内部生成误差的一种无偏估计,对于缺失值也能够获得很好的结果。
15. 相关基础知识:信息、熵以及信息增益,决策树:是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶子节点代表一种类别,常见的决策树算法有C4.5,ID3和CART。集成学习:生成多个分类器/模型,各自独立学习和预测,最后投票形成但预测,因此优于任何一个单分类的预测。
16. 回溯直线搜索法,是求解无约束凸优化问题中调整搜索步长的非常简单有效的方法,也是实际应用中常用的方法,考虑固定步长搜索,为防止迭代震荡,一般步长值很小,很多经验值取0.01,这就导致收敛速度过慢,考虑精确直线搜索,其本身又是一个优化问题,如果这个优化问题很复杂,则这个搜索方法是没有意义的,相比以上两种调整搜索步长的方法,回溯直线搜索则加单高效的多。