<?xml version="1.0" encoding="UTF-8" ?><OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"><responseDate>2026-10-13T16:56:17Z</responseDate><request identifier="10.35097/1345" metadataPrefix="oai_dc" verb="GetRecord">https://www.radar-service.eu/oai/OAIHandler</request><GetRecord><record><header><identifier>10.35097/1345</identifier><datestamp>2026-10-09T10:54:13Z</datestamp><setSpec>radar4kit</setSpec></header><metadata><oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/"
           xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ https://www.openarchives.org/OAI/2.0/oai_dc.xsd">
   <dc:identifier>https://dx.doi.org/10.35097/1345</dc:identifier>
   <dc:creator>Bach, Jakob</dc:creator>
   <dc:creator>Zoller, Kolja</dc:creator>
   <dc:creator>Schulz, Katrin</dc:creator>
   <dc:title>Experimental Data for the Paper ''An Empirical Evaluation of Constrained Feature Selection"</dc:title>
   <dc:publisher>Karlsruhe Institute of Technology</dc:publisher>
   <dc:date>2023</dc:date>
   <dc:subject>Computer Science</dc:subject>
   <dc:type>dataset</dc:type>
   <dc:subject>Dataset</dc:subject>
   <dc:rights>info:eu-repo/semantics/openAccess</dc:rights>
   <dc:rights>https://creativecommons.org/licenses/by/4.0/legalcode</dc:rights>
   <dc:description>These are the experimental data for the paper&#xD;
&#xD;
&gt; Bach, Jakob, et al. "An Empirical Evaluation of Constrained Feature Selection"&#xD;
&#xD;
published at the journal [*SN Computer Science*](https://www.springer.com/journal/42979).&#xD;
You can find the paper [here](https://doi.org/10.1007/s42979-022-01338-z) and the code [here](https://github.com/Jakob-Bach/Constrained-Filter-Feature-Selection).&#xD;
See the `README` for details.&#xD;
&#xD;
Some of the datasets used in our study (which we also provide here) originate from [OpenML](https://www.openml.org) and are CC-BY-licensed.&#xD;
Please see the paragraph `Licensing` in the `README` for details, e.g., on the authors of these datasets.</dc:description>
   <dc:description># Experimental Data for the Paper "An Empirical Evaluation of Constrained Feature Selection"&#xD;
&#xD;
These are the experimental data for the paper&#xD;
&#xD;
&gt; Bach, Jakob, et al. "An Empirical Evaluation of Constrained Feature Selection"&#xD;
&#xD;
accepted at the journal [*SN Computer Science*](https://www.springer.com/journal/42979).&#xD;
&#xD;
Check our [GitHub repository](https://github.com/Jakob-Bach/Constrained-Filter-Feature-Selection) for the code and instructions to reproduce the experiments.&#xD;
The data were obtained on a server with an `AMD EPYC 7551` [CPU](https://www.amd.com/en/products/cpu/amd-epyc-7551) (32 physical cores, base clock of 2.0 GHz) and 128 GB RAM.&#xD;
The Python version was `3.8`.&#xD;
Our paper contains two studies, and we provide data for both of them.&#xD;
&#xD;
Running the experimental pipeline for the study with synthetic constraints (`syn_pipeline.py`) took several hours.&#xD;
The commit hash for the last run of this pipeline is [`acc34cf5d2`](https://github.com/Jakob-Bach/Constrained-Filter-Feature-Selection/tree/acc34cf5d22b0a8427852a01288bb8b34f5d8c98).&#xD;
The commit hash for the last run of the corresponding evaluation (`syn_evaluation.py`) is [`c1a7e7e99e`](https://github.com/Jakob-Bach/Constrained-Filter-Feature-Selection/tree/c1a7e7e99e56c1a178a602596c13641d7771df0a).&#xD;
&#xD;
Running the experimental pipeline for the case study in materials science (`ms_pipeline.py`) took less than one hour.&#xD;
The commit hash for the last run of this pipeline is [`ba30bf9f11`](https://github.com/Jakob-Bach/Constrained-Filter-Feature-Selection/tree/ba30bf9f11703e2a8a942425e2cd4b9f36ead513).&#xD;
The commit hash for the last run of the corresponding evaluation (`ms_evaluation.py`) is [`c1a7e7e99e`](https://github.com/Jakob-Bach/Constrained-Filter-Feature-Selection/tree/c1a7e7e99e56c1a178a602596c13641d7771df0a).&#xD;
&#xD;
All these commits are also tagged.&#xD;
&#xD;
In the following, we describe the structure/content of each data file.&#xD;
All files are plain CSVs, so you can read them with `pandas.read_csv()`.&#xD;
&#xD;
## `ms/`&#xD;
&#xD;
The input data for the case study in materials science (`ms_pipeline.py`).&#xD;
Output of the script `prepare_ms_dataset.py`.&#xD;
As the raw simulation dataset is quite large, we only provide a pre-processed version of it&#xD;
(we do not provide the input to `prepare_ms_dataset.py`).&#xD;
In this pre-processed version, the feature and target parts of the data are already separated into two files: `voxel_data_predict_glissile_X.csv` and `voxel_data_predict_glissile_y.csv`.&#xD;
In `voxel_data_predict_glissile_X.csv`, each column is a numeric feature.&#xD;
`voxel_data_predict_glissile_y.csv` only contains one column, the numeric prediction target (reaction density of glissile reactions).&#xD;
&#xD;
## `ms-results/`&#xD;
&#xD;
Only contains one result file (`results.csv`) for the case study in materials science.&#xD;
Output of the script `ms_pipeline.py`, input to the script `ms_evaluation.py`.&#xD;
The columns of the file mostly correspond to evaluation metrics used in the paper;&#xD;
see Appendix A.1 for definitions of the latter.&#xD;
&#xD;
- `objective_value` (float): Objective `Q(s, X, y)`, the sum of the qualities of the selected features.&#xD;
- `num_selected` (int): `n_{se}`, the number of selected features.&#xD;
- `selected` (string, but actually a list of strings): Names of the selected features.&#xD;
- `num_variables` (int): `n`, the total number of features in the dataset.&#xD;
- `num_constrained_variables` (int): `n_{cf}`, the number of features involved in constraints.&#xD;
- `num_unique_constrained_variables` (int): `n_{ucf}`, the number of unique features involved in constraints.&#xD;
- `num_constraints` (int): `n_{co}`, the number of constraints.&#xD;
- `frac_solutions` (float): `n_{so}^{norm}`, the number of valid (regarding constraints) feature sets relative to the total number of feature sets.&#xD;
- `linear-regression_train_r2` (float): `R^2` (coefficient of determination) for linear-regression models, trained with the selected features, predicting on the training set.&#xD;
- `linear-regression_test_r2` (float): `R^2` (coefficient of determination) for linear-regression models, trained with the selected features, predicting on the test set.&#xD;
- `regression-tree_train_r2` (float): `R^2` (coefficient of determination) for regression-tree models, trained with the selected features, predicting on the training set.&#xD;
- `regression-tree_test_r2` (float): `R^2` (coefficient of determination) for regression-tree models, trained with the selected features, predicting on the test set.&#xD;
- `xgb-linear_train_r2` (float): `R^2` (coefficient of determination) for linear XGBoost models, trained with the selected features, predicting on the training set.&#xD;
- `xgb-linear_test_r2` (float): `R^2` (coefficient of determination) for linear XGBoost models, trained with the selected features, predicting on the test set.&#xD;
- `xgb-tree_train_r2` (float): `R^2` (coefficient of determination) for tree-based XGBoost models, trained with the selected features, predicting on the training set.&#xD;
- `xgb-tree_test_r2` (float): `R^2` (coefficient of determination) for tree-based XGBoost models, trained with the selected features, predicting on the test set.&#xD;
- `evaluation_time` (float): Runtime (in s) for evaluating one set of constraints.&#xD;
- `split_idx` (int): Index of the cross-validation fold.&#xD;
- `quality_name` (string): Measure for feature quality (absolute correlation or mutual information).&#xD;
- `constraint_name` (string): Name of the constraint type (see paper).&#xD;
- `dataset_name` (string): Name of the dataset.&#xD;
&#xD;
## `openml/`&#xD;
&#xD;
The input data for the study with synthetic constraints (`syn_pipeline.py`).&#xD;
Output of the script `prepare_openml_datasets.py`.&#xD;
We downloaded 35 datasets from [OpenML](https://www.openml.org) and removed non-numeric columns.&#xD;
Also, we separated the feature part (`*_X.csv`) and the target part (`*_y.csv`) of each dataset.&#xD;
`_data_overview.csv` contains meta-data for the datasets, including dataset id, dataset version, and uploader.&#xD;
&#xD;
**Licensing**&#xD;
&#xD;
Please consult each dataset's website on [OpenML](https://www.openml.org) for licensing information and citation requests.&#xD;
According to OpenML's [terms](https://www.openml.org/terms), OpenML datasets fall under the [CC-BY](https://creativecommons.org/licenses/by/4.0/) license.&#xD;
The datasets used in our study were uploaded by:&#xD;
&#xD;
- Jan van Rijn (user id: 1)&#xD;
- Joaquin Vanschoren (user id: 2)&#xD;
- Rafael Gomes Mantovani (user id: 64)&#xD;
- Tobias Kuehn (user id: 94)&#xD;
- Richard Ooms (user id: 8684)&#xD;
- R P (user id: 15317)&#xD;
&#xD;
See `_data_overview.csv` to match each dataset to its uploader.&#xD;
&#xD;
## `openml-results/`&#xD;
&#xD;
Result files for the study with synthetic constraints.&#xD;
Output of the script `syn_pipeline.py`, input to the script `syn_evaluation.py`.&#xD;
One result file for each combination of the 10 constraint generators and the 35 datasets, plus one overall (merged) file, `results.csv`.&#xD;
The columns of the result files are the those of `ms-results/results.csv`, minus `selected` and `evaluation_time`;&#xD;
see above for detailed descriptions.</dc:description>
   <dc:subject>Feature selection</dc:subject>
   <dc:subject>Constraints</dc:subject>
   <dc:subject>Domain knowledge</dc:subject>
   <dc:subject>Theory-guided data science</dc:subject>
   <dc:identifier>10.5445/IR/1000148891</dc:identifier>
   <dc:identifier>KITopen-DOI</dc:identifier>
   <dc:relation>https://publikationen.bibliothek.kit.edu/1000148891</dc:relation>
   <dc:format>application/x-tar</dc:format>
</oai_dc:dc></metadata></record></GetRecord></OAI-PMH>