Skip to main content

FPBoost: a gradient boosting model for survival analysis that builds hazard functions as a combination of fully parametric hazards.

Project description

FPBoost: Fully Parametric Gradient Boosting for Survival Analysis

License Banner Black Banner

FPBoost is a Python library for survival analysis that introduces a novel algorithm for estimating hazard functions. Built upon the gradient boosting framework, it uses a composition of fully parametric hazard functions to model time-to-event data. FPBoost directly optimizes the survival likelihood via gradient boosting, providing improved risk estimation according to concordance and calibration metrics. FPBoost is fully compatible with scikit-survival for seamless integration into existing workflows.

📦 Installation

From Source

To install the latest version of FPBoost from source, clone the repository and follow these steps:

  1. Clone the repository:
    git clone https://github.com/archettialberto/fpboost.git
    cd fpboost
    
  2. Create and Activate Conda Environment
    conda env create -f environment.yaml
    conda activate fpboost
    
  3. Install Dependencies with Poetry
    poetry install
    

🚀 Quick Start

Here's a simple example of how to use FPBoost:

from fpboost.models import FPBoost
from sksurv.datasets import load_breast_cancer
from sksurv.preprocessing import OneHotEncoder
from sklearn.model_selection import train_test_split

# Load and preprocess the dataset
data_x, data_y = load_breast_cancer()
encoder = OneHotEncoder()
X, y = encoder.fit_transform(data_x).to_numpy(), data_y

# Split into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

# Initialize the model
model = FPBoost(
    n_estimators=100,
    learning_rate=0.1,
    max_depth=3,
    random_state=42
)

# Fit the model
model.fit(X_train, y_train)

# Predict survival probabilities
surv_probs = model.predict_survival_function(X_test)

# Evaluate the model
from sksurv.metrics import concordance_index_censored
c_index = concordance_index_censored(
    y_test['e.tdm'],  # event indicator
    y_test['t.tdm'],  # time to event
    model.predict(X_test)
)

print("Concordance Index:", c_index[0])

📖 Documentation

For detailed usage instructions and API reference, please refer to the FPBoost Documentation.

📚 How to Cite

If you use FPBoost in your research, please cite our paper:

@article{archetti2024fpboost,
  title        = {FPBoost: Fully Parametric Gradient Boosting for Survival Analysis},
  author       = {Alberto Archetti and Eugenio Lomurno and Diego Piccinotti and Matteo Matteucci},
  journal      = {arXiv preprint arXiv:2409.13363},
  year         = {2024},
  url          = {https://arxiv.org/abs/2409.13363}
}

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

fpboost-0.1.0.tar.gz (7.0 kB view details)

Uploaded Source

Built Distribution

fpboost-0.1.0-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file fpboost-0.1.0.tar.gz.

File metadata

  • Download URL: fpboost-0.1.0.tar.gz
  • Upload date:
  • Size: 7.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for fpboost-0.1.0.tar.gz
Algorithm Hash digest
SHA256 871704a8464a02e14daebfc20cfc109a7db8eb2bfaa909ae317f15d66a9221cd
MD5 f20dfd8dc592844fbbf3f97e1f24d2ac
BLAKE2b-256 1856666d853df08afdff0d1f42bcab63d0fcb39cddedaf8ccb43d236369f64bf

See more details on using hashes here.

File details

Details for the file fpboost-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: fpboost-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for fpboost-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 efa622406e95c747fe0d27629631db997ed2d6fdc78019bb04c1363e41160a2d
MD5 480d0af298286d453e74f5f19c9f76fb
BLAKE2b-256 cd798547ed81ea6c9aff5144eeb404ae4e2c1971aa8f42d5b1a18a0dc6cd2cb7

See more details on using hashes here.

Supported by

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