首页 > 其他分享 >决策树学习--基于豆包、kimiai

决策树学习--基于豆包、kimiai

时间:2024-11-15 16:00:25浏览次数:1  
标签:kimiai -- print train test import 节点 决策树

根据与豆包和kimi的对话,进行决策树的简单应用;

 

在使用决策树模型时,绘图通常指的是可视化决策树结构。这种可视化可以帮助我们理解模型是如何做出预测的,以及各个特征在决策过程中的重要性。在scikit-learn中,可以使用plot_tree函数来绘制决策树。以下是绘制决策树后常见的指标及其含义:

  1. 节点:决策树的每个节点代表一个特征判断,通常是“是”或“否”的决策。

  2. 分裂条件:节点上的条件表示数据如何分裂到下一个节点。例如,X[1] <= 0.5表示如果特征1的值小于或等于0.5,则走左边的分支。

  3. 样本数:每个节点中的样本数,表示该节点包含的数据点数量。samples=xxxx

  4. 值:每个节点中各类别的样本数量,通常以列表形式表示,列表中的每个元素对应一个类别的样本数。value=[xxxxxx,xxx]

  5. 类:多数表决的结果,即该节点上样本最多的类别。class = 0 或者 1 

  6. 特征:用于分裂的特征名称,表示该节点是根据哪个特征进行分裂的。

  7. 阈值:用于分裂的阈值,表示特征值大于或小于该阈值将走向不同的分支。

  8. 样本纯度:节点的纯度,通常用基尼不纯度(Gini Impurity)或信息增益(Information Gain)来衡量。基尼不纯度接近0表示节点内样本类别非常一致,信息增益越大表示特征对分类越重要。

  9. 节点深度:从根节点到当前节点的路径长度,根节点的深度为0。

  10. 叶节点:没有子节点的节点,表示最终的决策结果。

import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, classification_report, confusion_matrix
import matplotlib.pyplot as plt
from sklearn.tree import plot_tree

# 读取Excel文件,这里假设文件名为data.xlsx,且第一行为表头,数据中最后一列是目标标签列

file_path = 'E:/xx/order_info.xlsx'
df = pd.read_excel(file_path)
print(df.head())


# 分离特征和标签,除最后一列外的其他列作为特征(X),最后一列作为标签(y)
X = df.iloc[:, 2:-1]
y = df.iloc[:, -1]


# 划分训练集和测试集,test_size表示测试集占比,random_state是随机种子,保证可复现性
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

#X.describe()

# 创建决策树分类器对象,你可以调整参数,例如max_depth控制树的最大深度等
clf = DecisionTreeClassifier(max_depth=3)

# 使用训练集数据进行模型训练
clf.fit(X_train, y_train)

# 在测试集上进行预测
y_pred = clf.predict(X_test)

# 计算准确率评估模型性能
accuracy = accuracy_score(y_test, y_pred)
print("准确率:", accuracy)


# 输出分类报告
print("分类报告:")
print(classification_report(y_test, y_pred))

# 输出混淆矩阵
print("混淆矩阵:")
print(confusion_matrix(y_test, y_pred))

# 可视化决策树,需要安装graphviz软件并配置好环境变量(可选步骤,如果想可视化的话)
plt.figure(figsize=(12, 8))
plot_tree(clf, filled=True, feature_names=X.columns, class_names=['0', '1'])
plt.show()

 

标签:kimiai,--,print,train,test,import,节点,决策树
From: https://www.cnblogs.com/yzhnm/p/18548119

相关文章

  • 【Python】将同一目录下的多个doc文件批量转为docx文件
    同一目录有多个doc文件: importwin32com.clientaswcimportos#设置.doc文件所在的目录docs_directory=r'F:\xxx\PycharmProjects\Python学习项目\doc文件'defgetpath(docs_directory):#输出docx文件的路径和名称[路径,名称]#遍历目录中的所有.doc文件......
  • 充电桩测试的结果如何评估和分析?
    充电桩测试是评估和确保其性能、安全性和可靠性的关键步骤。以下是对充电桩测试结果的评估和分析方法:目标明确:首先,明确测试的目标和标准。这可能包括充电效率、安全性、耐久性、兼容性等。数据收集:使用专业的测试设备进行各种参数的测量,如电流、电压、功率、温度等。记录充......
  • echarts 画一个南丁格尔玫瑰饼图
    constdatas=[{name:'无信号',value:5,label:{color:'#06B7FFFF'}},{name:'正常',value:8,label:{color:'#69D85DFF'}},{name:......
  • MariaDB select多条结果,只取id最大的那一条
    要在MariaDB中选择多条结果但只取 id 最大的一条,可以使用子查询结合 ORDERBY 和 LIMIT。以下是一个示例SQL语句:SQL SELECT*FROMyour_tableORDERBYidDESCLIMIT1;这条语句的作用是从 your_table 表中按 id 降序排序,并只返回第一条记录,即 id 最......
  • 负载箱在确保可靠电力分配中的作用
    负载箱是电力系统中的重要设备,它在确保可靠电力分配中起着至关重要的作用。负载箱的主要功能是在电力系统运行过程中,模拟实际的电力负荷,以便对电力系统进行各种性能测试和分析。这些测试和分析可以帮助电力系统的运营商和维护人员了解电力系统的实际运行状态,及时发现和解决潜在的......
  • replace的删除机制
    replace的作用是插入数据之前检查是否重复,重复的时候删除以后再插入#测试表,并且有2个唯一键(id和code)CREATETABLE`t1115`(`id`bigintNOTNULLAUTO_INCREMENT,`code`varchar(100)NOTNULL,`name`varchar(100)DEFAULTNULL,`age`varchar(100)DEFAULTNUL......
  • 19.选课系统之ORM查询操作
    1.asnyc和await实现异步查询所有2.asnyc和await实现异步条件查询_filter3.asnyc和await实现异步条件查询确定结果只有一个可以用_get4.asnyc和await实现异步条件查询确定结果_模糊查询5.asnyc和await实现异步条件查询确定结果_values查询6.查询的对象做响应Ⅰ6.查询的对象做......
  • 2、oracle实例、软件、库简单讲解
    oracle的基本结构oracle软件(RDBMS)oracle软件:关系型数据库管理系统在linux系统上,oracle软件安装在:/u01/app/oracle这个目录下oracle数据库(database)oracle数据库:它是由一推文件组成,建数据库(使用dbca命令建库),建立在/oradata这个目录下数据库里面放的就是表数据库和软件是完全......
  • 金蝶云插件:列表插件单元格格式化事件FormatCellValue --- 采购申请单--列表自动刷新即
    region<<版本注释>>采购申请单--列表自动刷新即时库存/*===================================================类名称:PUR_Requisition_ListJSKCQTY类描述:采购申请单--列表自动刷新即时库存创建人:luohong创建时间:2024/11/1514:59:47电子邮箱:it_luo@finecables......
  • 2024-2025-1 20241322《计算机基础与程序设计》第八周学习总结
    2024-2025-120241322《计算机基础与程序设计》第八周学习总结作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK08这个作业的目标功能设计与面向对象......