解决方案:用决策树算法如何生成决策树图及生成SQL规则

文章目录


一、现象

一开始没有做过生成决策树图及生成SQL规则,一时犯了难,百度很多找到了解决方法,于是乎,写一篇博客,这样下次就能直接拿来使用咯

二、解决方案

见最后三块代码,为了区分做个标记(#********************,以下)

python 复制代码
import numpy as np
import pandas as pd
df = pd.read_csv("data.csv")


# 构建特征和标签集
y = df.Exited.values
X = df.drop(['flag'], axis = 1)


from sklearn.model_selection import train_test_split  # 拆分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size = 0.2,random_state=0)


# 进行特征缩放
from sklearn import preprocessing
scaler = preprocessing.MinMaxScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)


from sklearn.metrics import (f1_score, confusion_matrix) # 导入评估指标
from sklearn.tree import DecisionTreeClassifier # 导入模型
dt = DecisionTreeClassifier() # 分类决策树
dt.fit(X_train, y_train) # 拟合模型
y_pred = dt.predict(X_test) # 预测结果
dt_acc = dt.score(X_test,y_test)*100 # 准确率
dt_f1 = f1_score(y_test, y_pred)*100 # F1分数
print("决策树测试集准确率:: {:.2f}%".format(dt_acc))
print("决策树测试集F1分数: {:.2f}%".format(dt_f1))
print('决策树混淆矩阵:\n', confusion_matrix(y_test,y_pred))


#********************
df_copy = df.drop(columns = ['user_id', 'flag'])
col_tree = df_copy.columns[:]
class_flag = ['no', 'yes']


from sklearn.tree import plot_tree
plt.figure(figsize=(32, 20), dpi=300)
dot_data = plot_tree(dt, feature_names = col_tree, class_names = class_flag, filled = True, rounded = True)
plt.savefig('dt_pic.pdf', format = 'pdf', bbox_inches = 'tight')


from sklearn.tree import export_text
text_sql = export_text(dt, feature_names = list(col_tree))
print(text_sql)

代码部分参考(为了做个完整案例):
机器学习_常见算法比较模型效果(LR、KNN、SVM、NB、DT、RF、XGB、LGB、CAT)

解决方案:网上各种资料尝试一番

相关推荐
tedcloud1231 小时前
UI-TARS-desktop部署教程:构建AI桌面自动化系统
服务器·前端·人工智能·ui·自动化·github
曦月逸霜4 小时前
啥是RAG 它能干什么?
人工智能·python·机器学习
AI医影跨模态组学4 小时前
Lancet Digit Health(IF=24.1)广东省人民医院刘再毅&南方医科大学南方医院梁莉等团队:基于可解释深度学习模型预测胶质瘤分子改变
人工智能·深度学习·论文·医学·医学影像·影像组学
应用市场4 小时前
AI 编程助手三强争霸(2026 版):Claude、Gemini、GPT 各自擅长什么?
人工智能·gpt
CSND7404 小时前
YOLO resume断点续训(不能用官方的权重,是自己训练一半生成的last.pt)
深度学习·yolo·机器学习
AC赳赳老秦4 小时前
供应链专员提效:OpenClaw自动跟踪物流信息、更新库存数据,异常自动提醒
java·大数据·服务器·数据库·人工智能·自动化·openclaw
脑极体4 小时前
从Token消耗到DAA增长,AI价值标尺正在重构
人工智能·重构
csdn小瓯4 小时前
LangGraph自适应工作流路由机制:从关键词匹配到智能决策的完整实现
人工智能·fastapi·langgraph
QYR-分析4 小时前
高功率飞秒激光器行业发展现状、市场机遇及未来趋势分析
大数据·人工智能
AI医影跨模态组学5 小时前
J Clin Oncol(IF=43.4)美国Cedars-Sinai医学中心等团队:基于计算组织学人工智能的晚期胰腺癌化疗选择预测性生物标志物的开发与验证
人工智能·机器学习·论文·医学·医学影像·影像组学