xiaoxiaokeke 2020-06-25
|
TensorFlow|
Keras |
python & mathematics
决策树是基于区域(region-based)的机器学习方法,是非线性的。
主要用于为集合进行分配,达到分配的子集的并为全集,各子集互不相交
即:
$\chi = \cup^n_{i=0} R_i$
$R_i \cap R_j = \phi , i = \not j$
构建决策树最重要的环节其实就是选择分类变量,
分类变量的存在使得产生非线性解,
损失函数一般采用misclass或者cross-entropy
决策树能够很好的解决非线性分类,但是树的生成的终止条件很难把握,并且由于生成的随机性,往往使得决策树过于敏感,容易发生过拟合。所以对于一个分类变量最好不要进行过多次的分类,叶子节点中的样本数量不能过少。
from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifier iris = load_iris() X = iris.data[:, 2:] y = iris.target tree_clf = DecisionTreeClassifier(max_depth=2) tree_clf.fit(X, y) #X y皆为矩阵