Bulguları Raporla Özetleme
Temel içgörüleri, görselleştirme referansları ve uygulanabilir sonraki adımlarla birlikte yapılandırılmış bir Markdown özetinde derleyin.
Bulguları Raporla Özetleme, CoddyKit'te ücretsiz bir Pandas & NumPy Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Pandas & NumPy Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Pandas & NumPy Academy kursu toplamda 4 dersten oluşur.
Yapılandırılmış Bir EDA Raporu Neden Önemlidir
Yüzlerce grafik ve kod hücresi içeren ham Jupyter not defterlerini, bulgulara göre harekete geçmesi gereken paydaşlarla paylaşmak zordur. Yapılandırılmış bir EDA özet raporu, tek değişkenli ve iki değişkenli analizlerinizdeki en önemli içgörüleri anlaşılır bir anlatımda yoğunlaştırır. İyi raporlar bulguları (verilerin gösterdiği şey) çıkarımlardan (bu konuda yapılması gerekenler) ayırır ve yalnızca temel iddiaları destekleyen görselleştirmelere yer verir.
Bir EDA Raporunun Altı Bölümü
Profesyonel bir EDA raporu genellikle altı bölüm içerir: 1) Veri Kümesine Genel Bakış (boyut, kaynak, zaman aralığı), 2) Veri Kalitesi Sorunları (eksik değerler, aykırı değerler, yinelenen kayıtlar ve bunlara uygulanan işlemler), 3) Temel Değişken Dağılımları (en önemli sayısal ve kategorik sütunlar), 4) Korelasyonlar ve İlişkiler (bulunan en güçlü ilişkiler), 5) Alt Grup İçgörüleri (iş sorusu açısından önemli grup farklılıkları) ve 6) Önerilen Sonraki Adımlar (temizleme işlemleri, modelleme önerileri).
Veri Kümesine Genel Bakış Bölümünü Yazma
Genel bakış bölümü, her zaman doğru olduğundan emin olmak için program aracılığıyla oluşturulmalıdır. Boyutu, sütun adlarını ve veri türlerini, tarih aralığını (uygunsa) ve veri kümesinin kaynağını veya sürümünü kaydedin. Bu bölümü düzyazı yerine kodla yazmak, raporda 10.000 satırlık bir veri kümesini açıklarken aslında 9.800 satırlık temizlenmiş sürümden üretilmiş olma gibi yaygın bir hatayı önler.
import pandas as pd
import seaborn as sns
df = sns.load_dataset('titanic')
print('=== DATASET OVERVIEW ===')
print(f'Shape: {df.shape[0]:,} rows x {df.shape[1]} columns')
print(f'Columns: {", ".join(df.columns)}')
print(f'Numeric: {df.select_dtypes("number").shape[1]} columns')
print(f'Categorical: {df.select_dtypes("object").shape[1]} columns')
print(f'Boolean: {df.select_dtypes("bool").shape[1]} columns')
print(f'Total missing cells: {df.isna().sum().sum():,}')
print(f'Duplicate rows: {df.duplicated().sum()}')Veri Kalitesi Bölümünü Yazma
Veri kalitesi bölümü, bulunan her sorunu ve her biri için verilen kararı listeler. Column, Issue, Severity (High/Medium/Low), Action Taken sütunlarını içeren bir tablo kullanın. Veri değiştiğinde otomatik olarak güncellenmesi için bu tabloyu profil oluşturma sonuçlarından program aracılığıyla hesaplayın. Önem derecesi iş etkisini yansıtmalıdır: eksik bir hedef değişken Yüksek, tahmin için kullanılmayan bir sütunun eksik olması ise Düşük olabilir.
import pandas as pd
import seaborn as sns
df = sns.load_dataset('titanic')
# Auto-generate data quality table
missing_pct = (df.isna().sum() / len(df) * 100).round(1)
quality = missing_pct[missing_pct > 0].to_frame(name='missing_pct')
quality['severity'] = quality['missing_pct'].apply(
lambda x: 'High' if x > 30 else ('Medium' if x > 10 else 'Low')
)
quality['action'] = quality['missing_pct'].apply(
lambda x: 'Drop column' if x > 50 else 'Impute or flag'
)
print(quality.to_string())Çok Panelli Özet Grafikleri Oluşturma
Özet grafik, bir rapora eklenebilen tek bir görüntüde birkaç grafiği birleştirir. Bir ızgara oluşturmak için plt.subplots(rows, cols) kullanın ve her önemli bulguya kendi panelini atayın. Grafiği, çıktı biçimine uygun bir DPI değeriyle (ekran için 150, baskı için 300) savefig() kullanarak kaydedin. Her paneli yalnızca sütun adıyla değil, 'Ücret sağa çarpık dağılmıştır (çarpıklık=4.1)' gibi açık bir bulgu ifadesiyle başlıklandırın.
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = sns.load_dataset('titanic')
fig, axes = plt.subplots(2, 2, figsize=(12, 10))
# 1. Fare distribution
sns.histplot(df['fare'], kde=True, bins=30, ax=axes[0][0])
axes[0][0].set_title('Fare is right-skewed (skew=4.1)')
# 2. Survival by class
survival = df.groupby('class')['survived'].mean().reset_index()
sns.barplot(data=survival, x='class',
y='survived', order=['First', 'Second', 'Third'], ax=axes[0][1])
axes[0][1].set_title('Survival Rate Drops by Class')
# 3. Age distribution
sns.histplot(df['age'].dropna(), kde=True, bins=25, ax=axes[1][0], color='coral')
axes[1][0].set_title('Age: Near-Normal, Missing 20%')
# 4. Embarkation counts
sns.countplot(data=df, x='embarked', ax=axes[1][1], palette='Set2')
axes[1][1].set_title('Most Boarded at Southampton')
plt.tight_layout()
plt.savefig('/tmp/eda_summary.png', dpi=150, bbox_inches='tight')
plt.show()
print('Saved: /tmp/eda_summary.png')Bulguları Anlatı Metni Olarak Yazma
Her önemli bulgu, teknik bir açıklama olarak değil, işle ilgili bir cümle olarak ifade edilmelidir. 'Ücret sütununun çarpıklığı=4.1' demek yerine 'Bilet fiyatları son derece sağa çarpık dağılmıştır — az sayıdaki birinci sınıf yolcu, medyan ücretin 10 katından fazlasını ödemiştir; bu durum, ortalama fiyatı kullanan gelir analizlerini çarpıtabilir.' yazın. İstatistiksel gözlemi iş açısından anlamlı bir çıkarıma dönüştürmek, EDA raporlarını teknik olmayan paydaşlar için değerli kılar.
Markdown Raporlarını Programlı Olarak Yazma
EDA raporlarını doğrudan Python'dan markdown dosyaları olarak yazabilirsiniz. Markdown başlıkları, madde işaretleri ve gömülü görüntü bağlantıları içeren bir dize oluşturun, ardından bunu bir .md dosyasına yazın. Bu yaklaşım, temel veriler değiştiğinde otomatik olarak güncellenen ve yeniden üretilebilen raporlar oluşturur; böylece raporlar veri işleme hattının çıktı yapıtlarına veya Git depolarına kolayca entegre edilebilir.
import pandas as pd
import seaborn as sns
df = sns.load_dataset('titanic')
# Build a simple markdown report
lines = [
'# EDA Summary Report: Titanic Dataset',
'',
'## Overview',
f'- **Rows:** {len(df):,}',
f'- **Columns:** {df.shape[1]}',
f'- **Total Missing Cells:** {df.isna().sum().sum():,}',
'',
'## Key Findings',
'- First-class passengers had a 63% survival rate vs 24% for third class.',
'- Fare is extremely right-skewed (skew=4.1); use log transform before modelling.',
'- Age is missing in 20% of rows — median imputation recommended.',
'',
'## Recommended Next Steps',
'1. Impute age with median grouped by class.',
'2. Drop the cabin column (77% missing).',
'3. Log-transform fare before any regression modelling.',
]
with open('/tmp/eda_report.md', 'w') as f:
f.write('\n'.join(lines))
print('Report written to /tmp/eda_report.md')
print('\n'.join(lines[:10]))Jupyter ile HTML'e Dışa Aktarma
Jupyter not defterleri, jupyter nbconvert --to html notebook.ipynb kullanılarak HTML veya PDF biçimine aktarılabilir. Bu işlem, tüm grafikleri, kodu ve markdown hücrelerini, görüntülemek için Python kurulumu gerektirmeyen, paylaşılabilir tek bir dosyada korur. Tamamen otomatik bir veri işleme hattı için not defterini papermill ile program aracılığıyla çalıştırın: papermill input.ipynb output.ipynb -p date '2024-01-01'. Bu komut, not defterine parametre sağlar ve onu bir betik olarak yürütür.
# To export a Jupyter notebook to HTML:
# jupyter nbconvert --to html eda_notebook.ipynb
# To parameterise and run with papermill:
# pip install papermill
# papermill eda_template.ipynb eda_2024.ipynb -p date '2024-01-01' -p min_rows 1000
# The output notebook can then be exported:
# jupyter nbconvert --to html eda_2024.ipynb
print('Jupyter nbconvert and papermill automate report generation.')Uygulanabilir Sonraki Adımları Yapılandırma
Önerilen sonraki adımlar bölümü, genellikle bir EDA raporunun en çok okunan kısmıdır. Bu bölümü önceliklendirilmiş bir kontrol listesi olarak yapılandırın: P1 (engelleyici) — herhangi bir analizin geçerli olabilmesi için düzeltilmesi gereken sorunlar (ör. yanlış belirlenmiş veri türleri), P2 (önemli) — model performansını önemli ölçüde etkileyen temizleme işlemleri (ör. aykırı değerlerin ele alınması), P3 (olsa iyi olur) — incelenebilecek zenginleştirme fikirleri ve ek veri kaynakları. Bu çerçeve, ekibin çalışmayı uygun şekilde paylaştırmasını kolaylaştırır.
Hızlı Raporlama için pandas-profiling Kullanma
ydata-profiling (pip install ydata-profiling), tek bir çağrıyla kapsamlı bir HTML raporu oluşturur. Raporda genel istatistikler, değişken dağılımları, korelasyonlar, eksik değer örüntüleri ve yinelenen değer tespiti bulunur; bunlar, elle hazırlanan bir EDA raporunun tüm bölümleridir. Bir projenin başlangıcında hızlı keşif için bu aracı kullanın, ardından kendi iş sorunuzla en ilgili bulguları öne çıkarmak için özel bir özet raporu yazın.
# pip install ydata-profiling
# from ydata_profiling import ProfileReport
# import seaborn as sns
# df = sns.load_dataset('titanic')
# profile = ProfileReport(df, title='Titanic EDA')
# profile.to_file('titanic_eda.html') # interactive HTML
# profile.to_notebook_iframe() # inline in Jupyter
# Key sections in the generated report:
# - Overview: shape, missing, duplicates
# - Variables: per-column statistics and plots
# - Correlations: Pearson, Spearman, Cramers V
# - Missing values: heatmap and dendrogram
# - Duplicates: full list of duplicate rows
print('ydata-profiling generates full EDA reports with one function call.')Kaçınılması Gereken EDA Raporu Karşıt Örüntüleri
Yaygın EDA raporu karşıt örüntüleri şunlardır: her sütun için her grafiği göstermek (kimsenin okumadığı 50 sayfalık raporlar oluşturur; en önemli 5-10 grafiği seçin), yorum yapmadan gerçekleri sıralamak ('age sütununda 177 boş değer var' — peki ne yapmalıyız?), temizleme işleminden sonra raporu yenilememek (verileri temizleyin, ardından sorunların çözüldüğünü doğrulamak için profil oluşturmayı yeniden çalıştırın) ve temizleme kodunu analizle karıştırmak (veri temizlemeyi EDA anlatısından ayrı tutun).
Kısa Kontrol
Bu dersteki EDA raporu yazımı konusundaki anlayışınızı sınayın.
Ders Özeti
Bu derste şunları öğrendiniz: EDA raporlarını altı bölüm (genel bakış, kalite, dağılımlar, korelasyonlar, alt grup içgörüleri, sonraki adımlar) halinde yapılandırmayı, çok panelli özet grafikleri ve markdown raporlarını program aracılığıyla oluşturmayı ve istatistiksel bulguları işle ilgili bir dile dönüştürmeyi. Sırada gelişmiş indeksleme tekniklerini — MultiIndex oluşturmayı ve Pandas'ta hiyerarşik seçimi — inceleyeceğiz.
Sıkça Sorulan Sorular
“Bulguları Raporla Özetleme” dersi ücretsiz mi?
Evet — “Bulguları Raporla Özetleme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Pandas & NumPy Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Pandas & NumPy Academy kursu toplamda 4 dersten oluşur.
“Bulguları Raporla Özetleme” dersinde ne öğreneceğim?
Temel içgörüleri, görselleştirme referansları ve uygulanabilir sonraki adımlarla birlikte yapılandırılmış bir Markdown özetinde derleyin. Pandas & NumPy Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Pandas & NumPy Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Pandas & NumPy Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Bulguları Raporla Özetleme” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Pandas & NumPy Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Pandas & NumPy Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Veri Kümesi Profilleme Kontrol Listesi
- Tek Değişkenli Analiz
- İki Değişkenli ve Korelasyon Analizi
- Bulguları Raporla Özetleme