几分钟搞定一个决策树展示的 Web 应用


为了实现这个目的,我们需要以下两个包(及其依赖),

  • Streamlit
  • dtreeviz

Streamlit

  • Streamlit[1] 是一个开源 Python 库,可让您轻松创建和分享用于机器学习和数据科学的精美自定义 Web 应用程序。只需几分钟,您就可以构建和部署强大的数据应用程序 – 让我们开始吧!
  1. 确保您安装了 Python 3.6+[2]
  2. 使用PIP[3]安装 Streamlit 并运行“hello world”应用程序:

    pip install streamlit
    streamlit hello
  3. 在接下来的几秒钟内,示例应用程序将在默认浏览器的新选项卡中打开。

开发自己应用程序也很简单:

  • 打开一个新的 Python 文件(假设叫 hello.py),导入 Streamlit,并编写一些代码
import streamlit as st
st.write('Hello Wold')
  • 运行文件:

streamlit run hello.py

一个最简单的 Streamlit web 应用就好了。

dtreeviz

我在如何更优雅地可视化决策树中已经介绍了 dtreeviz,并在 上一篇文章介绍了中文支持的解决办法。稍后一篇文章会介绍一种更简答的办法(免安装字体)

Streamlit + dtreeviz=Decision Tree BI App

要实现决策树图Web应用的展示,需要分3步完成,

  • 生成决策树模型(如果已经生成,可以选择load)
  • 使用 dtreeviz 画决策树
  • streamlit 输出 SVG
一个最基本的例子如下,


import streamlit as st

from sklearn.datasets import *
from sklearn import tree
import base64
from dtreeviz.trees import *

def decisionTreeViz():
    #生成决策树模型
    classifier = tree.DecisionTreeClassifier(max_depth=3)
    iris = load_iris()
    classifier.fit(iris.data, iris.target)

    class_names=['setosa''versicolor''virginica']
    # 使用dtreeviz画决策树
    viz = dtreeviz(classifier,
                iris.data,
                iris.target,
                target_name='variety',
                feature_names=iris.feature_names,
                class_names=class_names  # need class_names for classifier
                )
    return viz

# 用streamlit渲染SVG(支持SVG输出)
def svg_write(svg, center=True):
    """
    Disable center to left-margin align like other objects.
    """

    # Encode as base 64
    b64 = base64.b64encode(svg.encode("utf-8")).decode("utf-8")

    # Add some CSS on top
    css_justify = "center" if center else "left"
    css = f'<p style="text-align:center; display: flex; justify-content: {css_justify};">'
    html = f'{css}<img src="data:image/svg+xml;base64,{b64}"/>'

    # Write the HTML
    st.write(html, unsafe_allow_html=True)


viz=decisionTreeViz()
svg=viz.svg()
svg_write(svg)


几分钟搞定一个决策树展示的 Web 应用

这同时是一个演示如何巧妙地让Streamlit输出SVG的解决方案。

在这个基础上,还可以方便地添加EDA部分、模型训练、评估和预测,这样一个完成的机器学习模型就完成了。



参考资料

[1]

Streamlit: https://streamlit.io/

[2]

Python 3.6+: https://www.python.org/downloads/

[3]

PIP: https://pip.pypa.io/en/stable/installing/


原文始发于微信公众号(alitrack):几分钟搞定一个决策树展示的 Web 应用

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/62922.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!