Finding Optimal Diverse Feature Sets with Alternative Feature Selection

Jakob Bach
7/21/2023
cs.LG

Official code: Jakob-Bach/Alternative-Feature-Selection (4 stars, MIT, last commit 2026-02-24).

Abstract

Feature selection is popular for obtaining small, interpretable, yet highly accurate prediction models. Conventional feature-selection methods typically yield one feature set only, which might not suffice in some scenarios. For example, users might be interested in finding alternative feature sets with similar prediction quality, offering different explanations of the data. In this article, we introduce alternative feature selection and formalize it as an optimization problem. In particular, we define alternatives via constraints and enable users to control the number and dissimilarity of alternatives. We consider sequential as well as simultaneous search for alternatives. Next, we discuss how to integrate conventional feature-selection methods as objectives. In particular, we describe solver-based search methods to tackle the optimization problem. Further, we analyze the complexity of this optimization problem and prove NP-hardness. Additionally, we show that a constant-factor approximation exists under certain conditions and propose corresponding heuristic search methods. Finally, we evaluate alternative feature selection in comprehensive experiments with 30 binary-classification datasets. We observe that alternative feature sets may indeed have high prediction quality, and we analyze factors influencing this outcome.

View on arXivView PDF

Code Implementations(1)

MIT

Code for the papers "Finding Optimal Diverse Feature Sets with Alternative Feature Selection" and "Alternative Feature Selection with User Control".

41PythonOct 5, 20227 months agoMIT
data-sciencefeature-selectionmachine-learning

Similar Papers

Cite this paper

@article{bach2023finding,
  title  = {Finding Optimal Diverse Feature Sets with Alternative Feature Selection},
  author = {Jakob Bach},
  year   = {2023},
  eprint = {2307.11607},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2307.11607v3}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2307.11607.svg)](https://codeofpaper.com/paper/2307.11607)

Discussion