CARTE-AI: Context Aware Representation of Table Entries for AI
Project description
CARTE:
Pretraining and Transfer for Tabular Learning
This repository contains the implementation of the paper CARTE: Pretraining and Transfer for Tabular Learning.
CARTE is a pretrained model for tabular data by treating each table row as a star graph and training a graph transformer on top of this representation.
Colab Examples (Give it a test):
- CARTERegressor on Wine Poland dataset
- CARTEClassifier on Spotify dataset
01 Install 🚀
The library has been tested on Linux, MacOSX and Windows.
CARTE-AI can be installed from PyPI:
pip install carte-ai
Post installation check
After a correct installation, you should be able to import the module without errors:
import carte_ai
02 CARTE-AI example on sampled data step by step ➡️
1️⃣ Load the Data 💽
import pandas as pd
from carte_ai.data.load_data import *
num_train = 128 # Example: set the number of training groups/entities
random_state = 1 # Set a random seed for reproducibility
X_train, X_test, y_train, y_test = wina_pl(num_train, random_state)
print("Wina Poland dataset:", X_train.shape, X_test.shape)
2️⃣ Convert Table 2 Graph 🪵
The basic preparations are:
- preprocess raw data
- load the prepared data and configs; set train/test split
- generate graphs for each table entries (rows) using the Table2GraphTransformer
- create an estimator and make inference
import fasttext
from huggingface_hub import hf_hub_download
from carte_ai import Table2GraphTransformer
model_path = hf_hub_download(repo_id="hi-paris/fastText", filename="cc.en.300.bin")
preprocessor = Table2GraphTransformer(fasttext_model_path=model_path)
# Fit and transform the training data
X_train = preprocessor.fit_transform(X_train, y=y_train)
# Transform the test data
X_test = preprocessor.transform(X_test)
3️⃣ Make Predictions🔮
For learning, CARTE currently runs with the sklearn interface (fit/predict) and the process is:
- Define parameters
- Set the estimator
- Run 'fit' to train the model and 'predict' to make predictions
from carte_ai import CARTERegressor, CARTEClassifier
# Define some parameters
fixed_params = dict()
fixed_params["num_model"] = 10 # 10 models for the bagging strategy
fixed_params["disable_pbar"] = False # True if you want cleanness
fixed_params["random_state"] = 0
fixed_params["device"] = "cpu"
fixed_params["n_jobs"] = 10
fixed_params["pretrained_model_path"] = config_directory["pretrained_model"]
# Define the estimator and run fit/predict
estimator = CARTERegressor(**fixed_params) # CARTERegressor for Regression
estimator.fit(X=X_train, y=y_train)
y_pred = estimator.predict(X_test)
# Obtain the r2 score on predictions
score = r2_score(y_test, y_pred)
print(f"\nThe R2 score for CARTE:", "{:.4f}".format(score))
03 Reproducing paper results ⚙️
➡️ installation instructions setup paper
04 Contribute to the package 🚀
➡️ read the contributions guidelines
05 CARTE-AI references 📚
@article{kim2024carte,
title={CARTE: pretraining and transfer for tabular learning},
author={Kim, Myung Jun and Grinsztajn, L{\'e}o and Varoquaux, Ga{\"e}l},
journal={arXiv preprint arXiv:2402.16785},
year={2024}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file carte_ai-0.0.18.tar.gz
.
File metadata
- Download URL: carte_ai-0.0.18.tar.gz
- Upload date:
- Size: 40.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c7052be9cc237346c4dde886a3d9e56c5c392bfff42e8b753fced22079062f60 |
|
MD5 | 2e55aba80c918edc9cd9a0560b5c69d4 |
|
BLAKE2b-256 | 89dc583c13fabfecc17bb58b26f5b5e6935118c656f6f793f463ae5c9710cfe4 |
File details
Details for the file carte_ai-0.0.18-py3-none-any.whl
.
File metadata
- Download URL: carte_ai-0.0.18-py3-none-any.whl
- Upload date:
- Size: 40.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 91069940b9d1a75c9341c314601b3620a9b5ddcaff67c8b55a47a6c1b633e8a4 |
|
MD5 | 24167416a1e43a2d6bf1628d33bb5aae |
|
BLAKE2b-256 | be40640d89b3ea27ba4dffb0ba1db9f9cb00342aa28b5f3be856199c5e3a643d |