在neo4j中存储决策树

在neo4j中存储决策树,neo4j,cypher,Neo4j,Cypher,我一直在寻找一种“productionize”R或基于python的随机森林/梯度提升树模型的方法,并认为由于所有单个组件决策树都是二叉树,因此导出到图形数据库可能是一种可行的解决方案(通过将模型保存在内存中并从Flask之类的轻量级restful库调用进行部署并不能很好地扩展)。决策树通常是这样遍历的: 1.)数据被传递到根节点 2.)检查当前节点是否为叶节点;如果是,则返回一组属性(预测的分布/值) 如果没有,则节点存储决策规则,并检查要将数据传递给下一个节点的相关列(例如,“如果年龄>9.

我一直在寻找一种“productionize”R或基于python的随机森林/梯度提升树模型的方法,并认为由于所有单个组件决策树都是二叉树,因此导出到图形数据库可能是一种可行的解决方案(通过将模型保存在内存中并从Flask之类的轻量级restful库调用进行部署并不能很好地扩展)。决策树通常是这样遍历的:

1.)数据被传递到根节点

2.)检查当前节点是否为叶节点;如果是,则返回一组属性(预测的分布/值)

  • 如果没有,则节点存储决策规则,并检查要将数据传递给下一个节点的相关列(例如,“如果年龄>9.5,则移动到左节点”)

  • 重复2-3次

  • 一般来说,我对neo4j和graph数据库不熟悉,我不清楚是否可以在节点中存储(并随后遍历)决策规则;我看到的所有例子都倾向于

    MATCH (neo:Database {name:"Neo4j"})
    MATCH (johan:Person {name:"Johan"})
    CREATE (johan)-[:FRIEND]->(:Person:Expert {name:"Max"})-[:WORKED_WITH]->       (neo)
    
    其中条件语句在查询中预先指定。这在neo4j中是可行的吗?如果是,我应该关注文档的哪些方面

    感谢您提供的任何指导。

    有趣的问题

    您需要一种从R或Python导出模型并将其转换为Neo4J图的方法

    导出机制可以是PMML(如果您使用R rpart包生成修剪过的树)、googleprotobuf(如果您使用R gbm包生成树),或者只是一个Excel电子表格


    解析和解组Neo4J是您的问题。

    我与Yhat没有任何关系,但阅读您的问题让我想到了另一种方法


    我不知道这对您的团队内部意味着什么,但这似乎是一种非常简单的方法,可以通过基本API调用轻松调用模型。

    在前面的研究中,Yhat似乎本质上是一个烧瓶应用程序,并且难以处理消耗大量内存的模型。(而且,相当昂贵)您最终在neo4j中实现了这个功能吗?如果是这样的话,我真的很感激一个例子不,我从来没有实现过这个。