解决方案:用决策树算法如何生成决策树图及生成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)

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

相关推荐
思绪无限6 小时前
YOLOv5至YOLOv12升级:木材表面缺陷检测系统的设计与实现(完整代码+界面+数据集项目)
人工智能·深度学习·目标检测·计算机视觉·木材表面缺陷检测
kishu_iOS&AI6 小时前
深度学习 —— 损失函数
人工智能·pytorch·python·深度学习·线性回归
好运的阿财6 小时前
OpenClaw工具拆解之canvas+message
人工智能·python·ai编程·openclaw·openclaw工具
TechubNews6 小时前
新火集团首席经济学家付鹏演讲——2026 年是 Crypto 加入到 FICC 资产配置框架元年
大数据·人工智能
河阿里6 小时前
SQL数据库:五大范式(NF)
数据库·sql·oracle
蒸汽求职7 小时前
跨越 CRUD 内卷:半导体产业链与算力基建下的软件工程新生态
人工智能·科技·面试·职场和发展·软件工程·制造
DeepModel7 小时前
通俗易懂讲透 Q-Learning:从零学会强化学习核心算法
人工智能·学习·算法·机器学习
聊点儿技术7 小时前
LLM数据采集如何突破AI反爬?——用IP数据接口实现进阶
人工智能·数据分析·产品运营·ip·电商·ip地址查询·ip数据接口
小兵张健7 小时前
一场大概率没拿到 offer 的面试,让我更坚定去做喜欢的事
人工智能·面试·程序员
2501_940041747 小时前
AI创建小游戏指令词
人工智能·游戏·prompt