【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)

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

相关文章
|
11天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
37 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
13天前
|
机器学习/深度学习 数据采集 人工智能
探索机器学习:从理论到Python代码实践
【10月更文挑战第36天】本文将深入浅出地介绍机器学习的基本概念、主要算法及其在Python中的实现。我们将通过实际案例,展示如何使用scikit-learn库进行数据预处理、模型选择和参数调优。无论你是初学者还是有一定基础的开发者,都能从中获得启发和实践指导。
28 2
|
15天前
|
机器学习/深度学习 数据采集 搜索推荐
利用Python和机器学习构建电影推荐系统
利用Python和机器学习构建电影推荐系统
32 1
|
15天前
|
机器学习/深度学习 算法 PyTorch
用Python实现简单机器学习模型:以鸢尾花数据集为例
用Python实现简单机器学习模型:以鸢尾花数据集为例
39 1
|
21天前
|
机器学习/深度学习 数据采集 算法
Python机器学习:Scikit-learn库的高效使用技巧
【10月更文挑战第28天】Scikit-learn 是 Python 中最受欢迎的机器学习库之一,以其简洁的 API、丰富的算法和良好的文档支持而受到开发者喜爱。本文介绍了 Scikit-learn 的高效使用技巧,包括数据预处理(如使用 Pipeline 和 ColumnTransformer)、模型选择与评估(如交叉验证和 GridSearchCV)以及模型持久化(如使用 joblib)。通过这些技巧,你可以在机器学习项目中事半功倍。
26 3
|
6月前
|
机器学习/深度学习 存储 搜索推荐
利用机器学习算法改善电商推荐系统的效率
电商行业日益竞争激烈,提升用户体验成为关键。本文将探讨如何利用机器学习算法优化电商推荐系统,通过分析用户行为数据和商品信息,实现个性化推荐,从而提高推荐效率和准确性。
239 14
|
6月前
|
机器学习/深度学习 算法 数据可视化
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
118 1
|
6月前
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
|
6月前
|
机器学习/深度学习 数据采集 算法
解码癌症预测的密码:可解释性机器学习算法SHAP揭示XGBoost模型的预测机制
解码癌症预测的密码:可解释性机器学习算法SHAP揭示XGBoost模型的预测机制
313 0
|
6月前
|
机器学习/深度学习 数据采集 监控
机器学习-特征选择:如何使用递归特征消除算法自动筛选出最优特征?
机器学习-特征选择:如何使用递归特征消除算法自动筛选出最优特征?
922 0
下一篇
无影云桌面