유사한 프로젝트를 찾지 못했기 때문에 clojure에 베이지안 네트워크를 구축하고 싶습니다.Clojure DAG (베이지안 네트워크)
나는 BN에 관한 많은 이론을 연구했지만 여전히 네트워크 구현 방법을 볼 수 없다. (나는 사람들이 "전문가"라고 부르는 것이 아니라 기능 프로그래밍을위한 것이 아니다.).
나는 BN이 DAG와 많은 확률 테이블 (각 노드 당 하나)에 불과하다는 것을 알고 있지만, 이제 DAG를 구현하는 방법이 없다.
첫 번째 아이디어는 몇 개의 작은지도 (DAG 노드)가있는 거대한 세트 (DAG) 였고 모든지도에는 이름 (아마도 a : 키)이 있어야했습니다. 확률 테이블 (다른지도?) 부모 및 마침내 -descendant의 벡터.
이제 부모와 비상수 (두 벡터에 넣어야하는)의 참조를 구현하는 방법을 알지 못합니다. 포인터가 완벽해야하지만 clojure가 부족하다고 생각합니다. 벡터에 다른 노드의 이름을 넣을 수는 있지만 느려질 것입니다. 그렇습니까?
저는 벡터 대신에 더 많은 집합을 사용할 수 있다고 생각했습니다. 이렇게하면 노드의 자손을 더 빨리 찾을 수 있습니다.
다른 노드에서 여전히 참조가 필요한 확률 테이블과 비슷한 문제입니다.
마지막으로 나는 BN (데이터로 시작하는 네트워크 구축)을 배우고 싶습니다. 즉, 확률 테이블, 에지 및 노드 모두를으로 변경한다는 것을 의미합니다.
변경 가능한 유형을 사용해야합니까 아니면 복잡성을 증가시켜야합니까?
[SO 질문] [1] 당신을 도울 수 있습니다. [1] : http : // stackoverflow.com/questions/3127890/clojure-or-scheme-bayesian-classification-libraries/3128224 # 3128224 – Ankur
Chas Emerick은 베이지안 네트워크에 관한 이야기를하고 있습니다. (http://blip.tv/clojure/chas-emerick-modeling-the -world-probabilistically-using-bayesian-networks-in-clojure-5961126)에 ClojureConj를 주었다. 거기에 몇 가지 질문에 대답 할만한 유용한 정보가있었습니다. – jszakmeister
... https://www.youtube.com/watch?v=xoSFcSqo1jQ – Thumbnail