{"id":21640342,"url":"https://github.com/samthiriot/knime.bayesiannetworks","last_synced_at":"2025-08-01T05:08:52.922Z","repository":{"id":148506347,"uuid":"285023671","full_name":"samthiriot/knime.bayesiannetworks","owner":"samthiriot","description":"Bayesian Networks nodes for KNIME","archived":false,"fork":false,"pushed_at":"2022-04-07T08:57:03.000Z","size":1391,"stargazers_count":1,"open_issues_count":25,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-02T06:28:02.993Z","etag":null,"topics":["bayesian-networks","knime","knime-node","scientific-computing","scientific-machine-learning","scientific-workflows","synthetic-data","synthetic-dataset-generation","synthetic-population-library","synthetic-populations"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/samthiriot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-08-04T15:37:15.000Z","updated_at":"2022-03-17T15:52:26.000Z","dependencies_parsed_at":"2023-05-20T08:45:36.282Z","dependency_job_id":null,"html_url":"https://github.com/samthiriot/knime.bayesiannetworks","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/samthiriot/knime.bayesiannetworks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samthiriot%2Fknime.bayesiannetworks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samthiriot%2Fknime.bayesiannetworks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samthiriot%2Fknime.bayesiannetworks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samthiriot%2Fknime.bayesiannetworks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/samthiriot","download_url":"https://codeload.github.com/samthiriot/knime.bayesiannetworks/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samthiriot%2Fknime.bayesiannetworks/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268171959,"owners_count":24207437,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-01T02:00:08.611Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bayesian-networks","knime","knime-node","scientific-computing","scientific-machine-learning","scientific-workflows","synthetic-data","synthetic-dataset-generation","synthetic-population-library","synthetic-populations"],"created_at":"2024-11-25T04:18:18.147Z","updated_at":"2025-08-01T05:08:52.914Z","avatar_url":"https://github.com/samthiriot.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# knime.bayesiannetworks\n\nBayesian Networks nodes for KNIME.\nEnables the generation of synthetic datasets, generation of synthetic populations, learning of statistical models, statistical inference. \n\n## Features\n\nAdds nodes for the KNIME workflow engine to use Bayesian networks.\n\n* read Bayesian networks (from the XMLBIF format)\n* write Bayesian networks (in XMLBIF, BIF and net formats)\n* sample data from a Bayesian network: create n entities compliant with the distribution of probabilities described by the network\n* complete existing data tables by addings new columns and the probability from the network\n* add nodes to a Bayesian network from KNIME data tables\n* enumerate all the combinations of values and the corresponding probabilities\n* compute the probability of a row\n* measure the difference between two Bayesian networks having the same structure\n\n# install it\n\nThe easiest way to install the plugin is to use the update site I publish in https://knime.res-ear.ch \n\nUsing KNIME version 4.2 or above, go to menu Help/Install new software. \nClick the \"Add...\" button and add repository:\n   Name: samthiriot KNIME nodes\n   https://knime.res-ear.ch\n\nThen select \"Bayesian Networks for KNIME\", and follow the usual process. \n\n# Use it\n\n## Read, Sample, Measure\n\nA basic case is to read an existing Bayesian network from a file and to sample entities (generate KNIME rows).\nTo measure the quality of the sampling, one learns the probabilities of the Bayesian network and compare them with the reference network.\n\n![example of workflow with reading, sampling and measure of quality](./doc/screenshot_read_sample_measure.png)\n\nYou can [download it](./doc/example_read_sample_measure.knwf) to try it yourself.\n\n\n## Create, Sample, Write\n\nThe Bayesian network can be easily created in KNIME. \n\nIn this example ([download it](./doc/example_create_sample_write.knwf)), we show:\n* how to read a table from a CSV file, and use it as the Conditional Probability Table of a new variable in the Bayesian network\n* how to create a table by hand in KNIME, and use it as a Conditional Probability Table of a new variable,\n* how to aggregate statistics from a KNIME table by using a standard \"group by\" node, then insert it as a Bayesian network \n\nThen the Bayesian network can be used for sampling or data augmentation, and can be written in standard format.\n\n![example of workflow creation, sampling and writing](./doc/screenshot_create_sample_write.png)\n\n\n## Data fusion \n\nThe Bayesian network can be used to \"augment\" or join data.\n\nIn this example ([download it](./doc/example_augment_data.knwf)), we show:\n* we read existing data having only two columns `surface` and `annee` \n* the missing column is present in the Bayesian network which describes `p( combustible | surface, annee )`\n* for every row, the node samples missing data according to the probabities `p( combustible | surface, annee )` and existing values `surface` and `annee` in the row. \n\n![example of data fusion](./doc/screenshot_augment_data.png)\n\n\n# developers' corner \n\n## set up development environment \n\n* set up a development environment for a KNIME plugin as ![in the KNIME documentation](https://docs.knime.com/latest/analytics_platform_new_node_quickstart_guide/index.html#_introduction). This involves to ![set up the KNIME SDK](https://github.com/knime/knime-sdk-setup)\n* clone this repository, then import it as Java projects into Eclipse\n* download jar dependancies: run the \"maven copy dependancies into lib.launch\"\n\ntest the code without KNIME:\n* directory \"test\", run as... JUnit. This should heat your CPU a bit but should end with green lights (timeouts are acceptable as they depend on the test cases and your configuration). Solve dependancy issues.\n\ntest the plugin inside KNIME:\n* right click on knime-sdk-setup, run as... run configurations... KNIME Analytics\n* the \"Bayesian Networks\" logo should be part of the splash screen\n* the \"Bayesian networks\" section should be visible in the \"community\" family\n* create a new KNIME workflow \n\n\n\n## frequent questions\n\nPar of dependancies are managed by Maven. Yet they are packaged as libs in the plugin:\n* maven dependancies are in pom.xml\n* refresh the maven dependancies\n* then run the \"copy maven dependancies into lib\"\n* then ensure all these libs are both in the plugin.xml imports but also in the build path \n\n\n## export the plugin\n\nSee https://github.com/samthiriot/knime.updatesite","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamthiriot%2Fknime.bayesiannetworks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamthiriot%2Fknime.bayesiannetworks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamthiriot%2Fknime.bayesiannetworks/lists"}