{"id":15641799,"url":"https://github.com/craigacp/feast","last_synced_at":"2025-07-13T12:09:08.979Z","repository":{"id":14385171,"uuid":"17095457","full_name":"Craigacp/FEAST","owner":"Craigacp","description":"A FEAture Selection Toolbox for C/C+, Java, and Matlab/Octave.","archived":false,"fork":false,"pushed_at":"2022-12-10T16:16:40.000Z","size":227,"stargazers_count":72,"open_issues_count":1,"forks_count":71,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-15T05:35:24.682Z","etag":null,"topics":["c","feature-selection","java","matlab"],"latest_commit_sha":null,"homepage":"http://www.cs.man.ac.uk/~gbrown/fstoolbox/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Craigacp.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":"2014-02-22T21:43:49.000Z","updated_at":"2025-01-21T05:20:02.000Z","dependencies_parsed_at":"2023-01-13T17:55:09.611Z","dependency_job_id":null,"html_url":"https://github.com/Craigacp/FEAST","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Craigacp%2FFEAST","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Craigacp%2FFEAST/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Craigacp%2FFEAST/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Craigacp%2FFEAST/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Craigacp","download_url":"https://codeload.github.com/Craigacp/FEAST/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252823693,"owners_count":21809709,"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":["c","feature-selection","java","matlab"],"created_at":"2024-10-03T11:45:43.399Z","updated_at":"2025-05-07T05:50:50.840Z","avatar_url":"https://github.com/Craigacp.png","language":"C","readme":"FEAST\n=====\n\nA FEAture Selection Toolbox for C/C++ \u0026amp; MATLAB/OCTAVE, v2.0.0.\n\nFEAST provides implementations of common mutual information based filter\nfeature selection algorithms, and an implementation of RELIEF. All functions\nexpect discrete inputs (except RELIEF, which does not depend on the MIToolbox),\nand they return the selected feature indices. These implementations were\ndeveloped to help our research into the similarities between these algorithms,\nand our results are presented in the following paper:\n\n```\n Conditional Likelihood Maximisation: A Unifying Framework for Information Theoretic Feature Selection\n G. Brown, A. Pocock, M.-J. Zhao, M. Lujan\n Journal of Machine Learning Research, 13:27-66 (2012)\n```\n\nThe weighted feature selection algorithms are described in Chapter 7 of:\n\n```\n Feature Selection via Joint Likelihood\n A. Pocock\n PhD Thesis, University of Manchester, 2012\n```\n\nIf you use these implementations for academic research please cite the relevant paper\nabove.  All FEAST code is licensed under the BSD 3-Clause License.\n\nContains implementations of:\n   mim, mrmr, mifs, cmim, jmi, disr, cife, icap, condred, cmi, relief, fcbf, betagamma\n\nAnd weighted implementations of:\n   mim, cmim, jmi, disr, cmi\n\nReferences for these algorithms are provided in the accompanying feast.bib file\n(in BibTeX format).\n\nFEAST works on discrete inputs, and all continuous values **must** be\ndiscretised before use with FEAST.  In our experiments we've found that using\n10 equal width bins is suitable for many problems, though this is data set size\ndependent. FEAST produces unreliable results when used with continuous inputs,\nruns slowly and uses much more memory than usual. The discrete inputs should\nhave small cardinality, FEAST will treat values {1,10,100} the same way it\ntreats {1,2,3} and the latter will be both faster and use less memory.\n\nMATLAB Example (using \"data\" as our feature matrix, and \"labels\" as the class label vector):\n\n```\n\u003e\u003e size(data)\nans = \n     (569,30)                                     %% denoting 569 examples, and 30 features\n```\n```\n\u003e\u003e selectedIndices = feast('jmi',5,data,labels) %% selecting the top 5 features using the jmi algorithm\nselectedIndices =\n\n    28\n    21\n     8\n    27\n    23\n```\n```\n\u003e\u003e selectedIndices = feast('mrmr',10,data,labels) %% selecting the top 10 features using the mrmr algorithm\nselectedIndices =\n\n    28\n    24\n    22\n     8\n    27\n    21\n    29\n     4\n     7\n    25\n```\n```\n\u003e\u003e selectedIndices = feast('mifs',5,data,labels,0.7) %% selecting the top 5 features using the mifs algorithm with beta = 0.7\nselectedIndices =\n\n    28\n    24\n    22\n    20\n    29\n```\n\nThe library is written in ANSI C for compatibility with the MATLAB mex\ncompiler, except for MIM, FCBF and RELIEF, which are written in MATLAB/OCTAVE\nscript. There is a different implementation of MIM available for use in the C\nlibrary.\n\nMIToolbox v3.0.0 is required to compile these algorithms, and these\nimplementations supercede the example implementations given in that package\n(they have more robust behaviour when used with unexpected inputs).\n\nMIToolbox can be found at: http://www.github.com/Craigacp/MIToolbox/\n\nThe C library expects all matrices in column-major format (i.e. Fortran style).\nThis is for two reasons, a) MATLAB generates Fortran-style arrays, and b)\nfeature selection iterates over columns rather than rows, unlike most other ML\nprocesses. \n\nCompilation instructions:\n - MATLAB/OCTAVE \n    - run `CompileFEAST.m` in the `matlab` folder.\n - Linux C shared library \n    - run `make x86` or `make x64` for a 32-bit or 64-bit library.\n - Windows C dll (expects pre built libMIToolbox.dll)\n\t- install MinGW from https://sourceforge.net/projects/mingw-w64/\n\t- add MinGW binaries folders to PATH, e.g. mingw/bin, mingw/msys/bin \n\t- run `make x64_win`.\n - Java (requires Java 8)\n    - run `make x64`, `sudo make install` to build and install the C library.\n    - then `make java` to build the JNI wrapper.\n    - then run `mvn package` in the `java` directory to build the jar file.\n    - Note: the Java code should work on all platforms and future versions of Java, but the included Makefile only works on Ubuntu \u0026 Java 8.\n\nUpdate History\n - 07/01/2017 - v2.0.0 - Added weighted feature selection, major refactoring of the code to improve speed and portability. FEAST functions now return the internal scores assigned by each criteria as well. Added a Java API via JNI. FEAST v2 is approximately 30% faster when called from Matlab.\n - 12/03/2016 - v1.1.4 - Fixed an issue where Matlab would segfault if all features had zero MI with the label.\n - 12/10/2014 - v1.1.2 - Updated documentation to note that FEAST expects column-major matrices.\n - 11/06/2014 - v1.1.1 - Fixed an issue where MIM wasn't compiled into libFSToolbox.\n - 22/02/2014 - v1.1.0 - Bug fixes in memory allocation, added a C implementation of MIM, moved the selected feature increment into the mex code.\n - 12/02/2013 - v1.0.1 - Bug fix for 32-bit Windows MATLAB's lcc.\n - 08/11/2011 - v1.0.0 - Public Release to complement the JMLR publication.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcraigacp%2Ffeast","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcraigacp%2Ffeast","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcraigacp%2Ffeast/lists"}