Skip to main content

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

Project description

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.
import toml
import importlib.resources
from pyccea.coevolution import CCFSRFG1
from pyccea.utils.datasets import DataLoader

# Load dataset parameters
with importlib.resources.open_text("pyccea.parameters", "dataloader.toml") as toml_file:
    data_conf = toml.load(toml_file)

# 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.open_text("pyccea.parameters", "ccfsrfg.toml") as toml_file:
    ccea_conf = toml.load(toml_file)

# 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyccea-1.1.0.tar.gz (90.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyccea-1.1.0-py3-none-any.whl (90.7 MB view details)

Uploaded Python 3

File details

Details for the file pyccea-1.1.0.tar.gz.

File metadata

  • Download URL: pyccea-1.1.0.tar.gz
  • Upload date:
  • Size: 90.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.1 CPython/3.10.16 Linux/6.11.0-1018-azure

File hashes

Hashes for pyccea-1.1.0.tar.gz
Algorithm Hash digest
SHA256 6b0b1c46ec88b3db42d7b75a0baa462990322ddf8aa8f93594e09c10d57a9b3d
MD5 19ea99c55abd8de0bc11884f9e1ff8f7
BLAKE2b-256 73f970e80dbc204cd0c7a492c01c83b29ce3304dcb16e49724d6df3517099fae

See more details on using hashes here.

File details

Details for the file pyccea-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: pyccea-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 90.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.1 CPython/3.10.16 Linux/6.11.0-1018-azure

File hashes

Hashes for pyccea-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1a0eb55d807756a4c2d0cb87929a19d473ff3ee0b8b97ea70769b75173c56c30
MD5 5a13231f95c6bc856cba107e8b0f161b
BLAKE2b-256 80307ffb96f3d9d62aee947f6f7782b99166d78792d1c4b8f7f7cf980f59f0fb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page