为什么说决策树是非参数学习?

来源:12-6 决策树解决回归问题

小白一只726

2023-09-06

我理解参数学习和非参数学习的区别是有没有预设数据符合某个函数,参数学习最重要就是训练得到这个函数的相应参数,之后预测的过程就只是将数据和参数代入函数得到预测值。而非参数则各有不同,像是KNN的训练只是把训练数据集存储下来,而决策树的训练过程就是构建一颗二叉树的过程,之后的预测就把预测的数据代入二叉树找到其应该所在的叶子节点。

我的疑惑就在于决策树训练过程中所构建的这颗二叉树里面本身就包含了很多参数,比如每个非叶子节点上的划分值,既然有参数为什么不叫参数学习呢。

写回答

1回答

liuyubobobo

2023-09-08

如你所说,参数学习和非参数学习的关键区分是:数据是否符合某个预设的函数。这个函数长什么样子,是在看到数据之前就确定了的。


在你后面的叙述中,相当于再说决策树的这个树结构就是这个函数。你这么理解没有问题(恩深就拓展了数学中的“函数”的概念)。但关键在于,这个函数是什么样子(这棵树的形态),是不能提前确定的?

在决策树算法中,这个树的形态,是有可能根据数据而发生变化的。数据不同,这棵树的深度,每个节点左右子树的形态,都会发生变化。注意,我在强调结构的变换,而不仅仅是每个节点上参数的变化。


而相对应的,参数学习的模型结构是固定的,比如线性回归,就是 y = theta * x + b,这个“结构”是在看数据之前就能确定的。数据只决定了其中的参数的大小。


继续加油!:)

0
0

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5864 学习 · 2451 问题

查看课程