Skip to main content

将tree.export_graphviz构建决策树代码转换为标准sql

Project description

将tree.export_graphviz构建决策树代码转换为标准sql

1. 工具简介

通常我们会采用sklearn框架tree模块进行决策树相关的挖掘分析,并使用tree.export_graphviz将决策树过程导出为graphviz.dot文件 再配合外部程序graphviz进行画图。
但在有些时候,我们会根据决策树图形来抽取关键路径,将其翻译成标准sql,部署在数据库当中,持续化产生价值。
目前sklearn暂未提供此功能,故我们开发此插件来进行完善。

2. 安装环境、依赖

  • 安装方法:支持在线安装或离线安装

pip install graphviz_sql

  • 内部依赖
    • sklearn
  • 外部依赖
    • Graphviz:找到适合自己版本下载即可

3. 一个简单的示例

tree.export_graphviz输出结果转换为标准sql

tree.export_graphviz参数说明
为了能够准确的输出决策树规则,方法tree.export_graphviz当中一下参数必须设置成以下形式。其余参数使用默认的即可。

  • feature_names:特征名称,顺序必须和训练样本的数据一致
  • class_names:类别名称,输入的时候,必须要排序。如将原来的['1', '0']设置为['0', '1'],注意:数据类型必须为str型的。
  • filled:填充,必须为True
  • node_ids:节点id,必须为True
  • rounded:画的图形边缘是否美化,必须为True
  • special_characters:必须为True

=========================

eg:

import pandas as pd
import numpy as np
from sklearn import tree
from sklearn import metrics
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
iris = load_iris()
clf = tree.DecisionTreeClassifier()

feature_names = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
data = pd.DataFrame(iris.data, columns=feature_names)
data['target'] = iris.target
X_train, X_test, y_train, y_test = train_test_split(
                   data[feature_names], data['target'], test_size=0.33, random_state=42)
clf = clf.fit(data[feature_names], data['target'])
# tree_rule_2.txt为输出文件的路径
tree.export_graphviz(model,out_file='tree_rule.dot',
                            feature_names=feture_selected_res,
                            class_names=['0', '1'],
                            filled=True,
                            node_ids=True,
                            rounded=True,
                            special_characters=True)


# 调用插件  
from graphviz_sql.extract import to_sql 

# tree_rule.txt: 通过决策树生成的用于graphviz画图的文件路径
# tree_rule_2.sql: 转换后的sql文件路径 
to_sql('tree_rule.dot', 'tree_rule_2.sql')

4. 代码原理

通过一种反向搜索的方法遍历决策树结果,将结果转换成标准sql

5. 常见问题说明

  • 乱码
    • 此问题可百度一下,网上有具体的处理办法,
    • 其它问题请及时反馈

6. 加入进来

强大的工具需要你我共同完善,期待技术大佬的加入。

  • email:

wang_xup@163.com
857956556@qq.com

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

graphviz_sql-0.1.8.tar.gz (5.2 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page