PyCCEA

PyCCEA: A Python package of cooperative co-evolutionary algorithms for feature selection in high-dimensional data - Published in JOSS (2025)

https://github.com/pedbrgs/pyccea

Science Score: 93.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

classification-tasks cooperative-coevolution evolutionary-algorithms feature-selection high-dimensional-data machine-learning python regression-tasks supervised-learning

Scientific Fields

Artificial Intelligence and Machine Learning Computer Science - 38% confidence
Last synced: 6 months ago · JSON representation

Repository

A Python package of cooperative co-evolutionary algorithms for feature selection in high-dimensional data.

Basic Info
Statistics
  • Stars: 14
  • Watchers: 2
  • Forks: 2
  • Open Issues: 0
  • Releases: 0
Topics
classification-tasks cooperative-coevolution evolutionary-algorithms feature-selection high-dimensional-data machine-learning python regression-tasks supervised-learning
Created almost 4 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License

README.md

PyCCEA logo

PyPI codecov status License Python Versions Downloads


:bulb: Overview

PyCCEA is an open-source package developed as part of ongoing doctoral research. It provides cooperative co-evolutionary strategies tailored for feature selection in large-scale and high-dimensional problems. The framework adopts a modular, decomposition-based approach and is intended for researchers and practitioners tackling complex feature selection tasks.

Note: PyCCEA is a work in progress. Stay tuned for improvements and new algorithm implementations.

:computer: Installation

To install the PyCCEA package directly from PyPI, use the following command in a Python ≥ 3.10 environment:

pip install pyccea

Alternatively, if you want to install the latest version directly from the GitHub:

pip install git+https://github.com/pedbrgs/pyccea.git

Ensure you have pip and an active internet connection to download dependencies.

:high_brightness: Quickstart

This quickstart demonstrates how to use the CCFSRFG1 algorithm — a CCEA variant with random feature grouping — to perform feature selection on the Wisconsin Diagnostic Breast Cancer (WDBC) dataset.

In this example, you will:

  • Load the dataset using the DataLoader utility.
  • Configure the dataset and algorithm from .toml files.
  • Run the optimization process.

```python import toml import importlib.resources from pyccea.coevolution import CCFSRFG1 from pyccea.utils.datasets import DataLoader

Load dataset parameters

with importlib.resources.opentext("pyccea.parameters", "dataloader.toml") as tomlfile: dataconf = toml.load(tomlfile)

Initialize the DataLoader with the specified dataset and configuration

data = DataLoader(dataset="wdbc", conf=data_conf)

Prepare the dataset for the algorithm (e.g., preprocessing, splitting)

data.get_ready()

Load algorithm-specific parameters

with importlib.resources.opentext("pyccea.parameters", "ccfsrfg.toml") as tomlfile: cceaconf = toml.load(tomlfile)

Initialize the cooperative co-evolutionary algorithm

ccea = CCFSRFG1(data=data, conf=ccea_conf, verbose=False)

Start the optimization process

ccea.optimize() ```

The best feature subset found is stored in the attribute best_context_vector, a binary array where 1 indicates a selected feature and 0 indicates an unselected one.

:books: Documentation

Full documentation, including a comprehensive user guide, step-by-step tutorials, an API reference, and contribution guidelines, is available at PyCCEA docs.

:scroll: Citation info

If you are using these codes in any way, please cite the following paper:

@article{PyCCEA, title = {PyCCEA: A Python package of cooperative co-evolutionary algorithms for feature selection in high-dimensional data}, author = {Venancio, Pedro Vinicius A. B. and Batista, Lucas S.}, journal = {Journal of Open Source Software}, volume = {10}, number = {112}, pages = {8348}, year = {2025} }


:mailbox: Contact

Please send any bug reports, questions or suggestions directly in the repository.

Owner

  • Name: Pedro Venâncio
  • Login: pedbrgs
  • Kind: user
  • Location: Belo Horizonte, Brazil
  • Company: Big Data

Data Scientist and PhD Student.

JOSS Publication

PyCCEA: A Python package of cooperative co-evolutionary algorithms for feature selection in high-dimensional data
Published
August 11, 2025
Volume 10, Issue 112, Page 8348
Authors
Pedro Vinícius A. B. Venâncio ORCID
Graduate Program in Electrical Engineering, Universidade Federal de Minas Gerais, Brazil, Operations Research and Complex Systems Laboratory, Universidade Federal de Minas Gerais, Brazil
Lucas S. Batista ORCID
Departament of Electrical Engineering, Universidade Federal de Minas Gerais, Brazil, Operations Research and Complex Systems Laboratory, Universidade Federal de Minas Gerais, Brazil
Editor
Blake Rayfield ORCID
Tags
Cooperative Co-Evolutionary Algorithms Feature Selection Machine Learning

GitHub Events

Total
  • Watch event: 1
  • Push event: 157
  • Create event: 4
Last Year
  • Watch event: 1
  • Push event: 157
  • Create event: 4

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 24 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 5
  • Total maintainers: 1
pypi.org: pyccea

Cooperative co-evolutionary algorithms for feature selection in high-dimensional data

  • Versions: 5
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 24 Last month
Rankings
Dependent packages count: 10.3%
Average: 34.2%
Dependent repos count: 58.0%
Maintainers (1)
Last synced: 6 months ago

Dependencies

requirements.txt pypi
  • imbalanced-learn ==0.10.1
  • numpy ==1.24.4
  • pandas ==2.0.3
  • scikit-learn ==1.0.2
  • scipy ==1.10.1
  • toml ==0.10.2
  • tqdm ==4.65.0