Feature belang (Feature Importance) visualiseren in Python

Portret van Alex de Vries, Quantitatief Analist & Algo-Trading Expert
Alex de Vries
Quantitatief Analist & Algo-Trading Expert
Machine Learning & AI in Trading · 2026-02-15 · 6 min leestijd

Je staat voor een scherm met tientallen kolommen. RSI, MACD, Bollinger Bands, orderboek data, sentiment scores.

Alles lijkt belangrijk, maar wat drijft je model echt? In algoritmische trading gaat het niet om zoveel mogelijk features, maar om de juiste. Feature importance laat zien welke variabelen het hardst werken voor je voorspelling. Dat is goud waard voor je backtesting en je risicomanagement.

Wat is feature importance en waarom boeit het jou?

Feature importance is simpelweg een score die aangeeft hoeveel elke feature bijdraagt aan de prestatie van je model. Stel je voor: je bouwt een bot die op basis van 15 indicaties beslist of je long of short gaat.

Welke van die 15 tellen echt? Feature importance rangschikt ze voor je. In trading gaat het om focus.

Je broker reageert op latency, je API heeft rate limits, en je backtest moet snel blijven draaien.

Onnodige features vertragen je pipeline en verhogen de kans op overfitting. Met feature importance scherp je je focus op wat telt. Een voorbeeld: je model gebruikt 20 features, maar de top 5 verklaren 90% van de variatie.

Waarom zou je de andere 15 blijven meenemen? Je bespaart rekenkracht, verlaagt je cloudkosten (denk AWS of Azure) en maakt je model makkelijker te onderhouden.

Hoe werkt het in de praktijk? Methoden en details

Er zijn verschillende manieren om feature importance te berekenen. De meest bekende is die van Random Forests.

Elke boom in het bos kijkt naar een subset van features en bepaalt welke de grootste splitsing oplevert. Over alle bomen heen krijg je een gemiddelde score. Een andere aanpak is permutation importance.

Je neemt je getrainde model, shuffle één feature en kijkt hoeveel de performance daalt.

Hoe groter de daling, hoe belangrijker die feature. Dit werkt goed bij lineaire modellen, gradient boosting machines (XGBoost, LightGBM) en diepe neurale netwerken. SHAP (SHapley Additive exPlanations) is de laatste jaren favoriet.

Het is eerlijker: het verdeelt de impact van een feature over alle mogelijke combinaties. SHAP laat zowel globale als lokale importantie zien.

Handig als je wilt begrijpen waarom de bot op 12 juni om 09:31 short ging.

Let op: elke methode heeft zijn bias. Random Forest geeft vaak de voorkeur aan hogekardinaliteit features. Permutation importance is gevoelig voor correlaties. SHAP is nauwkeurig maar rekenintensief. Kies wat past bij je model en je compute budget.

Python in actie: concrete code en voorbeelden

Stel je bouwt een bot die voorspelt of de E-mini S&P 500 future de komende 5 minuten stijgt. Je features: RSI(14), MACD(12,26,9), Bollinger Band width, volume delta, en order flow imbalance.

Je backtest draait op een AWS c5.2xlarge instance (€0,34 per uur). Met scikit-learn en XGBoost kom je ver. Zo bouw je een Random Forest:

from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
import pandas as pd

df = pd.read_parquet('data/EURUSD_1m.parquet')
X = df[['rsi', 'macd', 'bb_width', 'vol_delta', 'order_imbalance']]
y = df['target'] # 1 = stijging, 0 = daling
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, shuffle=False) rf = RandomForestClassifier(n_estimators=200, max_depth=10, random_state=42)
rf.fit(X_train, y_train) importances = pd.Series(rf.feature_importances_, index=X.columns).sort_values(ascending=False)
print(importances)

Je ziet meteen welke feature het zwaarst weegt. Vaak is order flow imbalance de sterkste voorspeller voor korte horizonten, terwijl MACD meer zegt op hogere tijdframes.

Voor permutation importance: from sklearn.inspection import permutation_importance
result = permutation_importance(rf, X_test, y_test, n_repeats=10, random_state=42)
perm_series = pd.Series(result.importances_mean, index=X.columns).sort_values(ascending=False)
print(perm_series)

SHAP werkt als volgt (installatie: pip install shap): import shap
explainer = shap.TreeExplainer(rf)
shap_values = explainer.shap_values(X_test)
shap.summary_plot(shap_values[1], X_test) # voor klasse 1 (stijging) Deze plots geven je inzicht in zowel richting als grootte. Zo zie je dat een hoge RSI soms juist een waarschuwing is, afhankelijk van de marktcontext.

Visualiseren: van cijfers naar inzicht

Een feature importance lijst is nuttig, maar door slimme feature engineering voor financiële data toe te passen, zegt een goede visualisatie nog veel meer.

Gebruik matplotlib of seaborn voor heldere bar charts. Zet de features op de y-as en de importance score op de x-as.

Gebruik kleur om de top 5 te markeren, bijvoorbeeld in je broker-thema (oranje voor Interactive Brokers, blauw voor LMAX). Voor SHAP is de beeswarm plot krachtig. Elke punt is een voorspelling, de kleur laat zien of de feature hoog of laag was. Zo zie je niet alleen welke feature belangrijk is, maar ook hoe de waarde de uitkomst beïnvloedt.

Handig voor risicomanagement: je identificeert extreme waarden die je bot kunnen verrassen.

Een andere nuttige visualisatie is de cumulative importance plot. Je ziet hoeveel features nodig zijn om 80% of 90% van de impact te verklaren. In trading bots zie je vaak dat de eerste 5–7 features 95% van het werk doen.

De rest kun je veilig schrappen. Tip: exporteer de visualisatie als SVG voor je dashboard. Zo blijft het scherp op elk scherm, en kun je het delen met je team of in je risk report.

Varianten per model en prijsindicaties

Random Forests geven directe importance scores. Gradient boosting modellen (XGBoost, LightGBM, CatBoost) doen hetzelfde, maar zijn vaak nauwkeuriger voor financiële tijdreeksen.

Hun importance is gebaseerd op gain (winst in split criteria) of cover (aantal observaties per split). Lineaire modellen (logistische regressie) gebruiken de magnitude van de coëfficiënten. Je standardiseert je features eerst, anders vergelijk je appels met peren.

Bij neurale netwerken is SHAP de beste optie, want er is geen ingebouwde importance.

Het rekenen kost meer tijd: reken op 2–5 minuten op een CPU voor 10k samples, of sneller op een GPU. Backtesting kosten: een eenvoudige Random Forest op 100k rows draait binnen een minuut op een laptop. Voor grotere datasets (1M+ rows) kies je voor LightGBM en een cloud instance. AWS c5.4xlarge (€0,68 per uur) of een GPU instance zoals p3.2xlarge (€3,06 per uur) voor SHAP op diepe netwerken.

Risicomanagement: technische indicatoren omzetten naar features helpt je om te bepalen welke variabelen je monitort. Zet alerts op de top 5.

Als de order flow imbalance plotseling extreem hoog wordt, weet je dat je bot extra voorzichtig moet zijn. Dit verlaagt de kans op onverwachte drawdowns.

Praktische tips voor je trading pipeline

  • Schrap features met lage importance na een backtest. Je pipeline wordt sneller en je broker kosten dalen.
  • Monitor importance over tijd. Markten veranderen; een feature die vandaag top is, kan morgen irrelevant zijn.
  • Combineer methoden. Gebruik Random Forest importance voor een snelle first pass, SHAP voor diepgaande analyse.
  • Bewaar je importance plots bij je backtest resultaten. Zo bouw je een audit trail voor je risicocomité.
  • Test op out-of-sample data. Importance op traindata is leuk, maar op echte live data moet het staan.

Een laatste tip: hou het simpel. Pas op dat je niet in de valkuil van te veel features gebruikt.

“De beste feature is degene die consistent werkt, niet degene die er ingewikkeld uitziet.”

Kies de top 5–7, bouw je bot, en verbeter iteratief. Zo blijft je systeem schaalbaar en betrouwbaar.

Met deze aanpak maak je je algoritmische trading bot slimmer, je backtests sneller en je risicomanagement scherper. En dat allemaal met een paar regels Python.

Portret van Alex de Vries, Quantitatief Analist & Algo-Trading Expert
Over Alex de Vries

Alex is een ervaren quantitatief analist en Python-ontwikkelaar die complexe trading concepten vertaalt naar begrijpelijke, praktische handleidingen voor zowel beginners als gevorderden.

Volgende stap
Bekijk alle artikelen over Machine Learning & AI in Trading
Ga naar overzicht →