{"id":18616713,"url":"https://github.com/sile/fanova","last_synced_at":"2025-04-11T01:32:08.174Z","repository":{"id":41139663,"uuid":"264709268","full_name":"sile/fanova","owner":"sile","description":"A Rust implementation of fANOVA (functional analysis of variance)","archived":false,"fork":false,"pushed_at":"2022-07-01T10:09:47.000Z","size":143,"stargazers_count":15,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-25T07:12:44.767Z","etag":null,"topics":["fanova","feature-importance","hyperparameter-importance"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sile.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-17T16:25:22.000Z","updated_at":"2024-12-24T15:26:56.000Z","dependencies_parsed_at":"2022-08-23T17:10:51.174Z","dependency_job_id":null,"html_url":"https://github.com/sile/fanova","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sile%2Ffanova","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sile%2Ffanova/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sile%2Ffanova/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sile%2Ffanova/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sile","download_url":"https://codeload.github.com/sile/fanova/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248325277,"owners_count":21084901,"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","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":["fanova","feature-importance","hyperparameter-importance"],"created_at":"2024-11-07T03:37:40.555Z","updated_at":"2025-04-11T01:32:07.891Z","avatar_url":"https://github.com/sile.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"fanova\n=======\n\n[![fanova](https://img.shields.io/crates/v/fanova.svg)](https://crates.io/crates/fanova)\n[![Documentation](https://docs.rs/fanova/badge.svg)](https://docs.rs/fanova)\n[![Actions Status](https://github.com/sile/fanova/workflows/CI/badge.svg)](https://github.com/sile/fanova/actions)\n[![Coverage Status](https://coveralls.io/repos/github/sile/fanova/badge.svg?branch=master)](https://coveralls.io/github/sile/fanova?branch=master)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n\nA Rust [fANOVA] (functional analysis of variance) implementation.\n\nfANOVA provides a way to calculate feature importance.\n\nExamples\n--------\n\n```rust\nuse fanova::{FanovaOptions, RandomForestOptions};\nuse rand::{Rng, SeedableRng};\n\nlet mut feature1 = Vec::new();\nlet mut feature2 = Vec::new();\nlet mut feature3 = Vec::new();\nlet mut target = Vec::new();\n\nlet mut rng = rand::rngs::StdRng::seed_from_u64(0);\nfor _ in 0..100 {\n    let f1 = rng.gen();\n    let f2 = rng.gen();\n    let f3 = rng.gen();\n    let t = f1 + f2 * 2.0 + f3 * 3.0;\n\n    feature1.push(f1);\n    feature2.push(f2);\n    feature3.push(f3);\n    target.push(t);\n}\n\nlet mut fanova = FanovaOptions::new()\n    .random_forest(RandomForestOptions::new().seed(0))\n    .fit(vec![\u0026feature1, \u0026feature2, \u0026feature3], \u0026target).unwrap();\nlet importances = (0..3)\n    .map(|i| fanova.quantify_importance(\u0026[i]).mean)\n    .collect::\u003cVec\u003c_\u003e\u003e();\n\nassert_eq!(\n    importances,\n    vec![0.02744461966313835, 0.22991883769286145, 0.6288784011550144]\n);\n```\n\nReferences\n----------\n\n- [An Efficient Approach for Assessing Hyperparameter Importance][fANOVA]\n\n[fANOVA]: http://proceedings.mlr.press/v32/hutter14.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsile%2Ffanova","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsile%2Ffanova","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsile%2Ffanova/lists"}