{"id":23640075,"url":"https://github.com/gregorybchris/surv","last_synced_at":"2025-11-09T20:30:17.772Z","repository":{"id":269550421,"uuid":"846284025","full_name":"gregorybchris/surv","owner":"gregorybchris","description":"Dynamic survey generator","archived":false,"fork":false,"pushed_at":"2024-12-24T10:33:49.000Z","size":108,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-24T11:43:25.036Z","etag":null,"topics":["algorithm","decision","gain","generator","id3","information","question","survey","theory","tree"],"latest_commit_sha":null,"homepage":"","language":"Python","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/gregorybchris.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}},"created_at":"2024-08-22T22:22:58.000Z","updated_at":"2024-12-24T10:33:52.000Z","dependencies_parsed_at":"2024-12-24T11:43:29.214Z","dependency_job_id":"d2bf97fd-250b-49fb-bee5-adeb5074ddf3","html_url":"https://github.com/gregorybchris/surv","commit_stats":null,"previous_names":["gregorybchris/surv"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregorybchris%2Fsurv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregorybchris%2Fsurv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregorybchris%2Fsurv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregorybchris%2Fsurv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gregorybchris","download_url":"https://codeload.github.com/gregorybchris/surv/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239576799,"owners_count":19662113,"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":["algorithm","decision","gain","generator","id3","information","question","survey","theory","tree"],"created_at":"2024-12-28T08:31:38.143Z","updated_at":"2025-11-09T20:30:17.713Z","avatar_url":"https://github.com/gregorybchris.png","language":"Python","readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003eSurv\u003c/h1\u003e\n\n  \u003cp\u003e\n    \u003cstrong\u003eDynamic survey generator\u003c/strong\u003e\n  \u003c/p\u003e\n\n  \u003chr /\u003e\n\u003c/div\u003e\n\n## About\n\nBased on your answers to survey questions, Surv will select the next question that maximizes expected information gain. This means that in most cases you don't need to fill out every question in the survey before your result is known to a high degree of confidence.\n\nYou must have a feature you are trying to predict to use Surv. You need something information gain can be relative to. You can use Surv to collect a dataset, but if you don't have a seed dataset already collected, then each participant will need to take the survey in full.\n\n## Installation\n\n[Poetry](https://python-poetry.org/) is a requirement\n\n```bash\npoetry install\n```\n\n## CLI usage\n\nThis command will start up an interactive session where you can fill out a survey and see how the entropy decreases as Surv becomes more certain about your most likely classification.\n\n```bash\nexport SURV_DATA_DIRPATH=\"\u003cdata-dirpath\u003e\"\npoetry run surv run \u003cdataset-name\u003e --info\n```\n\n### Example\n\nThe housing market example is loosely based on the [Boston housing dataset](https://scikit-learn.org/0.16/modules/generated/sklearn.datasets.load_boston.html). By filling out information about a hypothetical house (like the yard size, garage status, and presence of mold) Surv will decrease its uncertainty about the value of the house.\n\n```bash\nexport SURV_DATA_DIRPATH=\"\u003cpath-to\u003e/surv/tests/algo/data\"\npoetry run surv run house --info\n```\n\n## Dataset representation\n\nSurv also comes with a dataset feature metadata system. Feature types and feature purposes help you to avoid common bugs when processing structured data with heterogeneous features.\n\n### Feature types\n\nTrack metadata like the cardinality of categorical features, whether features are continuous or discrete, and whether values should be treated like integers or floating point numbers.\n\n| Feature Type | Feature Subtype |\n| ------------ | --------------- |\n| Categorical  | Binary          |\n| Categorical  | Multiclass      |\n| Numeric      | Ordinal         |\n| Numeric      | Interval        |\n| Numeric      | Ratio           |\n| Datetime     | -               |\n| Text         | -               |\n\n### Feature purposes\n\nTagging the purpose of features can help you filter down features for certain use cases like training or identifying a unique sample across multiple datasets.\n\n| Feature Purpose |\n| --------------- |\n| Training        |\n| Identifier      |\n| Target          |\n| Metadata        |\n| SampleWeight    |\n| Evaluation      |\n| Stratification  |\n| SubjectWise     |\n| Grouping        |\n| Sensitive       |\n\n## Running tests\n\n```bash\npytest tests\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgregorybchris%2Fsurv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgregorybchris%2Fsurv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgregorybchris%2Fsurv/lists"}