Downloads · 30 days
0
DanielRegaladoCardoso/player-value-lgbm
player-value-lgbm is a tabular regression model from DanielRegaladoCardoso. Use it for the tabular regression task on the model card, and read the license before you ship it in a product. It is set up for lightgbm. The card lists the license as apache-2.0.
LightGBM model that forecasts the 6-month log-change in Transfermarkt market value for football players. Trained on the engineered features in player-value-features.
Downloads · 30 days
0
Access
Public
Updated May 18, 2026
Repo size
—
Likes
0
Public
Click a slice to open those files.
.lgb4.4 MB · 100%
From the Hugging Face model README
LightGBM model that forecasts the 6-month log-change in Transfermarkt
market value for football players. Trained on the engineered features
in player-value-features.
| Model | Test MAE (log) | Test R² |
|---|---|---|
| Naive (y=0) | 0.2145 | −0.006 |
| Ridge regression | 0.2164 | +0.130 |
| AutoETS | 0.2361 | −0.198 |
| AutoTheta | 0.2740 | −0.298 |
| LightGBM | 0.1970 | +0.205 |
LightGBM wins by ~40% in R² over the best baseline and is the only non-trivial model to clearly beat the naive predictor.
num_leaves=127, learning_rate=0.05, feature_fraction=0.8,
bagging_fraction=0.8, lambda_l1=0.1, lambda_l2=0.1position, sub_position, foot, career_stage,
country_of_citizenship)country_of_citizenship — the market prices passport over performanceas_of_year — captures market inflationvalue_diff_1 — recent momentumlog_value — base levelageas_of_month — transfer-window seasonalityvalue_diff_3international_capsage_minus_position_peak — distance from position-specific peakvalue_lag_1import lightgbm as lgb
import pandas as pd
from huggingface_hub import hf_hub_download
model_path = hf_hub_download("DanielRegaladoCardoso/player-value-lgbm",
"model.lgb")
booster = lgb.Booster(model_file=model_path)
# X must be a DataFrame whose categorical columns are pd.Categorical
# (see scripts/train_lgbm.py in the repo for the exact preprocessing)
preds = booster.predict(X) # predicts log(value_T+6mo / value_T)
To convert a prediction back into euros:
predicted_value_eur = current_value_eur * np.exp(predicted_log_ratio)
country_of_citizenship being the strongest feature reflects market
bias the model captures (and does not endorse).Apache 2.0.