: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
DataLoaderutility. - Configure the dataset and algorithm from
.tomlfiles. - 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.
Release files for pyccea 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyccea-1.1.0.tar.gz | 90.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyccea-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 181.0 MB
Release files / pyccea-1.1.0.tar.gz
| Download URL | pyccea-1.1.0.tar.gz |
|---|---|
| Size | 90.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6b0b1c46ec88b3db42d7b75a0baa462990322ddf8aa8f93594e09c10d57a9b3d
|
|
BLAKE2b-256 checksum How to use checksums |
73f970e80dbc204cd0c7a492c01c83b29ce3304dcb16e49724d6df3517099fae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.3.1 CPython/3.10.16 Linux/6.11.0-1018-azure
|
Release files / pyccea-1.1.0-py3-none-any.whl
| Download URL | pyccea-1.1.0-py3-none-any.whl |
|---|---|
| Size | 90.7 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1a0eb55d807756a4c2d0cb87929a19d473ff3ee0b8b97ea70769b75173c56c30
|
|
BLAKE2b-256 checksum How to use checksums |
80307ffb96f3d9d62aee947f6f7782b99166d78792d1c4b8f7f7cf980f59f0fb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.3.1 CPython/3.10.16 Linux/6.11.0-1018-azure
|