返回顶部
首页 > 资讯 > 后端开发 > Python >python机器学习基础决策树与随机森林概率论
  • 311
分享到

python机器学习基础决策树与随机森林概率论

2024-04-02 19:04:59 311人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录一、决策树原理概述1.决策树原理2.信息论①信息熵②决策树的分类依据③其他决策树使用的算法④决策树api二、决策树算法案例1.案例概述2.数据处理3.特征工程4.使用决策树进行预

一、决策树原理概述

1.决策树原理

决策树的分类原理,相当于程序中的if-then结构,通过条件判断,来决定结果。

2.信息论

①信息熵

假设有32支球队,在不知道任何信息的情况下,以二分法去猜冠军,最多猜log(2)32 = 5次。此时:每个球队的夺冠概率为1/32,那么:

5 = -(1/32log1/32 + 1/32log1/32 + ......)共32项相加。

若事先可以得知一点点信息,则使用二分法猜冠军的时候,次数一定比5次小,那么它的准确信息量应该是:

H = -(p1logp1 + p2logp2 + ... + p32logp32)

则H称为信息熵,单位为比特bit。

根据以上内容,可知,信息是和消除不确定性相联系的。当毫无信息的时候,信息熵最大,只要有了一定的信息,那么信息熵就会减小,不确定性也会减小。

②决策树的分类依据

信息增益:当得知一个特征条件之后,减少的信息熵的大小。计算公式如下:

每一个特征所对应的信息增益都可以通过上式计算出来,通过比较,信息增益最大的作为首要的分类标准。也就是说,每一个特征都可能对减小信息熵有作用,并且作用大小不一样。作用越大,减少的信息熵越大,则该特征越重要,便可首先拿这个最重要的作为分类标准。

③其他决策树使用的算法

其中,基尼系数对样本的划分更加仔细,甚至能对训练集分类达到100%,但通常这种情况下,会导致模型在测试集中的表现不好,因为它为了达到更高的拟合度,会过于针对训练集样本,由此降低了普遍性。

④决策树API

二、决策树算法案例

1.案例概述

本案例中,使用泰坦尼克号上的乘客数据作为样本,是否存活作为目标值。样本特征包含年龄、性别、目的地、船舱类型等等。我们在模型训练中,只使用了船舱类型(Pclass),性别(Sex),年龄(Age)这三个作为训练集样本特征。

2.数据处理

假设已经获取到了数据集,并赋值给titan

找出特征值和目标值:x = titan[['Pclass', 'Age', 'Sex']] y = titan['Survived']

缺失值处理:x['Age'].fillna(x['Age'].mean(), inplace=True)

分割数据集:x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25)

3.特征工程

由于船舱类型和性别的数据都不是数字,因此需要用one-hot编码来代替特征数据。通过字典数据处理,即可生成。因此,需要将训练集转换为字典,通过DictVectorizer转换即可。(注意:转换的是整个训练集,而不是单独转换某几列)

实例化转换器:dict = DictVectorizer(sparse = False)

对训练集转换:x_train = dict.fit_transfORM(x_train.to_dict,(orient='records'))

对测试集转换:x_test = dict.transform(x_test.to_dict(orient='records'))

4.使用决策树进行预测

预测后可以使用graphviz查看图像化的决策树。需要先安装,将导出的dot文件直接放在graphviz目录下,在命令行,通过 dot -Tpng tree.dot -o tree.png命令即可导出png图像。

dec = DecisionTreeClassifier()

训练算法:dec.fit(x_train,y_train)

打印准确率:print(dec.score(x_test, y_test))

导出树的结构:tree.export_graphviz(dec, out_file='D:/Graphviz/tree.dot', feature_names= [","])

注意,最后一个feature_names,直接在特征工程中,调用dict.get_feature_names,即可输出所需内容。

5.决策树优缺点及改进

优点:

原理及解释较为简单,并且可以将树木可视化

需要很少的数据准备,其他技术通常需要数据归一化

缺点:

决策树学习者可以创建不能很好地推广数据的过于复杂的树,这被称为过拟合。

决策树可能不稳定,因为数据的小变化可能会导致完全不同的树被生成

改进:

减枝cart算法、随机森林

三、随机森林

1.集成学习方法

集成学习通过建立几个模型组合的来解决单一预测问题。它的工作原理是生成多个分类器/模型,各自独立地学习和作出预测。这些预测最后结合成单预测,因此优于任何一个单分类的做出预测。

随机森林就是一种继承学习方法,定义:在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。

2.单个树建立过程

①随机在N个样本中,有放回地选择一个样本,重复N次,样本可能重复

②随机在M个特征中选出m个特征,m取值小于总特征M

假如建立了10棵决策树,他们的样本以及特征大多都是不一样的。使用随机有返回的抽样(bootstrap抽样)。

3.随机森林API

随机森林超参数:

n_estimator:决策树数量

max_depth:每棵树深度限制

4.随机森林使用案例

还是用上面决策树的案例,假设已经准备好了训练集x_train, y_train,测试集x_test, y_test

rf = RandomForestClassifier()

由于随机森林有超参数n_estimator,max_depth,因此可以使用网格搜索交叉验证,对不同的参数组合进行一一验证,寻找最好的参数组合模型。

设置超参数取值:param = {'n_estimator':[100,200,300,400,500], 'max_depth':[5,10,15,20]}

实例化算法:GC = GridSearchCV(rf, param_grid=param, cv=2) (假设使用二折验证)

训练算法:gc.fit(x_train, y_train)

输出准确率:gc.score(x_test, y_test)

查看所选择的参数模型:gc.best_params_

5.随机森林的优点

①在当前所有算法中,具有极好的准确率

②能够有效地运行在大数据集上(样本数、特征数)

③能够处理具有高维特征的输入样本,而且不需要降维

④能够评估各个特征在分类问题上的重要性

以上就是python机器学习基础决策树与随机森林概率论的详细内容,更多关于Python决策树与随机森林概率论的资料请关注编程网其它相关文章!

--结束END--

本文标题: python机器学习基础决策树与随机森林概率论

本文链接: https://lsjlt.com/news/157189.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python机器学习基础决策树与随机森林概率论
    目录一、决策树原理概述1.决策树原理2.信息论①信息熵②决策树的分类依据③其他决策树使用的算法④决策树API二、决策树算法案例1.案例概述2.数据处理3.特征工程4.使用决策树进行预...
    99+
    2024-04-02
  • Python机器学习之决策树和随机森林
    目录什么是决策树决策树组成节点的确定方法决策树基本流程决策树的常用参数代码实现决策树之分类树网格搜索在分类树上的应用分类树在合成数据的表现什么是随机森林随机森林的原理随机森林常用参数决策树和随机森林效果实例用随机森林...
    99+
    2022-06-02
    Python 决策树 Python 随机森林
  • Python机器学习之决策树
    目录一、要求二、原理三、信息增益的计算方法四、实现过程五、程序六、遇到的问题一、要求 二、原理 决策树是一种类似于流程图的结构,其中每个内部节点代表一个属性上的“测试”,每个分支代...
    99+
    2024-04-02
  • Python机器学习利用随机森林对特征重要性计算评估
    目录1 前言2 随机森林(RF)简介3 特征重要性评估4 举个例子5 参考文献1 前言 随机森林是以决策树为基学习器的集成学习算法。随机森林非常简单,易于实现,计算开销也很小,更令人...
    99+
    2024-04-02
  • Python机器学习之基础概述
    目录一、基础概述二、算法分类三、研究内容一、基础概述 机器学习(Machine Learing)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多...
    99+
    2024-04-02
  • 机器学习python实战之决策树
    决策树原理:从数据集中找出决定性的特征对数据集进行迭代划分,直到某个分支下的数据都属于同一类型,或者已经遍历了所有划分数据集的特征,停止决策树算法。   每次划分数据集的特征都有很多,那么我们怎么来选择到底...
    99+
    2022-06-04
    实战 机器 决策树
  • 分析机器学习之决策树Python实现
    目录一、环境准备二、决策树是什么三、快速入门分类树四、详细分析入门案例五、分类树参数解释5.1、criterion5.2、random_state & splitter5.3、剪枝参数5.4、目标权重参数:c...
    99+
    2022-06-02
    Python 决策树 Python 机器学习
  • Python机器学习算法之决策树算法的实现与优缺点
    目录1.算法概述2.算法种类3.算法示例4.决策树构建示例5.算法实现步骤 6.算法相关概念7.算法实现代码8.算法优缺点9.算法优化总结1.算法概述 决策树算法是在已知各...
    99+
    2024-04-02
  • Python机器学习应用之基于决策树算法的分类预测篇
    目录一、决策树的特点 1.优点 2.缺点 二、决策树的适用场景 三、demo一、决策树的特点 1.优点 具有很好的解释性,模型可以生成可以理解的规则。可以发现特征的重要程度。模型...
    99+
    2024-04-02
  • Python机器学习应用之决策树分类实例详解
    目录一、数据集二、实现过程1 数据特征分析2 利用决策树模型在二分类上进行训练和预测3 利用决策树模型在多分类(三分类)上进行训练与预测三、KEYS1 构建过程2 划分选择3 重要参...
    99+
    2024-04-02
  • python机器基础逻辑回归与非监督学习
    目录一、逻辑回归1.模型的保存与加载2.逻辑回归原理①逻辑回归的输入②sigmoid函数③逻辑回归的损失函数④逻辑回归特点3.逻辑回归API4.逻辑回归案例①案例概述②具体流程5.逻...
    99+
    2024-04-02
  • python机器学习基础线性回归与岭回归算法详解
    目录一、什么是线性回归1.线性回归简述2.数组和矩阵数组矩阵3.线性回归的算法二、权重的求解1.正规方程2.梯度下降三、线性回归案例1.案例概述2.数据获取3.数据分割4.数据标准化...
    99+
    2024-04-02
  • 【Python】机器学习:基础前置 | 矩阵的表示与定义 | Numpy 库 | Identity 身份矩阵 | 逆矩阵和转置
       💭 写在前面:我们先介绍线性方程体系的基本概念和矩阵表示方法,矩阵的定义、加法、乘法、逆矩阵、转置和标量乘法等。然后讲解如何解决线性方程组问题,包括解集形式、行阶梯形矩阵、计算逆置和解决线性方程组的算法等。本节将补充线性代数的基础知识...
    99+
    2023-09-10
    机器学习 线性代数 人工智能
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作