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


一、现象

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

二、解决方案

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

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)
解决方案:网上各种资料尝试一番

相关推荐

  1. Python基础算法解析决策

    2024-04-23 01:32:01       16 阅读
  2. 决策(分类决策

    2024-04-23 01:32:01       15 阅读
  3. 决策 ID3 算法

    2024-04-23 01:32:01       33 阅读
  4. 三种决策算法

    2024-04-23 01:32:01       33 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-23 01:32:01       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-23 01:32:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-23 01:32:01       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-23 01:32:01       20 阅读

热门阅读

  1. Es批量删除DeleteByQueryRequestBuilder

    2024-04-23 01:32:01       14 阅读
  2. Unity3D 分块编辑小AStar地图详解

    2024-04-23 01:32:01       11 阅读
  3. 卸载并升级pytorch安装torcheval

    2024-04-23 01:32:01       13 阅读
  4. CV 面试指南—深度学习知识点总结(1)

    2024-04-23 01:32:01       15 阅读
  5. 前端CSS基础2(CSS基本选择器和复合选择器)

    2024-04-23 01:32:01       10 阅读
  6. 面试题

    面试题

    2024-04-23 01:32:01      16 阅读
  7. /bin/sh: 1: arm-linux-g++: not found

    2024-04-23 01:32:01       16 阅读
  8. 【Vue3源码学习】— CH3.2 VNode解析(上)

    2024-04-23 01:32:01       18 阅读
  9. leetcode 23

    2024-04-23 01:32:01       17 阅读
  10. lazarus-ide简介

    2024-04-23 01:32:01       17 阅读