slogan3

description

Met deze prompt ontwikkel je een geautomatiseerde en herhaalbare EDA workflow die je helpt snel en efficiënt inzicht te krijgen in je dataset. Het bespaart tijd door handmatige analyses te verminderen, verbetert de consistentie van je analyses en helpt bij het vroegtijdig detecteren van data problemen. Dit is ideaal voor gebruikers die regelmatig datasets analyseren en een gestandaardiseerde aanpak willen.

prompt

Help me een geautomatiseerde workflow voor Exploratory Data Analysis te ontwikkelen voor mijn dataset. Dataset Beschrijving: <beschrijf de inhoud en het doel van je dataset> Data Formaat: <specificeer het bestandstype of dataformaat> Belangrijke Analyse Stappen: <geef aan welke specifieke EDA stappen j ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
Natuurlijk! Hieronder vind je een gestructureerde en herhaalbare workflow voor geautomatiseerde Exploratory Data Analysis (EDA) van jouw klantenbestand. De workflow gebruikt Python en enkele populaire libraries en genereert een samenvattend PDF-rapport. Stap 1: Vereisten Installeren Zorg dat je de volgende libraries hebt geïnstalleerd: ```bash pip install pandas matplotlib seaborn pandas-profiling reportlab ``` Stap 2: Python Script voor Geautomatiseerde EDA ```python import pandas as pd import seaborn as sns import matplotlib.pyplot as plt from pandas_profiling import ProfileReport from reportlab.lib.pagesizes import letter from reportlab.pdfgen import canvas import io # 1. Data inladen def load_data(file_path): df = pd.read_csv(file_path) return df # 2. Data inspectie en samenvatting def data_overview(df): overview = { 'Shape': df.shape, 'Kolommen': df.columns.tolist(), 'Datatypes': df.dtypes.tolist(), 'Null waarden': df.isnull().sum().to_dict(), 'Unieke waarden': df.nunique().to_dict(), 'Statistische samenvatting': df.describe(include='all') } return overview # 3. Data kwaliteit en problemen detecteren def datakwaliteit(df): issues = {} for col in df.columns: null_count = df[col].isnull().sum() if null_count > 0: issues[col] = f"{null_count} null waarden" if df[col].dtype == 'object': if df[col].nunique() == 1: issues[col] = "Alle waarden hetzelfde" return issues # 4. Visualisaties genereren def genereer_visualisaties(df, output_dir): # Histogrammen voor numerieke kolommen for col in df.select_dtypes(include='number').columns: plt.figure() sns.histplot(df[col].dropna(), kde=True) plt.title(f'Distributie van {col}') plt.savefig(f'{output_dir}/{col}_histogram.png') plt.close() # Boxplots voor numerieke kolommen for col in df.select_dtypes(include='number').columns: plt.figure() sns.boxplot(x=df[col]) plt.title(f'Boxplot van {col}') plt.savefig(f'{output_dir}/{col}_boxplot.png') plt.close() # Barplots voor categorische kolommen for col in df.select_dtypes(include='object').columns: plt.figure(figsize=(8,4)) df[col].value_counts().plot(kind='bar') plt.title(f'Distributie van {col}') plt.savefig(f'{output_dir}/{col}_bar.png') plt.close() # 5. Automatisch rapport genereren def genereer_pdf(overview, issues, visualisatie_files, output_pdf): c = canvas.Canvas(output_pdf, pagesize=letter) width, height = letter y = height - 50 c.setFont("Helvetica-Bold", 16) c.drawString(50, y, "Exploratory Data Analysis Rapport") y -= 30 c.setFont("Helvetica", 12) c.drawString(50, y, "Data Overzicht:") y -= 20 for key, value in overview.items(): c.drawString(60, y, f"{key}: {value}") y -= 20 y -= 10 c.setFont("Helvetica-Bold", 14) c.drawString(50, y, "Datakwaliteitsproblemen:") y -= 20 c.setFont("Helvetica", 12) if issues: for col, probleem in issues.items(): c.drawString(60, y, f"{col}: {probleem}") y -= 20 else: c.drawString(60, y, "Geen problemen gedetecteerd.") y -= 20 y -= 10 c.setFont("Helvetica-Bold", 14) c.drawString(50, y, "Visualisaties:") y -= 20 for img_file in visualisatie_files: # Voeg afbeelding toe c.drawImage(img_file, 50, y - 150, width=500, height=150) y -= 170 if y < 100: c.showPage() y = height - 50 c.save() # Main Workflow def main(): data_path = 'klantenbestand.csv' # Pas dit aan naar jouw bestand output_dir = 'output_visualisaties' import os os.makedirs(output_dir, exist_ok=True) df = load_data(data_path) overview = data_overview(df) issues = datakwaliteit(df) genereer_visualisaties(df, output_dir) visualisatie_files = [ f'{output_dir}/{col}_histogram.png' for col in df.select_dtypes(include='number').columns ] + [ f'{output_dir}/{col}_boxplot.png' for col in df.select_dtypes(include='number').columns ] + [ f'{output_dir}/{col}_bar.png' for col in df.select_dtypes(include='object').columns ] output_pdf = 'EDA_Rapport.pdf' genereer_pdf(overview, issues, visualisatie_files, output_pdf) print("Rapport gegenereerd:", output_pdf) if __name__ == '__main__': main() ``` Gebruik dit script door je CSV-bestand te plaatsen en de paden aan te passen indien nodig. Dit automatiseert de data-inspectie, detecteert datakwaliteitsproblemen, genereert visualisaties, en compileert alles tot een overzichtelijk PDF-rapport. Veel succes met je analyse!
provider: deepseek
model: deepseek-chat
Absoluut. Hier is een gestructureerde, efficiënte en volledig geautomatiseerde workflow voor Exploratory Data Analysis (EDA) voor uw klantdataset, geschreven in Python. De workflow is opgebouwd uit een script en een configuratiebestand voor maximale herbruikbaarheid. ### De Workflow: Een Overzicht De workflow bestaat uit twee hoofdonderdelen: 1. **Een Python Script (`automated_eda.py`)**: Dit doet het zware werk: lezen, analyseren, visualiseren en exporteren. 2. **Een Configuratiebestand (`config.yaml`)**: Hier definieert u eenmalig de specifics van uw dataset (bestandspaden, variabelen). Dit maakt het script herbruikbaar voor toekomstige datasets. --- ### Stap 1: Installeer de Benodigde Packages Open uw terminal of command prompt en voer uit: ```bash pip install pandas numpy matplotlib seaborn ydata-profiling jinja2 PyYAML ``` --- ### Stap 2: Maak het Configuratiebestand (`config.yaml`) Dit bestand houdt variabele informatie buiten het script. Sla dit op als `config.yaml`. ```yaml # config.yaml data: file_path: "uw_dataset.csv" # Vervang door uw bestandsnaam delimiter: "," # Scheidingsteken (bijv. ";" voor Europese CSV's) columns: categorical: ["Geslacht", "Stad", "Lidmaatschapstype"] # Lijst van categorische variabelen numerical: ["Leeftijd", "Jaarinkomen", "Aankoopfrequentie"] # Lijst van numerieke variabelen date: ["Aankoopdatum"] # Optioneel: Lijst van datumvariabelen target: "TotaalUitgegeven" # Optioneel: Uw doelvariabele (voor correlatie) output: report_path: "eda_rapport.pdf" figure_directory: "plots/" # Map waar tijdelijke plots worden opgeslagen ``` --- ### Stap 3: Het Geautomatiseerde EDA Script (`automated_eda.py`) Kopieer en plak de onderstaande code naar een bestand genaamd `automated_eda.py`. ```python # automated_eda.py import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns import ydata_profiling from ydata_profiling import ProfileReport import yaml import os from datetime import datetime # --- CONFIGURATIE LADEN --- with open('config.yaml', 'r') as file: config = yaml.safe_load(file) # Maak de output map voor plots aan os.makedirs(config['output']['figure_directory'], exist_ok=True) # --- DATA INLADEN --- print("1. Data inladen...") df = pd.read_csv(config['data']['file_path'], delimiter=config['data']['delimiter']) # --- DATA INSPECTIE & KERNSTATISTIEKEN --- print("2. Uitvoeren van data inspectie...") # Genereer automatisch een uitgebreid profiel met ydata-profiling profile = ProfileReport(df, title="Profiler Report: Klantdataset", explorative=True, correlations={"auto": {"calculate": True}}, missing_diagrams={'heatmap': True, 'dendrogram': True}) profile.to_file("data_profiling_report.html") # Sla een interactieve HTML versie op # --- VISUALISATIES MAKEN --- print("3. Genereren van visualisaties...") plt.style.use('seaborn-v0_8') # Kies een schone stijl # 1. Distributie van Numerieke Variabelen print(" > Distributies van numerieke variabelen...") for col in config['columns']['numerical']: if col in df.columns: fig, ax = plt.subplots(1, 2, figsize=(12, 4)) fig.suptitle(f'Distributie van {col}') # Histogram df[col].hist(bins=30, ax=ax[0]) ax[0].set_title('Histogram') ax[0].set_ylabel('Frequentie') # Boxplot om uitschieters te zien df.boxplot(column=col, ax=ax[1]) ax[1].set_title('Boxplot') plt.savefig(f"{config['output']['figure_directory']}dist_{col}.png") plt.close() # 2. Telling van Categorische Variabelen (Staafdiagrammen) print(" > Staafdiagrammen voor categorische variabelen...") for col in config['columns']['categorical']: if col in df.columns: plt.figure(figsize=(10, 5)) df[col].value_counts().plot(kind='bar') plt.title(f'Verdeling van {col}') plt.xticks(rotation=45) plt.tight_layout() plt.savefig(f"{config['output']['figure_directory']}count_{col}.png") plt.close() # 3. Correlatiematrix (alleen als er een target is gedefinieerd) if config['columns'].get('target') and config['columns']['target'] in df.columns: print(" > Correlatiematrix...") # Selecteer alleen numerieke kolommen voor correlatie num_df = df[config['columns']['numerical'] + [config['columns']['target']]] plt.figure(figsize=(12, 8)) sns.heatmap(num_df.corr(), annot=True, cmap='coolwarm', center=0) plt.title('Correlatiematrix van Numerieke Variabelen') plt.tight_layout() plt.savefig(f"{config['output']['figure_directory']}correlation_matrix.png") plt.close() print("4. Alle analyses voltooid. Controleer de map 'plots/' en het bestand 'data_profiling_report.html'.") # --- OPTIONEEL: GENEREER EEN EENVOUDIG PDF-RAPPORT --- # Deze stap combineert de belangrijkste bevindingen en plots in één PDF. from fpdf import FPDF import glob class PDF(FPDF): def header(self): self.set_font('Arial', 'B', 16) self.cell(0, 10, 'EDA Rapport - Klantdataset', 0, 1, 'C') self.ln(5) def chapter_title(self, title): self.set_font('Arial', 'B', 14) self.cell(0, 10, title, 0, 1, 'L') self.ln(2) def chapter_body(self, body): self.set_font('Arial', '', 12) self.multi_cell(0, 8, body) self.ln() print("5. Genereren van samenvattend PDF rapport...") pdf = PDF() pdf.add_page() # Samenvatting sectie pdf.chapter_title('Samenvatting van de Analyse') summary_text = f""" Dit rapport is automatisch gegenereerd op {datetime.now().strftime("%Y-%m-%d %H:%M")}. Geanalyseerd bestand: {config['data']['file_path']} Belangrijkste bevindingen: - Dataset vorm: {df.shape[0]} rijen en {df.shape[1]} kolommen. - Totaal missing values: {df.isnull().sum().sum()} - Bekijk de bijgevoegde grafieken voor distributies, uitschieters en relaties tussen variabelen. """ pdf.chapter_body(summary_text) # Voeg alle gemaakte plots toe aan de PDF plot_files = glob.glob(f"{config['output']['figure_directory']}*.png") for plot_file in plot_files: pdf.add_page() pdf.chapter_title(plot_file.split('/')[-1].replace('_', ' ').replace('.png', '').title()) pdf.image(plot_file, x=10, w=190) # Sla de PDF op pdf.output(config['output']['report_path']) print(f"Klaar! Het rapport is opgeslagen als: {config['output']['report_path']}") ``` --- ### Hoe Gebruikt U Deze Workflow: 1. **Plaats uw CSV-bestand** in dezelfde map als de scripts. 2. **Bewerk het `config.yaml`-bestand**: * Zet de juiste `file_path`. * Pas de lijsten `categorical` en `numerical` aan naar de exacte namen van de kolommen in uw dataset. * Definieer een `target` variabele als u die heeft (bijv. "TotaalBesteding"). 3. **Voer het script uit** in uw terminal: ```bash python automated_eda.py ``` 4. **Bekijk de output**: * **`data_profiling_report.html`**: Een **interactief, diepgaand rapport** van ydata-profiling met alle details over missende waarden, correlaties, distributies en interactieve plots. Dit is uw belangrijkste tool voor het detecteren van datakwaliteitsproblemen. * **`eda_rapport.pdf`**: Een net, samengevat PDF-rapport met alle zelfgemaakte visualisaties voor presentatiedoeleinden. * **Map `plots/`**: Bevat alle afzonderlijke afbeeldingen. ### Belangrijke Sterktepunten van deze Workflow: * **Herhaalbaar**: Verander simpelweg het configuratiebestand voor een nieuwe dataset en voer het script opnieuw uit. * **Diepgaande Analyse**: `ydata-profiling` doet het meeste werk en detecteert automatisch problemen zoals skewness, uitschieters, hooggecorreleerde variabelen en missende waardenpatronen. * **Duidelijke Output**: Levert zowel een interactief HTML-dashboard als een net PDF-rapport op. * **Schaalbaar**: U kunt eenvoudig nieuwe soorten analyses of visualisaties toevoegen aan het script. U bent nu klaar om met één commandoregel waardevolle inzichten uit uw klantdata te halen!
error: Generation failed [deepseek] prompt_id=2272 locale=de err=DeepSeek connection/timeout