符号回归与画图

符号回归得到的公式形式往往复杂。为了使结果更加直观,可以用树状图表示。

gplearn

本文所用到的符号回归Python库是gplearn,官方文档在这里,程序例子在这里

Tree view of the solution
1: Tree view of the solution

gplearn生成的公式,比如

1
sub(add(-0.999, X1), mul(sub(X1, X0), add(X0, X1)))

可以转变为如1所示的树状图。

Graphviz

Graphviz是一款由AT&TResearchLucentBell实验室开源的可视化图形工具,可以很方便的用来绘制结构化的图形网络,支持多种格式输出。 Graphviz输入是一个用dot语言编写的绘图脚本,通过对输入脚本的解析,分析出其中的点、边及子图,然后根据属性进行绘制。 Graphviz layout以简单的文本语言描述图形,并以实用的格式制作图表,如用于网页的imagesSVG;用于放入在其它文件中或显示在交互式图形浏览器中的PDFPostscript。

首先需要先下载Graphviz软件。根据Graphviz官网, Ubuntu等系统可以包管理工具通过指令安装:

1
sudo apt install graphviz

Windows 10则选择最新的64位安装包: graphviz 2.50.0 win64.exe

然后安装GraphvizPython库:

1
conda install graphviz

或者

1
pip install graphviz

Python画图

1
2
3
4
5
6
7
8
# ... gplearn imports ...
import graphviz

# ... gplearn 程序 ...

dot_data = est._program.export_graphviz()
graph = graphviz.Source(dot_data)
graph.view(filename="my_picture", directory=".")

参考官网给出的例子,使用上述代码可以在当前文件夹生成如1所示的树状图,文件名为my_picture.pdf

Fin.

0条搜索结果。