【机器学习】决策树------迅速了解其基本思想,Sklearn的决策树API及构建决策树的步骤!!!

简介: 【机器学习】决策树------迅速了解其基本思想,Sklearn的决策树API及构建决策树的步骤!!!

学习目标

🍀 了解决策树算法的基本思想

🍀 了解Sklearn的决策树API

🍀 知道构建决策树的三个步骤

🍔 案例剖析

有的同学可能在大学学习过一门课程叫《数据结构》,里面有一个重要的结构就是“树”,和现实生活中的树一样,树的主要由四部分树根树干树枝树叶组成,今天的决策树也是一种树结构,大家学习的时候可以想象现实生活中的树来来理解。

决策树算法是一种监督学习算法,英文是Decision tree。

决策树思想的来源非常朴素,试想每个人的大脑都有类似于if-else这样的逻辑判断,这其中的if表示的是条件,if之后的then就是一种选择或决策。程序设计中的条件分支结构就是if-then结构,最早的决策树就是利用这类结构分割数据的一种分类学习方法。

比如:你母亲要给你介绍男朋友,是这么来对话的:

女儿:多大年纪了?

母亲:26。

女儿:长的帅不帅?

母亲:挺帅的。

女儿:收入高不?

母亲:不算很高,中等情况。

女儿:是公务员不?

母亲:是,在税务局上班呢。

女儿:那好,我去见见。

于是你在脑袋里面就有了下面这张图:

作为女孩的你在决策过程就是典型的分类树决策。相当于通过年龄、长相、收入和是否公务员对将男人分为两个类别:见和不见。

🍔 通过sklearn实现决策树分类并进一步认识决策树

基于鸢尾花数据绘制图像

import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
iris = datasets.load_iris()
X = iris.data[:,2:]
y = iris.target
plt.scatter(X[y==0,0],X[y==0,1])
plt.scatter(X[y==1,0],X[y==1,1])
plt.scatter(X[y==2,0],X[y==2,1])
plt.show()

训练决策树模型

from sklearn.tree import DecisionTreeClassifier
tree = DecisionTreeClassifier(max_depth=2,criterion="entropy")
tree.fit(X,y)

依据模型绘制决策树的决策边界

#找到模型的决策边界,并绘制图像(此方法所用到的api不需要掌握,能够调用就行)
def plot_decision_boundary(model,axis):
    x0,x1 = np.meshgrid(
        np.linspace(axis[0],axis[1],int((axis[1]-axis[0])*100)).reshape(-1,1),
        np.linspace(axis[2],axis[3],int((axis[3]-axis[2])*100)).reshape(-1,1)
    )
    X_new = np.c_[x0.ravel(),x1.ravel()]
    y_predict = model.predict(X_new)
    zz = y_predict.reshape(x0.shape)
    
    from matplotlib.colors import ListedColormap
    custom_map = ListedColormap(["#EF9A9A","#FFF59D","#90CAF9"])
    
    plt.contourf(x0,x1,zz,linewidth=5,cmap=custom_map)
    
plot_decision_boundary(tree,axis=[0.5,7.5,0,3])
plt.scatter(X[y==0,0],X[y==0,1])
plt.scatter(X[y==1,0],X[y==1,1])
plt.scatter(X[y==2,0],X[y==2,1])
plt.show()

树模型可视化

from sklearn.tree import plot_tree
import matplotlib.pyplot as plt
plot_tree(tree,filled=True)
plt.show()

从上面的可视化图形中看出

  • X[1] <=0.8 作为第一次分割的依据,满足条件的所有样本均为统一类别
  • X[1]>0.8的,依据 X[1]<=0.75 为划分依据
  • 由于设置了树的最大深度为2,第二层的两个叶子节点没有完全区分开

🍔 基于规则构建决策树

在商业的数据挖掘中,不同的消费行为顾客特征的提炼和表述极为重要。

我们模拟了部分顾客及其消费行为数据,包括如下特征:

  • 用户是否购买某种产品(0购买,1不购买)
  • 年龄(青年0,中年1,老年2)
  • 收入(高0,中1,低2)
  • 学生(是1,否0)
  • 信誉(良0,优1)。

我们收集了如表1-1的部分用户购买数据,建立了一张统一的调查表,统计几个月的销售数据。我们要对下表中潜在的客户进行分析,并根据得到的一些特征用于销售人员制定销售策略等工作。

总结为两个问题:

(1) 如何对客户进行分类?

(2) 如何根据分类的依据,给出销售人员的指导意见?

通过上述分析,即可解决问题:

(1)如何对客户进行分类?

答:根据数据集中收集的用户的特征信息

(2)如何根据分类依据,给出销售指导意见呢?

答:给出这样的销售意见:

中年人通常会无条件购买

青年人中如果是学生一般会购买

老年人中信誉好的常常会购买

下面我们思考,如何得到这样的分析结果信息?我们可以通过基于规则建树实现。

从定性的角度画出决策树:

从定量的角度画出决策树:

为什么需要从定量角度来分析呢?

答:这样会更精确的分析用户的特征信息,给出销售人员更准确的数据信息。

根据该树可以解决问题:

(1)如何对客户进行分类?

答:根据数据集中收集的用户的特征信息

(2)如何根据分类依据,给出销售指导意见呢?

答:给出这样的销售意见:

中年人通常会无条件购买

青年人中如果是学生一般会购买

老年人中信誉好的常常会购买

  • 以上就是基于规则建树,接下来我们总结构建决策树三要素。
  • 同时思考,上述建树过程有哪些地方可以优化?

接下来总结出构建决策树三要素

🍔 构建决策树的三个步骤

🐼 通过上述总结分析,归纳总结构建决策树包括三个步骤:

  • 特征选择:选取有较强分类能力的特征
  • 决策树生成
  • 决策树剪枝

🍔 小结

🍬 决策树算法:

  • 是非参数学习算法
  • 可以解决分类(多分类)问题
  • 可以解决回归问题:落在叶子节点的数据的平均值作为回归的结果

🍬 决策树API:

  • from sklearn.tree import DecisionTreeClassifier
  • from sklearn.tree import plot_tree

🍬 构建决策树的三个步骤:

  • 特征选择:选取有较强分类能力的特征
  • 决策树生成
  • 决策树剪枝
相关文章
|
23天前
|
数据采集 机器学习/深度学习 搜索推荐
利用通义大模型构建个性化推荐系统——从数据预处理到实时API部署
本文详细介绍了基于通义大模型构建个性化推荐系统的全流程,涵盖数据预处理、模型微调、实时部署及效果优化。通过采用Qwen-72B结合LoRA技术,实现电商场景下CTR提升58%,GMV增长12.7%。文章分析了特征工程、多任务学习和性能调优的关键步骤,并探讨内存优化与蒸馏实践。最后总结了大模型在推荐系统中的适用场景与局限性,提出未来向MoE架构和因果推断方向演进的建议。
149 10
|
29天前
|
监控 安全 API
电商API行业标准与规范体系构建:推动电商行业规范化前行
电商API行业标准与规范是推动电商高效发展的核心。通过数据格式标准化、接口设计一致性及严格的安全措施,可提升数据交互效率、保障安全并促进系统兼容性。淘宝、京东、拼多多等平台的实践展示了其重要性。未来,智能化、隐私保护强化和跨平台集成将成为主要趋势,助力电商生态持续繁荣。
|
1月前
|
搜索推荐 安全 API
电商API接口开放平台的生态构建与运营策略
本文探讨了电商API接口开放平台在推动电商行业发展中的重要作用,涵盖用户体验提升、业务创新促进、运营效率提高及销售渠道拓展等方面。同时,文章分析了生态构建的关键要素,如明确目标受众、制定吸引政策和强化支持体系,并提出数据共享、个性化服务与安全合规等运营策略。最后展望未来,指出跨平台支持、个性化服务与生态共赢将成为主要发展趋势,为电商行业的持续创新提供参考。
111 2
|
2月前
|
人工智能 自然语言处理 数据挖掘
云上玩转Qwen3系列之三:PAI-LangStudio x Hologres构建ChatBI数据分析Agent应用
PAI-LangStudio 和 Qwen3 构建基于 MCP 协议的 Hologres ChatBI 智能 Agent 应用,通过将 Agent、MCP Server 等技术和阿里最新的推理模型 Qwen3 编排在一个应用流中,为大模型提供了 MCP+OLAP 的智能数据分析能力,使用自然语言即可实现 OLAP 数据分析的查询效果,减少了幻觉。开发者可以基于该模板进行灵活扩展和二次开发,以满足特定场景的需求。
|
3月前
|
人工智能 算法 网络安全
基于PAI+专属网关+私网连接:构建全链路Deepseek云上私有化部署与模型调用架构
本文介绍了阿里云通过PAI+专属网关+私网连接方案,帮助企业实现DeepSeek-R1模型的私有化部署。方案解决了算力成本高、资源紧张、部署复杂和数据安全等问题,支持全链路零公网暴露及全球低延迟算力网络,最终实现技术可控、成本优化与安全可靠的AI部署路径,满足企业全球化业务需求。
|
24天前
|
机器学习/深度学习 存储 运维
机器学习异常检测实战:用Isolation Forest快速构建无标签异常检测系统
本研究通过实验演示了异常标记如何逐步完善异常检测方案和主要分类模型在欺诈检测中的应用。实验结果表明,Isolation Forest作为一个强大的异常检测模型,无需显式建模正常模式即可有效工作,在处理未见风险事件方面具有显著优势。
130 46
|
3月前
|
缓存 安全 API
API 接口开发与合理利用:构建高效、安全、可维护的数字桥梁
本文全面解析API接口的设计、优化与安全维护。API作为系统间交互的标准化契约,核心价值在于解耦系统、提升复用性和构建开放生态。设计时需遵循六大原则:明确输入输出、关注单一职责、实现自我表达、确保功能无重叠、保障幂等性及合理版本化。性能优化从批量处理、异步调用、并行执行等方面入手,同时结合缓存、池化技术和SQL优化提升效率。安全性涵盖加密传输、加签验签、Token认证、防重放攻击及限流熔断等十大要点。最后,通过文档自动生成、日志体系和版本管理确保接口可持续迭代。优秀的API应以契约优先、演进思维和防御心态为核心,成为系统的数字资产,支持内外部高效协作与生态建设。
|
23天前
|
缓存 自然语言处理 监控
基于通义大模型的智能客服系统构建实战:从模型微调到API部署
本文详细解析了基于通义大模型的智能客服系统构建全流程,涵盖数据准备、模型微调、性能优化及API部署等关键环节。通过实战案例与代码演示,展示了如何针对客服场景优化训练数据、高效微调大模型、解决部署中的延迟与并发问题,以及构建完整的API服务与监控体系。文章还探讨了性能优化进阶技术,如模型量化压缩和缓存策略,并提供了安全与合规实践建议。最终总结显示,微调后模型意图识别准确率提升14.3%,QPS从12.3提升至86.7,延迟降低74%。
233 14
|
24天前
|
JSON 编解码 API
Go语言网络编程:使用 net/http 构建 RESTful API
本章介绍如何使用 Go 语言的 `net/http` 标准库构建 RESTful API。内容涵盖 RESTful API 的基本概念及规范,包括 GET、POST、PUT 和 DELETE 方法的实现。通过定义用户数据结构和模拟数据库,逐步实现获取用户列表、创建用户、更新用户、删除用户的 HTTP 路由处理函数。同时提供辅助函数用于路径参数解析,并展示如何设置路由器启动服务。最后通过 curl 或 Postman 测试接口功能。章节总结了路由分发、JSON 编解码、方法区分、并发安全管理和路径参数解析等关键点,为更复杂需求推荐第三方框架如 Gin、Echo 和 Chi。
|
28天前
|
监控 API 数据安全/隐私保护
淘宝京东价格监控API接口:构建智能价格生态的基石
淘宝和京东的价格监控API接口为品牌方、商家及第三方服务商提供了强大的数据支持,以下从接口功能、调用方式、应用场景等方面进行详细介绍