我正在尝试运行一个 Netlogo 模型,其中海龟的行为取决于决策树等 ML 模型的概率。该规则集以 PMML 文件的形式提供。有没有办法使用 python 扩展来做到这一点?
我现在能够解析并创建规则列表。但是,我无法访问 Netlogo 代码之外的 py:run (...) 块中生成的规则列表。我尝试将 read_pmml 更改为 t-report,然后作为 py:runresult 访问,但没有成功
我有一个解决方法可以导出为 csv 文件并在 netlogo 代码中再次导入,但我觉得它效率不高
示例代码:
to read_pmml
(py:run
"import csv"
"import xml.etree.ElementTree as ET"
"tree = ET.parse('mytest.pmml')"
## reminder of the code
"print (rule_list)"
)
end
我现在可以通过创建一个在 py:run 块内返回值的函数并使用 py:result 报告函数的 o/p 来解决这个问题
to-report rules
(py:run
"def read_rules(): "
" import csv"
;###Rest of My code###
" return rule_list"
)
report (py:runresult (word ("read_rules()")))
end