首页 > 其他分享 >【机器学习】决策树模型(个人笔记)

【机器学习】决策树模型(个人笔记)

时间:2024-06-10 11:12:29浏览次数:26  
标签:10 frac log 模型 tree 笔记 基尼 bigg 决策树

目录

源代码文件请点击此处

多样性指标

基尼杂质指数(Gini Impurity Index)

若集合中包含 \(m\) 个元素和 \(n\) 个类别,其中 \(a_i\) 个元素属于第 \(i\) 个类别,则:

\[基尼杂质指数 = 1 - p_1^2 - p_2^2 - ... - p_n^2 \\ 其中,p_i = \frac{a_i}{m}(表示选择该元素的概率) \]

【案例 1】{红,红,红,红,红,红,红,红,蓝,蓝}(8 个红球,2 个蓝球)

\[基尼杂质指数 = 1 - \bigg(\frac{8}{10}\bigg)^2 - \bigg(\frac{2}{10}\bigg)^2 = 0.32 \]

【案例 2】{红,红,红,红,蓝,蓝,蓝,黄,黄,绿}(4 个红球,2 个蓝球,2 个黄球,1 个绿球)

\[基尼杂质指数 = 1 - \bigg(\frac{4}{10}\bigg)^2 - \bigg(\frac{3}{10}\bigg)^2 - \bigg(\frac{2}{10}\bigg)^2 - \bigg(\frac{1}{10}\bigg)^2 = 0.70 \]

基尼指数越低,集合中的元素就越相似(数据集多样性越低)。

熵(Entropy)

若集合中包含 \(m\) 个元素和 \(n\) 个类别,其中 \(a_i\) 个元素属于第 \(i\) 个类别,则:

\[熵 = - p_1 \log_2(p_1) - p_2 \log_2(p_2) - ... - p_n \log_2(p_n) \\ 其中,p_i = \frac{a_i}{m}(表示选择该元素的概率) \]

【案例 1】{红,红,红,红,红,红,红,红,蓝,蓝}(8 个红球,2 个蓝球)

\[熵 = - \frac{8}{10}\log_2 \bigg(\frac{8}{10}\bigg) - \frac{2}{10}\log_2 \bigg(\frac{2}{10}\bigg) = 0.722 \]

【案例 2】{红,红,红,红,蓝,蓝,蓝,黄,黄,绿}(4 个红球,2 个蓝球,2 个黄球,1 个绿球)

\[熵 = - \frac{4}{10}\log_2 \bigg(\frac{4}{10}\bigg) - \frac{3}{10}\log_2 \bigg(\frac{3}{10}\bigg) - \frac{2}{10}\log_2 \bigg(\frac{2}{10}\bigg) - \frac{1}{10}\log_2 \bigg(\frac{1}{10}\bigg) = 1.846 \]

熵越低,集合中的元素就越相似(数据集多样性越低)。

决策树的应用

我们所使用的数据集如下:

dataset = pd.DataFrame({
        'x_0': [7, 3, 2, 1, 2, 4, 1, 8, 6, 7, 8, 9],
        'x_1': [1, 2, 3, 5, 6, 7, 9, 10, 5, 8, 4, 6],
        'y': [0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1]})
features = dataset[['x_0', 'x_1']]
labels = dataset['y']

使用基尼指数作为划分标准的决策树如下:

decision_tree = DecisionTreeClassifier(criterion='gini')
decision_tree.fit(features, labels)
decision_tree.score(features, labels)
tree.plot_tree(decision_tree, rounded=True, feature_names=['x_0', 'x_1'], class_names=['0', '1'])

image

image

使用基尼指数作为划分标准的决策树(划分深度只到第一层)如下:

 decision_tree_depth_1 = DecisionTreeClassifier(criterion='gini', max_depth=1)
decision_tree_depth_1.fit(features, labels)
decision_tree_depth_1.score(features, labels)
tree.plot_tree(decision_tree_depth_1, rounded=True, feature_names=['x_0', 'x_1'], class_names=['0', '1'])

image

image

标签:10,frac,log,模型,tree,笔记,基尼,bigg,决策树
From: https://www.cnblogs.com/Mount256/p/18240486

相关文章

  • 大模型在传统行业应用再思考
    前言上周去杭州开人工智能研讨会之前,写了一篇文章《大模型是连接主义的胜利吗?》。这篇文章实验了大模型对复杂规则的推理能力,总结了两个观点:不能过于迷信大模型的能力,它并不是万能的。大模型基于相关性,不是因果性。它需要传统的机理模型、符号推理等弥补自身缺陷。比如大模型并......
  • 书生·浦语大模型实战营 第七节课 OpenCompass 大模型评测实战(内容扩展)
    读前感:对这个章节实际上并没有特别多的兴趣,可能在为了评估自己训练的RAG或FT时可以用到。读后感:本章节内容扩展比较多,在教程之外,手把手重新做了一整套的数据集并进行了测试。有兴趣的可以关注一下。学过之后才深刻感受到大模型的测试评估是大模型应用的基础,只未来必不可少......
  • css选择器,盒子模型,定位,动画
    css返回到Java开发知识汇总目录1.基本选择器标签选择器:标签名字类选择器:.classnameid选择器:#2.层次选择器后代选择器:bodyp子选择器,1代,所有的p:body>p兄弟相邻选择器:.classname+p只选择当前相邻的下一个元素通用兄弟选择器:.classname~p选中当前......
  • OSI七层模型与TCP\IP四层模型
    1、OSI(OpenSystemsInterconnection)七层模型是由国际标准化组织(ISO)提出的一个理论框架,用于描述网络通信的过程。这个模型将网络通信的功能分为七个独立的层级,每一层都负责特定的任务,并且依赖于其下一层提供的服务。下面是OSI七层模型的详细解释:1.**应用层(ApplicationLayer......
  • 计算机网络模型面试题50题
    在准备计算机网络模型相关的面试题时,可以围绕OSI七层模型、TCP/IP模型以及它们的相关协议、功能和应用场景来设计问题。下面是一些典型的面试题,涵盖从基础知识到更深层次的理解:###OSI七层模型1.描述OSI七层模型的每一层及其主要功能。2.OSI模型中哪些层负责数据的加密和......
  • ollama gpu 集成测试qwen2 7b 模型
    昨天测试了下基于ollamacpu模式运行的qwen2对于小参数0.5b以及1.5b的速度还行,但是你的cpu核数以及内存还是需要大一些今天测试下基于gpu的qwen27b模型,以下简单说明下安装ollama如果我们申请的机器包含了GPU,ollama的安装cli还是比较方便的,会直接帮助我们进行gpu驱......
  • 【PB案例学习笔记】-04文件浏览器
    写在前面这是PB案例学习笔记系列文章的第4篇,该系列文章适合具有一定PB基础的读者。通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。文章中设计到的源码,小凡都上传到了gitee代码仓库https://gitee.com/xiezhr/pb-project-example.gi......
  • Prov-GigaPath:新型数字病理基础模型|顶刊精析·2024-06-10
    小罗碎碎念顶刊精析|2024-06-10首先祝各位老师、师兄师姐、师弟师妹们端午节快乐!!小罗是社恐,所以就不一一发消息问候了,哈哈。今天这篇推文是昨天下午写完的,想着时间有点晚了,所以就放到今天发了。这篇文献想必很多研究病理组学的老师已经看到了,朋友圈也看到了这篇文献相......
  • CF Round 920 (Div. 3) 笔记
    CFRound920(Div.3)笔记前言关于这个新系列,是我们的老师推荐给我们的。他说,多打Codeforces的比赛能增长我们的实战知识,提升我们的实力。我当然是非常相信的,因为老师说能提升\(200\)多分,从\(\text{CSP-J}100\)多分的蒟蒻变成\(300\)多分的大佬。那么,我会持续出Code......
  • 读AI未来进行式笔记01深度学习
    1.      AI1.1.        AI已经发展成一门涵盖许多子领域的重要学科1.2.        机器学习是迄今为止AI应用最成功的子领域1.2.1.          在这个领域中,最大的技术突破就是深度学习1.3.        “人工智能”“机器学习”和“......