【Python机器学习】决策树与随机森林的讲解及决策树在决策决策问题中实战(图文解释 附源码)

简介: 【Python机器学习】决策树与随机森林的讲解及决策树在决策决策问题中实战(图文解释 附源码)

需要源码请点赞关注收藏后评论区留言私信~~~

在生活中人们经常应用决策树的思想来做决定

分类的建模过程与上面做决定的过程相反,事先不知道人们的决策思路,需要通过人们已经做出的大量决定来“揣摩”出其决策思路,也就是通过大量数据来归纳道理。

当影响决策的因素较少时,人们可以直观地从训练样本中推测出相亲决策思路,从而了解此人的想法。

当样本和特征数量较多时,且训练样本可能出现冲突,人就难以胜任建立模型的任务。此时,一般要按一定算法由计算机来自动完成归纳,从而建立起可用来预测的模型,并用该模型来预测测试样本,从而筛选相亲对象。

决策树基本思想

决策树模型是一种对测试样本进行分类的树形结构,该结构由结点(node)和有向边(directed edge)组成

内部节点(internal node)表示对样本的一个特征进行测试

叶节点(leaf node)表示样本的一个分类

二叉树:只对一个特征的1个具体值进行测试,只有正(大于等于)或负(小于)2个输出

多叉树:对一个特征的多个具体值进行测试,将产生多个输出

使用决策树进行决策的过程是从根节点开始,依次测试样本相应的特征,并按照其值选择输出分支,直到到达叶子节点,然后将叶子节点存放的类别作为决策结果

决策树建立与应用

找分裂点是算法的关键,习惯上称为样本集分裂,依其解决方法可将决策树算法分为ID3、C4.5、CART等算法。 依据的指标分为信息增益(Information Gain)、增益率(gain ratio)和基尼指数(Gini Index)等,它们都是以信息论为理论基础,它们的目标都是建立层次尽可能少的决策树。

决策树模型还可以用于回归问题。树模型解决回归问题的基本思想是将样本空间切分为多个子空间,在每个子空间中单独建立回归模型,因此,基于树的回归模型属于局部回归模型。与局部加权线性回归模型和K近邻法不同的是,基于树的回归模型事先会生成固定的模型,不需要在每次预测时都计算每个训练样本的权值,因此效率相对较高。

sklearn中的树回归算法在tree模块中的DecisionTreeRegressor类中实现。

在相亲决策中应用如下

可以看出明显收入在相亲中还是很重要的 还是要多赚钱...

部分代码如下

from sklearn import tree
clf = tree.DecisionTreeClassifier() # 实例化
clf = clf.fit(blind_date_X, blind_date_y) # 建树
tree.plot_tree(clf) # 画出树结构
print(clf.feature_importances_) # 给出特征的重要度

随机森林

随机森林算法的基本思想是从样本集中有放回地重复随机抽样生成新的样本集合,然后无放回地随机选择若干特征生成一颗决策树,若干颗决策树组成随机森林,在预测分类时,将测试样本交由每个决策树判断,并根据每颗树的结果投票决定最终分类。

随机森林算法具有准确率高、能够处理高维数据和大数据集、能够评估各特征的重要性等优势,在工程实践和各类机器学习竞赛中得到了广泛的应用。

随机森林的方法代码如下

class sklearn.ensemble.RandomForestClassifier(n_estimators=’warn’, criterion=’gini’, max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=’auto’, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, bootstrap=True, oob_score=False, n_jobs=None, random_state=None, verbose=0, warm_start=False, class_weight=None)
apply(self, X)
decision_path(self, X)
fit(self, X, y[, sample_weight])
get_params(self[, deep])
predict(self, X)
predict_log_proba(self, X)
predict_proba(self, X)
score(self, X, y[, sample_weight])
set_params(self, \*\*params)

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
4月前
|
Python
用python进行视频剪辑源码
这篇文章提供了一个使用Python进行视频剪辑的源码示例,通过结合moviepy和pydub库来实现视频的区间切割和音频合并。
96 2
|
2月前
|
JSON 开发工具 git
基于Python和pygame的植物大战僵尸游戏设计源码
本项目是基于Python和pygame开发的植物大战僵尸游戏,包含125个文件,如PNG图像、Python源码等,提供丰富的游戏开发学习素材。游戏设计源码可从提供的链接下载。关键词:Python游戏开发、pygame、植物大战僵尸、源码分享。
|
3月前
|
机器学习/深度学习 算法 数据挖掘
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧1
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧
74 5
|
3月前
|
机器学习/深度学习 数据采集 分布式计算
【Python篇】深入机器学习核心:XGBoost 从入门到实战
【Python篇】深入机器学习核心:XGBoost 从入门到实战
284 3
|
3月前
|
自然语言处理 Java 编译器
为什么要看 Python 源码?它的结构长什么样子?
为什么要看 Python 源码?它的结构长什么样子?
54 2
|
3月前
|
机器学习/深度学习 算法 数据可视化
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧2
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧
52 1
|
3月前
|
Python
源码解密 Python 的 Event
源码解密 Python 的 Event
54 1
|
3月前
|
机器学习/深度学习 数据采集 算法
一个 python + 数据预处理+随机森林模型 (案列)
本文介绍了一个使用Python进行数据预处理和构建随机森林模型的实际案例。首先,作者通过删除不必要的列和特征编码对数据进行了预处理,然后应用随机森林算法进行模型训练,通过GridSearchCV优化参数,最后展示了模型的评估结果。
67 0
|
3月前
|
数据采集 前端开发 Python
Python pygame 实现游戏 彩色 五子棋 详细注释 附源码 单机版
Python pygame 实现游戏 彩色 五子棋 详细注释 附源码 单机版
105 0
|
4月前
|
机器学习/深度学习 算法 Python
决策树下的智慧果实:Python机器学习实战,轻松摘取数据洞察的果实
【9月更文挑战第7天】当我们身处数据海洋,如何提炼出有价值的洞察?决策树作为一种直观且强大的机器学习算法,宛如智慧之树,引领我们在繁复的数据中找到答案。通过Python的scikit-learn库,我们可以轻松实现决策树模型,对数据进行分类或回归分析。本教程将带领大家从零开始,通过实际案例掌握决策树的原理与应用,探索数据中的秘密。
61 1