机器学习(决策树(CART|机器学习:决策树(CART 、决策树中的超参数))
- 老师:非参数学习的算法都容易产生过拟合;
1)创建方式
- 决策树算法
- 既可以解决分类问题,又可以解决回归问题;
- CART 创建决策树的方式:根据某一维度 d 和某一个 阈值 v 进行二分;(得到的是一个二叉树)
- scikit-learn 中的创建决策树的方式:CART(Classification And Regression Tree),也就是二叉树的方式;
- 创建决策树的方式有多种:ID3、C4.5、C5.0、CART;
2)二叉树的实际复杂度
- 预测样本时的时间复杂度:O(logm)
- m:待预测的样本个数;
- logm:表示“树”的高度,也就是 “树” 一共有 logm 层;
- 可以这样理解:每一次的节点划分,都是对当前实际的对半划分,则“树”的高度是 logm ;当传入一个未知的新的样本时,从根节点处开始一步一步做决策,走到“叶子”节点;
- 训练决策树模型时的时间复杂度:O(n*m*logm)
- X_train 是(m,n);
- “树”是 logm 级别的,如果每一层只划分一个节点,在一个节点上大概都要对数据集做 n*m 次划分,则训练的时间复杂度为 O(n*m*logm);
二、scikit-learn 中决策树算法的参数
1)决策树算法的问题
- 训练决策树模型的时间复杂度比较大:O(n*m*logm);
- 训练决策树模型时容易产生过拟合;(这也是所有非参数学习算法的共同问题)
- 方案:剪枝——可降低复杂度,同时解决过拟合;
2)常用参数
- 参数的功能:防止模型过拟合或欠拟合,降低训练模型的时间复杂度;
-
from sklearn.tree import DecisionTreeClassifierdt_clf = DecisionTreeClassifier(max_depth=2, criterion='entropy', min_samples_split=10, min_samples_leaf=6, max_leaf_nodes=4) dt_clf.fit(X, y)
- max_depth = 2:决策树模型的最高深度为 2;
- criterion = 'entropy':划分节点数据集时,采用信息熵为判断条件;
- criterion = 'gini':划分节点数据集时,采用基尼系数为判断条件;
- min_samples_split = 10:节点数据集中至少要有 10 个样本,才能继续对节点数据集进行划分;否则即使信息熵和基尼系数都比较大,也不在划分数据集;
- min_samples_leaf = 6:一个“叶子”节点,至少要有 6 个样本;
- max_leaf_nodes = 4:模型最多只能有 4 个“叶子”节点;
- scikit-learn 中的决策树算法中还有很多其它参数,可查官方文档;
- 实际应用中,需要将各种参数相互组合,可以用网格搜索的方式找到最佳的一组;
【机器学习(决策树(CART|机器学习:决策树(CART 、决策树中的超参数))】转载于:https://www.cnblogs.com/volcao/p/9480431.html
推荐阅读
- 由浅入深理解AOP
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- 一起来学习C语言的字符串转换函数
- 定制一套英文学习方案
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)
- 《深度倾听》第5天──「RIA学习力」便签输出第16期
- 如何更好的去学习
- 【韩语学习】(韩语随堂笔记整理)
- 焦点学习田源分享第267天《来访》