【问题标题】:ID3 Decision tree using web2py使用 web2py 的 ID3 决策树
【发布时间】:2012-05-28 13:41:28
【问题描述】:

我想问一下如何使用python中的MVC实现在web2py中创建一个非数据库应用程序。

我正在写一篇关于创建/构建 id3 决策树的论文,我决定让它基于网络。 web2py 中的大多数示例都使用数据库。我的论文只需要一个包含我的数据集的上传文件。上传后会自动转化为决策树。

我知道这很令人困惑,但我很感激,如果有人可以帮助我。

【问题讨论】:

    标签: model-view-controller tree web2py decision-tree


    【解决方案1】:

    您无需使用数据库即可使用 web2py。您只需要编写适当的代码来上传和处理您的文件,这将取决于您的应用程序的详细信息。这是一个简单的例子:

    def id3_tree():
        form = FORM(INPUT(_name='Data', _type='file'),
            INPUT(_type='submit', _value='Submit'))
        if request.vars.Data:
            tree = create_tree(request.vars.Data.file)
        else:
            tree = 'No tree yet'
        return dict(form=form, tree=tree)
    

    这将创建一个用于上传数据文件的表单。文件上传后,代码调用create_tree() 函数并将文件对象传递给它(request.vars.Data.file 将是一个包含文件内容的 cStringIO.StringO 对象——参见http://docs.python.org/library/stringio.html)。

    注意,这种方法实际上并不保存文件。作为替代方案,您可以保存文件,然后打开保存的文件以进行处理。在这种情况下,您可以使用 SQLFORM.factory() 并利用 web2py 的内置文件上传功能。

    如果您在进行过程中遇到任何问题,请随时通过Google Group 提问。

    【讨论】:

    • 嗨!感谢您的回答。我试过了,它奏效了。现在,我对在哪里插入用于构建树的熵和信息增益的计算感到困惑。我应该做一些类似的东西: def create_tree(): ..... 这样我就可以在这里插入我的代码,或者我把它放在 tree = create_tree(request.vars.Data.file) 之后?
    • 您的数据文件在request.vars.Data.file 中——您可以调用任意数量的函数来处理它并产生结果,然后在id3_tree() 字典中返回该结果。用于处理的函数可以定义在 (a) 控制器的其他位置,(b) 在模型文件中,或 (c) 在模块中(需要导入)。
    猜你喜欢
    • 2015-02-18
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    • 2011-01-18
    • 2021-07-13
    • 1970-01-01
    • 2019-07-01
    • 2011-12-31
    相关资源
    最近更新 更多