Ontwikkel een Seaborn Visualisatie voor Geautomatiseerde Modelprestatie Evaluatie
description
Met deze prompt kan de gebruiker moeiteloos visuele vergelijkingen maken tussen meerdere machine learning modellen, waardoor inzichten in modelprestaties snel en overzichtelijk worden gepresenteerd. Dit bespaart tijd en voorkomt fouten bij handmatige evaluatie, en biedt flexibele aanpassingen voor specifieke behoeften.
prompt
Help me een Seaborn visualisatie te creëren die de prestaties van mijn machine learning modellen vergelijkt. Beschrijving van mijn dataset: <beschrijf kort je dataset>. Welke modellen wil ik vergelijken: <noem de namen van de modellen>. Welke prestatie-indicatoren wil ik visualiseren: <bijvoorbeeld nauwkeurigheid, r ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
no_answer_for_language
error: Generation failed [openai] prompt_id=3697 locale=nl err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3697 locale=en err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3697 locale=de err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3697 locale=fr err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3697 locale=pt err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3697 locale=es err=OpenAI connection/timeout | Generation failed [openai] prompt_id=3697 locale=zh err=OpenAI connection/timeout
provider: deepseek
model: deepseek-chat
Hier is een complete oplossing voor je Seaborn visualisatie in het Nederlands:
```python
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score, recall_score
# Stel de gewenste stijl in
sns.set_style("whitegrid")
plt.rcParams['font.family'] = 'sans-serif'
plt.rcParams['font.sans-serif'] = ['Arial', 'DejaVu Sans'] # Strak lettertype
# Laad je dataset (vervang 'jouw_dataset.csv' met je eigen bestand)
# df = pd.read_csv('jouw_dataset.csv')
# Voorbeeld: splitsing in features en target (pas aan naar je eigen dataset)
# X = df.drop('kredietwaardigheid', axis=1)
# y = df['kredietwaardigheid']
# Train-test split (voorbeeld)
# X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# Initialiseer modellen
modellen = {
'Decision Tree': DecisionTreeClassifier(),
'K-Nearest Neighbors': KNeighborsClassifier(),
'Naive Bayes': GaussianNB()
}
# Resultaten verzamelen
resultaten = []
# Train en evalueer modellen (voorbeeld - vervang met je eigen data)
for naam, model in modellen.items():
# model.fit(X_train, y_train)
# y_pred = model.predict(X_test)
# Voor demonstratie: random scores (vervang met echte resultaten)
nauwkeurigheid = np.random.uniform(0.7, 0.9)
recall = np.random.uniform(0.6, 0.85)
resultaten.append({
'Model': naam,
'Nauwkeurigheid': nauwkeurigheid,
'Recall': recall
})
# Maak DataFrame van resultaten
df_resultaten = pd.DataFrame(resultaten)
# Smelt DataFrame voor Seaborn
df_melted = df_resultaten.melt(id_vars=['Model'],
var_name='Metric',
value_name='Score')
# Creëer de visualisatie
fig, ax = plt.subplots(figsize=(12, 8))
# Barplot met blauw en oranje kleuren
palette = {'Nauwkeurigheid': '#1f77b4', 'Recall': '#ff7f0e'} # Blauw en oranje
bars = sns.barplot(data=df_melted, x='Model', y='Score', hue='Metric',
palette=palette, ax=ax, alpha=0.8)
# Extra annotaties: gemiddelde waarden
for i, model in enumerate(df_resultaten['Model']):
avg_acc = df_resultaten[df_resultaten['Model'] == model]['Nauwkeurigheid'].values[0]
avg_rec = df_resultaten[df_resultaten['Model'] == model]['Recall'].values[0]
ax.text(i - 0.2, avg_acc + 0.01, f'{avg_acc:.3f}',
ha='center', va='bottom', fontweight='bold')
ax.text(i + 0.2, avg_rec + 0.01, f'{avg_rec:.3f}',
ha='center', va='bottom', fontweight='bold')
# Stel labels en titel in
ax.set_title('Vergelijking Machine Learning Modellen Prestaties\nKredietwaardigheid Voorspelling',
fontsize=16, fontweight='bold', pad=20)
ax.set_xlabel('Model', fontsize=12, fontweight='bold')
ax.set_ylabel('Score', fontsize=12, fontweight='bold')
ax.set_ylim(0, 1)
# Verbeter de legenda
ax.legend(title='Metriek', title_fontsize=12, fontsize=11,
loc='upper right', frameon=True)
# Voeg rasterlijnen toe voor betere leesbaarheid
ax.yaxis.grid(True, linestyle='--', alpha=0.7)
# Verwijder randen
sns.despine()
# Toon de plot
plt.tight_layout()
plt.show()
# Optioneel: toon ook een tabel met de resultaten
print("\nPrestatieoverzicht:")
print(df_resultaten.to_string(index=False))
```
**Belangrijke aanpassingen die je moet maken:**
1. **Laad je eigen dataset**: Verwijder de commentaartekens bij het laden van je dataset
2. **Pas de kolomnamen aan**: Zorg dat 'kredietwaardigheid' overeenkomt met je target variabele
3. **Vervang de random scores**: Verwijder de random scores en gebruik je echte modelresultaten
**Extra opties die je kunt toevoegen:**
```python
# Voor betrouwbaarheidsintervallen (als je cross-validation gebruikt):
# voeg error bars toe met de std_dev van je metrics
# Voor een andere visualisatiestijl:
sns.catplot(data=df_melted, x='Model', y='Score', hue='Metric',
kind='point', palette=palette, height=6, aspect=1.5)
```
De visualisatie toont beide metrics naast elkaar per model, met duidelijke annotaties van de scores en gebruikt het gevraagde blauw-oranje kleurenschema met een strakke opmaak.