最近在学习数据分析,尝试把学习的内容整理并整合成笔记并记录下来。保持定期更新。
回到数据分析的目的,其实大部分是用来预测未来的结果。这就要求给到一些历史的数据作为样本,观察变化的趋势,并适当总结出模型,才能方便进行预测。通常来说,关系是比较简单的,由于变量越少模型越简单,比如说身高与年龄的关系,比如小朋友随着年龄的增长就长个子了,后来到了成年就慢慢稳定了。身高和年龄在某个区间来说,就是正相关。但是,有时候数据集中会包含一些复杂的相互关系,使输入数据和目标变量之间存在非线性的关系。
对于这种复杂关系的建模,其中一种可行的方式是使用树来对预测值分段,包括分段常数(回归树)和分段直线(模型树)。
CART算法可以用于构建二元树并处理离散型或连续型数据的切分。若使用不同的误差准则,就可以通过CART算法构建模型树和回归树。如下图,使用两条直线拟合会比使用一组常数来建模效果更好。如果使用常规的一元线性回归,则得到一个拟合方程,以0.3为分界线,左右侧容易出现较大的误差。若用决策树,则 可以由[0.0,0.3]和[0.3,1.0]这两个区间的两条直线组成。决策树相比其他机器学习算法易于理解,而模型树的可解释性是它优于回归树的特性之一。模型树同时具备更高的预测准确度。
但是,该算法构建的树倾向于对数据过拟合,可采用剪枝的方法解决该问题。剪枝分为预剪枝(在树的构建过程中就进行剪枝)和后剪枝(树构建完毕进行剪枝)。预剪枝更有效但需要用户定义一些参数。一般地,为了寻找最佳模型可以同时使用两种剪枝技术。
在学习的过程中,有很多不错的例子值得学习。