0
Скажем, у меня есть дерево решений, которое выглядит следующим образом:Настройка дерева решений в Neo4j
Я написал Cypher запрос для создания этого дерева решений:
create (_0 {`name`:"Spins?", `type`:"split"})
create (_1a {`name`:"Weight", `type`:"split"})
create (_1b {`name`:"Weight", `type`:"split"})
create (_2a {`name`:"Spider", `type`:"terminal"})
create (_2b {`name`:"Spider Man", `type`:"terminal"})
create (_2c {`name`:"Ant", `type`:"terminal"})
create (_2d {`name`:"Ant Man", `type`:"terminal"})
create (_0)-[:`CON` {`lt`:.5}]->(_1a)
create (_0)-[:`CON` {`gte`:.5}]->(_1b)
create (_1a)-[:`CON` {`lt`:200}]->(_2a)
create (_1a)-[:`CON` {`gte`:200}]->(_2b)
create (_1b)-[:`CON` {`lt`:200}]->(_2c)
create (_1b)-[:`CON` {`gte`:200}]->(_2d)
;
Несколько вопросов:
- Это лучший способ установить дерево решений в neo4j?
- Как написать запрос cypher для присоединения к графу и получить узел результата с входными данными? например скажем, у меня были данные {«Спины»? : False, 'Weight': 500}, как бы написать запрос для эффективного возврата узла «Ant Man»?
Это фантастика, потому что я думал о том, деревьев решений и моделей в Neo на некоторое время , Единственное, что я не могу оборачивать, - это использование свойства 'i'. Что это значит? – Btibert3
@ Btibert3 Свойство 'l' (уровень дерева) и' i' (индекс узла на определенном уровне дерева) необходимы для различения узлов с одинаковым именем друг от друга: '(: DT: Split {name: 'Weight', l: 1, i: 0}) '! ==' (: DT: Split {name: 'Weight', l: 1, i: 1}) '. –