moose-fs 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. LICENSE +21 -0
  2. README.md +190 -0
  3. moose_fs-0.1.0.dist-info/METADATA +232 -0
  4. moose_fs-0.1.0.dist-info/RECORD +40 -0
  5. moose_fs-0.1.0.dist-info/WHEEL +4 -0
  6. moose_fs-0.1.0.dist-info/entry_points.txt +2 -0
  7. moose_fs-0.1.0.dist-info/licenses/LICENSE +21 -0
  8. moosefs/__init__.py +6 -0
  9. moosefs/core/__init__.py +6 -0
  10. moosefs/core/data_processor.py +319 -0
  11. moosefs/core/feature.py +44 -0
  12. moosefs/core/novovicova.py +60 -0
  13. moosefs/core/pareto.py +90 -0
  14. moosefs/feature_selection_pipeline.py +548 -0
  15. moosefs/feature_selectors/__init__.py +26 -0
  16. moosefs/feature_selectors/base_selector.py +38 -0
  17. moosefs/feature_selectors/default_variance.py +21 -0
  18. moosefs/feature_selectors/elastic_net_selector.py +75 -0
  19. moosefs/feature_selectors/f_statistic_selector.py +42 -0
  20. moosefs/feature_selectors/lasso_selector.py +46 -0
  21. moosefs/feature_selectors/mrmr_selector.py +57 -0
  22. moosefs/feature_selectors/mutual_info_selector.py +45 -0
  23. moosefs/feature_selectors/random_forest_selector.py +48 -0
  24. moosefs/feature_selectors/svm_selector.py +50 -0
  25. moosefs/feature_selectors/variance_selectors.py +16 -0
  26. moosefs/feature_selectors/xgboost_selector.py +44 -0
  27. moosefs/merging_strategies/__init__.py +17 -0
  28. moosefs/merging_strategies/arithmetic_mean_merger.py +46 -0
  29. moosefs/merging_strategies/base_merger.py +64 -0
  30. moosefs/merging_strategies/borda_merger.py +46 -0
  31. moosefs/merging_strategies/consensus_merger.py +80 -0
  32. moosefs/merging_strategies/l2_norm_merger.py +42 -0
  33. moosefs/merging_strategies/union_of_intersections_merger.py +89 -0
  34. moosefs/metrics/__init__.py +23 -0
  35. moosefs/metrics/performance_metrics.py +239 -0
  36. moosefs/metrics/stability_metrics.py +49 -0
  37. moosefs/utils.py +161 -0
  38. scripts/config.yml +92 -0
  39. scripts/main.py +163 -0
  40. scripts/utils.py +186 -0
LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 CI4CB-lab
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
README.md ADDED
@@ -0,0 +1,190 @@
1
+ # MOOSE-FS
2
+
3
+ [![tests](https://github.com/CI4CB-lab/moosefs/actions/workflows/tests.yml/badge.svg)](https://github.com/CI4CB-lab/moosefs/actions/workflows/tests.yml)
4
+ [Documentation](https://CI4CB-lab.github.io/moosefs/)
5
+
6
+ ## Overview
7
+
8
+ MOOSE-FS is a feature selection library that leverages an ensemble-based approach to optimize both predictive performance and stability. By combining multiple feature selection methods, merging strategies, and evaluation metrics, it provides a highly flexible and tunable pipeline for both classification and regression tasks. The package automates feature selection across multiple iterations and uses Pareto optimization to identify the best feature subsets.
9
+
10
+ Users can define their feature selection process by:
11
+ - Selecting feature selection methods from predefined options or implementing custom ones.
12
+ - Choosing merging strategies to aggregate feature rankings.
13
+ - Specifying performance metrics to evaluate selected features.
14
+ - Configuring the number of features to select and the number of repetitions.
15
+ - Working with either **classification** or **regression** problems.
16
+
17
+ The library allows defining feature selectors, merging strategies, and metrics either as **class instances** or as **string identifiers**, which act as placeholders for built-in methods. The framework is modular and can be easily extended by adding new selection algorithms or merging strategies.
18
+
19
+ ---
20
+
21
+ ## Requirements
22
+
23
+ - **Python** 3.9 or higher
24
+ - **Dependencies**: Automatically installed from `pyproject.toml`.
25
+
26
+ ---
27
+
28
+ ## Installation
29
+
30
+ ### From Source
31
+
32
+ To install the package from source, run:
33
+
34
+ ```bash
35
+ pip install git+https://github.com/CI4CB-lab/moosefs.git
36
+ ```
37
+
38
+ Alternatively, clone the repository and install locally:
39
+
40
+ ```bash
41
+ git clone https://github.com/CI4CB-lab/moosefs.git
42
+ cd moosefs
43
+ pip install .
44
+ ```
45
+
46
+ ---
47
+
48
+ ## Using the Library
49
+
50
+ ### 1. Feature Selection Pipeline
51
+
52
+ The core of MOOSE-FS is the `FeatureSelectionPipeline`, which provides a fully configurable workflow for feature selection. Users can specify:
53
+ - Feature selection methods
54
+ - Merging strategy
55
+ - Evaluation metrics
56
+ - Task type (classification or regression)
57
+ - Number of features to select
58
+ - Number of repetitions
59
+
60
+ #### Example Usage
61
+
62
+ ```python
63
+ # `data` can be a single DataFrame (last column = target)
64
+ # or you can pass `X` and `y` separately.
65
+ # Assume `data` is a pandas DataFrame whose last column "label" holds the targets.
66
+ from moosefs import FeatureSelectionPipeline
67
+
68
+ fs_methods = ["f_statistic_selector", "random_forest_selector", "svm_selector"]
69
+ merging_strategy = "union_of_intersections_merger"
70
+
71
+ pipeline = FeatureSelectionPipeline(
72
+ X=data.drop(columns=["label"]),
73
+ y=data["label"],
74
+ fs_methods=fs_methods,
75
+ merging_strategy=merging_strategy,
76
+ num_repeats=5,
77
+ task="classification",
78
+ num_features_to_select=10,
79
+ )
80
+ results = pipeline.run()
81
+ ```
82
+
83
+ This will run feature selection, merge results using the chosen strategy, and return the best-selected features.
84
+
85
+ ### 2. Extensibility
86
+
87
+ MOOSE-FS is designed to be easily extended. Users can implement custom:
88
+ - **Feature selection methods**: Define a new feature selector class and integrate it into the pipeline.
89
+ - **Merging strategies**: Implement a custom strategy to aggregate selected features.
90
+ - **Metrics**: Add new evaluation metrics tailored to specific tasks.
91
+
92
+ New methods can be used directly in the pipeline by passing the class or a corresponding identifier.
93
+
94
+ ---
95
+
96
+ ## Using the CLI
97
+
98
+ Once installed, the pipeline can also be run from the command line using:
99
+
100
+ ```bash
101
+ efs-pipeline
102
+ ```
103
+
104
+ This command executes `scripts/main.py` using parameters from `scripts/config.yaml`. Users can specify a different config file:
105
+
106
+ ```bash
107
+ efs-pipeline path/to/your_config.yaml
108
+ ```
109
+
110
+ ### Example `config.yaml`
111
+
112
+ ```yaml
113
+ experiment:
114
+ name: "example_experiment"
115
+ results_path: "results/"
116
+ data_path: "data/input_data.csv"
117
+
118
+ preprocessing:
119
+ normalize: true
120
+ handle_missing: true
121
+
122
+ pipeline:
123
+ fs_methods: ["f_statistic_selector", "random_forest_selector"]
124
+ merging_strategy: "union_of_intersections_merger"
125
+ num_repeats: 5
126
+ task: "classification"
127
+ num_features_to_select: 10
128
+ ```
129
+
130
+ ### Results
131
+
132
+ The results are saved in a structured directory under `results/example_experiment/`, including:
133
+ - A **text file** summarizing the pipeline run.
134
+ - A **CSV file** containing the final results.
135
+
136
+ ---
137
+
138
+ ## Code Structure
139
+
140
+ - **`core/`**: Core modules for data processing, metrics, and stability computation.
141
+ - **`feature_selection_pipeline.py`**: Defines the main feature selection workflow.
142
+ - **`feature_selectors/`**: Implements feature selection methods (e.g., F-statistic, mutual information, RandomForest, SVM).
143
+ - **`merging_strategies/`**: Implements merging strategies such as Borda count and union of intersections.
144
+
145
+ ---
146
+
147
+ ## Contributing
148
+
149
+ Contributions are welcome! If you have ideas for improving MOOSE-FS, feel free to open an issue or submit a pull request.
150
+
151
+ ### Development (uv)
152
+
153
+ This project uses uv for local environments and dependency management. The library builds via the existing PEP 517 backend (hatchling); uv only manages the environment, installs, and command execution.
154
+
155
+ - Install/select Python 3.9+ and ensure `uv` is installed.
156
+ - Create a local virtual environment in `.venv`:
157
+
158
+ ```bash
159
+ uv venv --python 3.9
160
+ ```
161
+
162
+ - Install dev dependencies (editable):
163
+
164
+ ```bash
165
+ uv pip install -e ".[dev]"
166
+ ```
167
+
168
+ - Install pre-commit hooks:
169
+
170
+ ```bash
171
+ uv run pre-commit install
172
+ ```
173
+
174
+ - Run formatting and linting:
175
+
176
+ ```bash
177
+ uv run ruff format .
178
+ uv run ruff check --fix .
179
+ ```
180
+
181
+ - Run tests:
182
+
183
+ ```bash
184
+ uv run pytest -q
185
+ ```
186
+ ---
187
+
188
+ ## License
189
+
190
+ This project is licensed under the MIT License.
@@ -0,0 +1,232 @@
1
+ Metadata-Version: 2.4
2
+ Name: moose-fs
3
+ Version: 0.1.0
4
+ Summary: MOOSE-FS: Multi-Objective Optimized Ensemble Feature Selection
5
+ Project-URL: Repository, https://github.com/CI4CB-lab/moosefs
6
+ Project-URL: Documentation, https://CI4CB-lab.github.io/moosefs/
7
+ Author-email: Arthur Babey <arthur.babey@heig-vd.ch>
8
+ License: MIT
9
+ License-File: LICENSE
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Operating System :: OS Independent
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
14
+ Requires-Python: >=3.9
15
+ Requires-Dist: joblib
16
+ Requires-Dist: mrmr-selection
17
+ Requires-Dist: numpy
18
+ Requires-Dist: pandas
19
+ Requires-Dist: pyyaml
20
+ Requires-Dist: ranky
21
+ Requires-Dist: scikit-learn>=1.5.0
22
+ Requires-Dist: scipy>=1.11
23
+ Requires-Dist: xgboost
24
+ Provides-Extra: dev
25
+ Requires-Dist: build>=1; extra == 'dev'
26
+ Requires-Dist: coverage[toml]; extra == 'dev'
27
+ Requires-Dist: pre-commit; extra == 'dev'
28
+ Requires-Dist: pytest>=7; extra == 'dev'
29
+ Requires-Dist: ruff>=0.14.2; extra == 'dev'
30
+ Requires-Dist: sphinx-autodoc-typehints; extra == 'dev'
31
+ Requires-Dist: sphinx-rtd-theme; extra == 'dev'
32
+ Requires-Dist: sphinx>=7; extra == 'dev'
33
+ Requires-Dist: twine>=5; extra == 'dev'
34
+ Provides-Extra: docs
35
+ Requires-Dist: sphinx-autodoc-typehints; extra == 'docs'
36
+ Requires-Dist: sphinx-rtd-theme; extra == 'docs'
37
+ Requires-Dist: sphinx>=7; extra == 'docs'
38
+ Provides-Extra: test
39
+ Requires-Dist: coverage[toml]; extra == 'test'
40
+ Requires-Dist: pytest>=7; extra == 'test'
41
+ Description-Content-Type: text/markdown
42
+
43
+ # MOOSE-FS
44
+
45
+ [![tests](https://github.com/CI4CB-lab/moosefs/actions/workflows/tests.yml/badge.svg)](https://github.com/CI4CB-lab/moosefs/actions/workflows/tests.yml)
46
+ [Documentation](https://CI4CB-lab.github.io/moosefs/)
47
+
48
+ ## Overview
49
+
50
+ MOOSE-FS is a feature selection library that leverages an ensemble-based approach to optimize both predictive performance and stability. By combining multiple feature selection methods, merging strategies, and evaluation metrics, it provides a highly flexible and tunable pipeline for both classification and regression tasks. The package automates feature selection across multiple iterations and uses Pareto optimization to identify the best feature subsets.
51
+
52
+ Users can define their feature selection process by:
53
+ - Selecting feature selection methods from predefined options or implementing custom ones.
54
+ - Choosing merging strategies to aggregate feature rankings.
55
+ - Specifying performance metrics to evaluate selected features.
56
+ - Configuring the number of features to select and the number of repetitions.
57
+ - Working with either **classification** or **regression** problems.
58
+
59
+ The library allows defining feature selectors, merging strategies, and metrics either as **class instances** or as **string identifiers**, which act as placeholders for built-in methods. The framework is modular and can be easily extended by adding new selection algorithms or merging strategies.
60
+
61
+ ---
62
+
63
+ ## Requirements
64
+
65
+ - **Python** 3.9 or higher
66
+ - **Dependencies**: Automatically installed from `pyproject.toml`.
67
+
68
+ ---
69
+
70
+ ## Installation
71
+
72
+ ### From Source
73
+
74
+ To install the package from source, run:
75
+
76
+ ```bash
77
+ pip install git+https://github.com/CI4CB-lab/moosefs.git
78
+ ```
79
+
80
+ Alternatively, clone the repository and install locally:
81
+
82
+ ```bash
83
+ git clone https://github.com/CI4CB-lab/moosefs.git
84
+ cd moosefs
85
+ pip install .
86
+ ```
87
+
88
+ ---
89
+
90
+ ## Using the Library
91
+
92
+ ### 1. Feature Selection Pipeline
93
+
94
+ The core of MOOSE-FS is the `FeatureSelectionPipeline`, which provides a fully configurable workflow for feature selection. Users can specify:
95
+ - Feature selection methods
96
+ - Merging strategy
97
+ - Evaluation metrics
98
+ - Task type (classification or regression)
99
+ - Number of features to select
100
+ - Number of repetitions
101
+
102
+ #### Example Usage
103
+
104
+ ```python
105
+ # `data` can be a single DataFrame (last column = target)
106
+ # or you can pass `X` and `y` separately.
107
+ # Assume `data` is a pandas DataFrame whose last column "label" holds the targets.
108
+ from moosefs import FeatureSelectionPipeline
109
+
110
+ fs_methods = ["f_statistic_selector", "random_forest_selector", "svm_selector"]
111
+ merging_strategy = "union_of_intersections_merger"
112
+
113
+ pipeline = FeatureSelectionPipeline(
114
+ X=data.drop(columns=["label"]),
115
+ y=data["label"],
116
+ fs_methods=fs_methods,
117
+ merging_strategy=merging_strategy,
118
+ num_repeats=5,
119
+ task="classification",
120
+ num_features_to_select=10,
121
+ )
122
+ results = pipeline.run()
123
+ ```
124
+
125
+ This will run feature selection, merge results using the chosen strategy, and return the best-selected features.
126
+
127
+ ### 2. Extensibility
128
+
129
+ MOOSE-FS is designed to be easily extended. Users can implement custom:
130
+ - **Feature selection methods**: Define a new feature selector class and integrate it into the pipeline.
131
+ - **Merging strategies**: Implement a custom strategy to aggregate selected features.
132
+ - **Metrics**: Add new evaluation metrics tailored to specific tasks.
133
+
134
+ New methods can be used directly in the pipeline by passing the class or a corresponding identifier.
135
+
136
+ ---
137
+
138
+ ## Using the CLI
139
+
140
+ Once installed, the pipeline can also be run from the command line using:
141
+
142
+ ```bash
143
+ efs-pipeline
144
+ ```
145
+
146
+ This command executes `scripts/main.py` using parameters from `scripts/config.yaml`. Users can specify a different config file:
147
+
148
+ ```bash
149
+ efs-pipeline path/to/your_config.yaml
150
+ ```
151
+
152
+ ### Example `config.yaml`
153
+
154
+ ```yaml
155
+ experiment:
156
+ name: "example_experiment"
157
+ results_path: "results/"
158
+ data_path: "data/input_data.csv"
159
+
160
+ preprocessing:
161
+ normalize: true
162
+ handle_missing: true
163
+
164
+ pipeline:
165
+ fs_methods: ["f_statistic_selector", "random_forest_selector"]
166
+ merging_strategy: "union_of_intersections_merger"
167
+ num_repeats: 5
168
+ task: "classification"
169
+ num_features_to_select: 10
170
+ ```
171
+
172
+ ### Results
173
+
174
+ The results are saved in a structured directory under `results/example_experiment/`, including:
175
+ - A **text file** summarizing the pipeline run.
176
+ - A **CSV file** containing the final results.
177
+
178
+ ---
179
+
180
+ ## Code Structure
181
+
182
+ - **`core/`**: Core modules for data processing, metrics, and stability computation.
183
+ - **`feature_selection_pipeline.py`**: Defines the main feature selection workflow.
184
+ - **`feature_selectors/`**: Implements feature selection methods (e.g., F-statistic, mutual information, RandomForest, SVM).
185
+ - **`merging_strategies/`**: Implements merging strategies such as Borda count and union of intersections.
186
+
187
+ ---
188
+
189
+ ## Contributing
190
+
191
+ Contributions are welcome! If you have ideas for improving MOOSE-FS, feel free to open an issue or submit a pull request.
192
+
193
+ ### Development (uv)
194
+
195
+ This project uses uv for local environments and dependency management. The library builds via the existing PEP 517 backend (hatchling); uv only manages the environment, installs, and command execution.
196
+
197
+ - Install/select Python 3.9+ and ensure `uv` is installed.
198
+ - Create a local virtual environment in `.venv`:
199
+
200
+ ```bash
201
+ uv venv --python 3.9
202
+ ```
203
+
204
+ - Install dev dependencies (editable):
205
+
206
+ ```bash
207
+ uv pip install -e ".[dev]"
208
+ ```
209
+
210
+ - Install pre-commit hooks:
211
+
212
+ ```bash
213
+ uv run pre-commit install
214
+ ```
215
+
216
+ - Run formatting and linting:
217
+
218
+ ```bash
219
+ uv run ruff format .
220
+ uv run ruff check --fix .
221
+ ```
222
+
223
+ - Run tests:
224
+
225
+ ```bash
226
+ uv run pytest -q
227
+ ```
228
+ ---
229
+
230
+ ## License
231
+
232
+ This project is licensed under the MIT License.
@@ -0,0 +1,40 @@
1
+ LICENSE,sha256=VKg1fUCOEkjQdpLbeqv_m0RIl5yTS985eLm_tTTy4kE,1066
2
+ README.md,sha256=naWfqhKj3ZVku6Y9_VFhThlUD0dhOeJyETa0qmM2HKs,5623
3
+ moosefs/__init__.py,sha256=33TiDbzwnNQWYCwDCLh_hUEKFIo5RBEa97wPj0AP29A,170
4
+ moosefs/feature_selection_pipeline.py,sha256=Dgfqgpzi6pVuO5vT7_P8HU4vwZ1ACo3uepwkeSt0Rpk,21764
5
+ moosefs/utils.py,sha256=kYOlCpE3YP7aapbFKoP97fqEZR-fhofncgABb6WigMQ,5104
6
+ moosefs/core/__init__.py,sha256=pBqAqNHotvrxF7x8IWEYtiLCyUZT-5pkiBHC_HwUir8,231
7
+ moosefs/core/data_processor.py,sha256=67O-TQiO4_n7elL8FpOLShGqW8D95whCFNollGC9hPY,12190
8
+ moosefs/core/feature.py,sha256=h39NeGPH1_EzKGuI1eKLC-8dl8rWAtFG2D--2PhjDmk,1327
9
+ moosefs/core/novovicova.py,sha256=eEElrdEwglEjwrp_aXU3wpYuFXBYx4eyPnYOtdQOJ00,2672
10
+ moosefs/core/pareto.py,sha256=SxJTjkpFBRDpE3C-FYEpldagPcWlmQn_wQeaxjyZo9Q,3266
11
+ moosefs/feature_selectors/__init__.py,sha256=r95pm5apXuCvOUpA9SqSsFmJIEmgnu8hGC35BinjRNk,819
12
+ moosefs/feature_selectors/base_selector.py,sha256=67BQOYwEOs1dxLTmT-UAmhjNYk4s8cPvlmPM3UAtwqo,1272
13
+ moosefs/feature_selectors/default_variance.py,sha256=7We2fYWEeh8xU_IZlAmLrAIVn3WRP8v7ryST8WCfZMo,630
14
+ moosefs/feature_selectors/elastic_net_selector.py,sha256=0uaVaBR5467nmCSfWKlRpoGrNhz0n6_rnkj9dkHSUQM,2950
15
+ moosefs/feature_selectors/f_statistic_selector.py,sha256=1C1fBogfAm10MpULmWluFwLMBCwwn1UhfPmTWNI_woU,1314
16
+ moosefs/feature_selectors/lasso_selector.py,sha256=S6RwBOVeR2h-QO8l6yiL1D9PxH27eIJp7vhhDHLNv30,1361
17
+ moosefs/feature_selectors/mrmr_selector.py,sha256=JiHKlPBdDNGThObRguIs4bjXOEzUvjLr-Mnvqbl-d30,1965
18
+ moosefs/feature_selectors/mutual_info_selector.py,sha256=HQgyR3lXpTJOHZplrTkbSpQYqD9lD8d4G_J6_jZyGmU,1417
19
+ moosefs/feature_selectors/random_forest_selector.py,sha256=6reBf-ea_RrTwnUhbFescovA8pLI72ap9_x90u1otr4,1490
20
+ moosefs/feature_selectors/svm_selector.py,sha256=lxa0eoNw4mwZW2QyQb9s3ikrxRFt8-okT2e98lKjssM,1564
21
+ moosefs/feature_selectors/variance_selectors.py,sha256=04eP2Tul7zVz_c4JwyD9nZj6_sdAdHNm9EJ40ypnO1g,520
22
+ moosefs/feature_selectors/xgboost_selector.py,sha256=TBPWRCGxM45GCoFjpUZKMSpETQxXk0S3GCPadiZYhyg,1384
23
+ moosefs/merging_strategies/__init__.py,sha256=zdAfU9iRMOMrJI6vgumeTkIn3J1q66fp9wUExON-Lao,489
24
+ moosefs/merging_strategies/arithmetic_mean_merger.py,sha256=T8_6iwEpNqkdXNqZikGWAXg3STr43b2dgTnYnXgVBFI,1446
25
+ moosefs/merging_strategies/base_merger.py,sha256=sLyWOzqG0-DqlF-dbxKHeVPUBESit5yQh_bd-5ibGUw,2325
26
+ moosefs/merging_strategies/borda_merger.py,sha256=NnIlFxsDeRdqlV0YYVv1rg3Qk9ul1HCc3rG5sPXEDzQ,1499
27
+ moosefs/merging_strategies/consensus_merger.py,sha256=FY1FLhi_JdCronAysCMBsdb9_0R5GfXJNTvuLVH1kIM,2856
28
+ moosefs/merging_strategies/l2_norm_merger.py,sha256=7C8N6zSMNTOPuNKY6uSGW2uquglmi-Q7eK1BNvxThXs,1251
29
+ moosefs/merging_strategies/union_of_intersections_merger.py,sha256=s-qWs7SfqRSLE89eWs-JeDCzWsIHjjnb59Uf7Rl1D44,3283
30
+ moosefs/metrics/__init__.py,sha256=BmlDEXzNpFJg2_ZVBP5bIWxuHjTpJUeHahK19EbXooc,372
31
+ moosefs/metrics/performance_metrics.py,sha256=VUFG1EeaBvoSeBct5k61m7YGHALpSbJX2gW2Fe5WHNQ,7779
32
+ moosefs/metrics/stability_metrics.py,sha256=-5aLdVpZnPiMHVZL0Aaj8PldAE-cxHC77NldzNn0wAs,1573
33
+ scripts/config.yml,sha256=A5m7g8mR57H4H2kzS5vKHSkBxnsBlmeqeP6nPNWroxw,2470
34
+ scripts/main.py,sha256=US_evclaHctwMd-k6gSwAjghOs2-CjFCf_0rN-CXj2s,5837
35
+ scripts/utils.py,sha256=iMvM-i60YFvJBYM0lqkmbfc0MQzqg7KEJaahmQi29Jw,7286
36
+ moose_fs-0.1.0.dist-info/METADATA,sha256=RqdNZTY1xGlwE1aNelHp3wv0deBYnU-VwopMQrUqcec,7165
37
+ moose_fs-0.1.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
38
+ moose_fs-0.1.0.dist-info/entry_points.txt,sha256=0Dh_Mf8wUplofadvKhi2W6is55ES-fOiv9oHgvo2O9I,51
39
+ moose_fs-0.1.0.dist-info/licenses/LICENSE,sha256=VKg1fUCOEkjQdpLbeqv_m0RIl5yTS985eLm_tTTy4kE,1066
40
+ moose_fs-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.28.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ efs-pipeline = scripts.main:main
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 CI4CB-lab
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
moosefs/__init__.py ADDED
@@ -0,0 +1,6 @@
1
+ # simplifying basic import
2
+ from .feature_selection_pipeline import FeatureSelectionPipeline
3
+
4
+ __version__ = "0.1.0"
5
+
6
+ __all__ = ["FeatureSelectionPipeline", "__version__"]
@@ -0,0 +1,6 @@
1
+ from .data_processor import DataProcessor
2
+ from .feature import Feature
3
+ from .novovicova import StabilityNovovicova
4
+ from .pareto import ParetoAnalysis
5
+
6
+ __all__ = ["DataProcessor", "Feature", "StabilityNovovicova", "ParetoAnalysis"]