English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

konuk
1 / ?
derslere geri dön

Veri Bilimi Nedir? [BLOCK_TYPE SECTION/STEP]

Veri bilimi yalnızca makine öğrenmesi değildir. Yalnızca istatistik değildir. Yalnızca programlama değildir. [BLOCK_TYPE SECTION/STEP]

Veri bilimi, verilerden faydalı bilgi çıkarmanın disiplinidir. Bu çalışmanın çoğu göz alıcı değildir: dağınık elektronik tabloları temizlemek, doğru soruları sormak, ve kodunuzla ilgilenmeyen insanlara sonuçları iletmektir. [BLOCK_TYPE SECTION/STEP]

Veri Bilimi Süreci [BLOCK_TYPE SECTION/STEP]

Tipik veri bilimi süreci şöyle görünür:

1. Collect: ham verileri veritabanlarından, API'lerden, CSV'lerden veya web scraping ile topla

2. Clean: eksik değerleri yönet, türleri düzelt, tekrarları kaldır

3. Explore: dağılımları görselleştir, desenleri bul, sorular sor

4. Engineer: modellerin öğrenmesine yardımcı olacak yeni özellikleri oluştur

5. Model: algoritmaları eğit, performansı değerlendir, yinele

6. Communicate: bulguları karar veren paydaşlara sun

Excel pivot tabloları, koşullu biçimlendirme veya VLOOKUP'u kullanmışsan, zaten 1-3 adımlarıyla yapılmışsın. Bu ders, bu deneyimden Python'daki iş akışına geçmeni sağlar.

Warm-Up

Veri Deneyiminiz

Herkes bir şekilde veriyle çalışmıştır: bir bütçe tablosu, not takip uygulaması, fitness uygulaması, hatta çalma sayıları olan bir çalma listesi.

Bir elektronik tablo veya uygulamada veriyle çalıştığınız bir zamanı anlatın. Ne bulmaya çalışıyordunuz ve veri size cevabı verdi mi?

Çöp Giriş, Çöp Çıkış

Temizlemenin Önemi

Veri bilimciler zamanlarının %60-80'ini veri temizlemeye ayırır. Bu abartı değil: sektör araştırmaları boyunca tutarlı bir bulgu olarak ortaya çıkıyor.

Neden basit: çöp girerse, çöp çıkar. Verinizde hatalar, missing values veya tutarsız formatlar varsa, üzerine inşa edilen her analiz yanlış olacaktır. Kirli verilerle eğitilmiş bir mükemmel model, emin şekilde yanlış cevaplar üretir.


Yaygın Veri Sorunları

- Missing values: hücreler boştur. Veri toplanmadı mı, yoksa değer gerçekten sıfır mı? Bu farklı durumlar farklı handling gerektirir.

- Wrong data types: sayı sütunu metin olarak kaydedilmiş, tutarsız formatlarda tarihler (01/02/2024: bu 2 Ocak mı yoksa 1 Şubat mı?)

- Outliers: bir maaş sütununda tek bir giriş $1,000,000,000. Bu gerçek mi, yoksa yazım hatası mı? Her iki durumda da ortalamalarınızı çarpıtacaktır.

- Duplicates: aynı kayıt iki kez görünür çünkü iki sistem kusurlu bir şekilde birleşmiştir

- Categorical encoding: bir sütun 'Yes', 'yes', 'Y', 'TRUE' ve '1' değerlerini içerir. Bunların hepsi aynı anlama gelir, ancak bilgisayarınız bunu bilmez.


Pandas'ta (standart Python veri kütüphanesi), bunları dropna(), fillna(), astype() ve drop_duplicates() gibi yöntemlerle ele alırsınız. Ancak zor kısım kod değildir: her sorunla ne yapacağınıza karar vermektir.

Common Data Problems

Cleaning Decisions

Deciding What To Do

İşte gerçek bir senaryo. 10.000 müşteri kaydından oluşan bir veri setiniz vardır. 'age' sütununda 500 eksik değer vardır.

Seçenekleriniz:

- Satırları sil: 500 kaydı da kaldırın. Basit, ancak verinizin %5'ini kaybedersiniz. Eğer bu 500 müşteri ortak bir özelliğe sahipse (örneğin yaş alanını atladıkları için gizlilik bilincine sahip olabilirler), silme işlemi yanlılığa yol açabilir.

- Ortalama ile doldur: boşlukları ortalama yaş ile değiştirin. Hızlı, ancak yaş sütununun varyansını yapay olarak azaltır.

- Medyan ile doldur: yaş dağılımı çarpık ise (birkaç çok yaşlı veya çok genç müşteri ortalamayı etkileyebilir) ortalamadan daha iyidir.

- Bayrak kullan: 'age_missing' adında yeni bir sütun oluşturun (1 veya 0) ve orijinal sütunu medyan ile doldur. Böylece modeliniz, eksikliğin kendisinin bilgilendirici olup olmadığını öğrenebilir.

Evrensel bir doğru cevap yoktur. Seçim, verinin neden eksik olduğu ve onu nasıl kullanmayı planladığınıza bağlıdır.

Çalışan maaşlarına ilgili bir veri setiniz vardır. 5.000 kayıttan 200 tanesinde maaş değerleri eksiktir. Eksik değerlerin çoğunun üst düzey yöneticilerden geldiğini gözlemliyorsunuz. Bu satırları siler misiniz, ortalama ile doldurur musunuz, yoksa başka bir işlem yaparsınız? Açıklama yapınız.

Doğru Soruları Sorma

Keşifsel Veri Analizi (EDA)

Herhangi bir model oluşturmadan önce verini anlaman gerekir. EDA, bir veri setinde örüntüleri, anomalileri ve ilişkileri bulmak için özetleme, görselleştirme ve sorgulama sürecidir.


Anahtar Araçlar

- Histogramlar: tek bir değişkenin dağılımını gösterir. Çan şeklinde mi? Çarpık mı? İki tepeli (bimodal) mi? Gelir histogramı her zaman sağa çarpıktır çünkü birkaç kişi çoğunluktan çok daha fazla kazanır.

- Saçılım grafikleri: iki değişken arasındaki ilişkiyi gösterir. Daha uzun boylu insanlar daha fazla mı weigh? Daha fazla çalışma süresi daha yüksek notlarla mı ilişkilidir? Desen (veya desen eksikliği) bir ilişkinin var olup olmadığını gösterir.

- Korelasyon: doğrusal ilişkiyi ölçen -1 ile +1 arasında bir sayı. +1 mükemmel pozitif ilişkiyi, -1 mükemmel negatif ilişkiyi, 0 ise doğrusal ilişki olmadığını gösterir. Ancak korelasyon nedenselliği ima etmez: dondurma satışları ve boğulma ölümleri yazın ikisi de arttığı nedeniyle korelasyon gösterir.

- Özet istatistikler: ortalama, medyan, standart sapma、最小值, maksimum. pandas'ta: df.describe() tek satırda tüm bunları verir.


Gerçek Beceri

Araçlar öğrenilmesi kolaydır. Zor kısım doğru soruları sormaktır. Kötü soru: 'Veriler ne diyor?' İyi soru: 'İlk hafta içinde destekle iletişime geçen müşterilerin elde tutma oranları daha mı yüksek?'

EDA Tools

Korelasyon Tuzağı

Korelasyon vs. Nedensellik

Bu, veri okuryazarlığında en önemli kavramdır. İki değişken birbirleriyle güçlü bir şekilde korelasyon gösterebilir, ancak biri diğerine neden olmayabilir.

Klasik örnekler:

- Daha fazla itfaiyeci bulunan şehirlerde daha fazla yangın çıkar. (Daha büyük şehirlerde hem itfaiyeci sayısı hem de yangın sayısı daha yüksek olur.)

- Kahvaltı eden öğrenciler daha iyi not alır. (Belki de daha varlıklı aileler hem kahvaltı hem de akademik destek sağlama olasılığı daha yüksektir.)

- Daha fazla çikolata tüketen ülkeler daha fazla Nobel Ödülü kazanıyor. (Her ikisi de ulusal servetle ilişkilidir.)

Gizli faktör confounding variable olarak adlandırılır: incelediğiniz iki değişkeni de etkileyen üçüncü bir değişken.

Korelasyon vs. Nedensellik

Bir şirket, ofis spor salonunu kullanan çalışanların %30 daha az hastalık izni kullandığını tespit ediyor. CEO, tüm çalışanların spor salonunu kullanmasını zorunlu kılmak istiyor. Bu akıl yürütmede ne yanlış? Bu korelasyonu açıklayabilecek confounding variables neler olabilir?

Kullanışlı Değişkenler Oluşturma

Özellik Mühendisliği Nedir?

Bir özellik, bir modelin tahmin yapmak için kullandığı girdi değişkenidir. Özellik mühendisliği, ham veriden yeni özellikler oluşturma sanatıdır ve bu, modellerin aksi takdirde göremeyeceği desenleri öğrenmesine yardımcı olur.

Ham veri nadiren modellerin ihtiyaç duyduğu formda gelir. 'Doğum tarihi' sütununa sahip bir veri kümesini düşünelim. Bir model ham tarihlerle pek bir şey yapamaz. Ancak ondan bir 'yaş' özelliği oluşturursanız, model birdenbire yaşa dayalı desenleri öğrenebilir.


Yaygın Teknikler

- Normalizasyon: sayıların ortak bir aralığa ölçeklendirilmesi (0 ile 1 aralığına veya ortalama=0 ve standart sapma=1). Bunu yapmazsan, binlerce ölçeğinde ölçülen bir özellik (maaş) tek haneli ölçülen bir özelliği (deneyim yılı) domine eder.

- One-hot encoding: kategorik değişkenleri ikili sütunlara dönüştürme. 'color' sütunu [red, blue, green] değerleriyle üç sütuna dönüşür: 'color_red', 'color_blue', 'color_green', her biri 0 veya 1 değerini alır.

- Binning: sürekli bir değişkeni kategorilere dönüştürme. Yaş 0-17 'minor', 18-64 'adult', 65+ 'senior' olur. Bu, ilişkinin doğrusal olmadığı durumlarda yardımcı olur.

- Interaction features: iki özelliği çarpma. 'Metrekare çarpı banyo sayısı' tek başına her ikisinden de ev fiyatını daha iyi tahmin edebilir.

- Domain knowledge: en güçlü teknik. Bir doktor, tıbbi bir model için özellikler oluştururken hangi lab sonuçlarının önemli olduğunu bilir. Bir pazarlamacı, 'son satın alma tarihinden beri geçen günler' bilgisinin 'satın alma tarihi'nden daha kullanışlı olduğunu bilir. Hiçbir algoritma bunu ersat edemez.

Feature Engineering Techniques

Feature Practice

Applying Feature Engineering

Bir müşteri akış aboneliğini gelecek ay iptal edecek olanları tahmin etmek için bir model oluşturduğunuzu hayal edin. Ham verileriniz şunları içerir:

- Hesap oluşturma tarihi

- Son giriş tarihi

- Geçen ay izlenen program sayısı

- Aylık ödeme miktarı

- Müşteri destek biletleri sayısı

- Ülke

Yukarıda listelenen ham verilerden, en az üç yeni özellik (feature) tasarlayın. Her biri için, neyi temsil ettiğini ve neden iptal tahmininde yardımcı olabileceğini açıkla.

Eğitim/Test Ayrımı

Verilerinizi Neden Ayırmalısınız

Modellemede en önemli kural: asla bir modeli, üzerinde eğitildiği aynı veriler üzerinde değerlendirme.

Bunu yaparsan, model cevapları ezberleyebilir. Eğitim verilerinde mükemmel puan alır ama yeni, görülmemiş verilerde başarısız olur. Buna aşırı öğrenme (overfitting) denir: model, gerçek desenler yerine kendi veri setindeki gürültüyü öğrenmiştir.

Standart uygulama, veriyi bölmektir:

- Eğitim seti (genellikle %70-80): model bundan öğrenir

- Test seti (genellikle %20-30): ayrılır, yalnızca nihai modeli değerlendirmek için kullanılır

scikit-learn'de: X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)


Yaygın Algoritmalar

- Doğrusal regresyon: veriler üzerinden en iyi uyumlu düz çizgiyi çizer. Basit, yorumlanabilir, ilişki yaklaşık doğrusal olduğunda çalışır. Bir sayı (fiyat, sıcaklık, puan) öngörür.

- Karar ağaçları: evet/hayır sorularından oluşan bir akış şeması. Anlaşılması ve açıklanması kolay. Budanmadıkça veya derinlik sınırlanmadıkça aşırı öğrenmeye (overfitting) yatkındır.

- Rastgele ormanlar: birlikte oy veren birçok karar ağacı. Tek bir ağaca daha fazla doğruluk sağlar, aşırı öğrenmeye daha az yatkın, ancak açıklanması daha zor.


Aşırı Öğrenme vs. Yetersiz Öğrenme

- Aşırı öğrenme: model aşırı karmaşık. Eğitim verilerini, gürültü dahil olmakاً ezberler. Eğitim verilerinde yüksek doğruluk, test verilerinde düşük doğruluk.

- Yetersiz öğrenme: model aşırı basit. Gerçek örüntüleri yakalayamaz. Eğitim verilerinde ve test verilerinde düşük doğruluk.

Amaç, bu ikisi arasındaki tatlı noktadır.

Train/Test Split and Bias-Variance Tradeoff

Değerlendirme Metrikleri

Modelinizin İyi Olduğunu Nasıl Anlarsınız?

Sadece doğruluk yanıltıcı olabilir. E-postaların %95'i spam değilse, her zaman 'spam değil' diyen bir model %95 doğru olur: ancak tamamen işe yaramaz.

Ana metrikler:

- Doğruluk: doğru tahminlerin yüzdesi. Sınıflar dengeli olduğunda kullanışlıdır.

- Kesinlik: modelin pozitif olarak işaretlediği şeylerin kaçı gerçekten pozitifti? Yüksek kesinlik, az sayıda yanlış alarm anlamına gelir.

- Duyarlılık: gerçek pozitiflerin kaçını model yakaladı? Yüksek duyarlılık, az sayıda kaçırılan vaka anlamına gelir.

- F1 skoru: kesinlik ve duyarlılığın harmonik ortalamasıdır. İkisini de dengelemek gerektiğinde kullanışlıdır.

- RMSE (Kök Ortalama Kare Hata): regresyon (sayı tahmin etme) için. Tahminler ortalama olarak ne kadar sapıyor?

Hangi metriğin daha önemli olduğu probleme bağlıdır. Kanser tespiti için duyarlılık daha önemlidir: bir vakayı kaçırmak istemezsiniz. Spam filtreleme için kesinlik daha önemlidir: gerçek bir e-postayı silmek istemezsiniz.

Değerlendirme Metrikleri ve Karışıklık Matrisi

Kredi kartı dolandırıcılık işlemlerini tespit etmek için bir model kuruyorsunuz. İşlemlerin yalnızca %0.1'i gerçekten dolandırıcılıktır. Eğer modeliniz her işlemi meşru olarak tahmin ederse, doğruluğu ne olur? Neden doğruluk burada kötü bir metrik olur ve bunun yerine hangi metrik kullanılmalıdır?

Veri Analisti vs. Veri Bilimcisi vs. ML Mühendisi

Üç Farklı Rol

Veri alanında üç ana kariyer yolu vardır ve bunlar farklı beceriler gerektirir.


Veri Analisti

- Odak: mevcut verilerle iş sorularını yanıtlamak

- Araçlar: SQL, Excel, Tableau, temel Python veya R

- Günlük işler: panolar, raporlar, A/B test analizi, paydaş sunumları

- Giriş yolu: genellikle en erişilebilir olanı. Birçok analist CS derecesi olmadan başlar.


Veri Bilimcisi

- Odak: öngörücü modeller oluşturmak ve karmaşık verilerde desenler bulmak

- Araçlar: Python (pandas, scikit-learn, matplotlib), istatistik, SQL, Jupyter not defterleri

- Günlük işler: EDA, özellik mühendisliği, model oluşturma, deney yapma

- Giriş yolu: genellikle istatistik veya nicel geçmiş gerektirir. Bootcamp'ler ve kendi kendine çalışma geçerlidir.


Makine Öğrenimi Mühendisi

- Odak: modelleri üretim sistemlerinde dağıtma ve ölçeklendirme

- Araçlar: Python, TensorFlow/PyTorch, Docker, bulut platformları (AWS/GCP), API'ler

- Günlük işler: model optimizasyonu, pipeline altyapısı, üretim modellerinin izlenmesi

- Giriş yolu: genellikle güçlü yazılım mühendisliği becerileri ve ML bilgisi gerektirir.


Portföy Oluşturma

İşe alım yöneticileri, ne okuduğunuzdan ziyade ne yapabileceğinizi önemser. GitHub'da 3-5 sağlam projeden oluşan bir portföy, sertifikalardan daha önemlidir. İyi projeler gerçek (oyuncak değil) veri setleri kullanır, açık belgeler içerir ve tam süreci gösterir: dağınık veriden eyleme geçirilebilir içgörüye kadar.

Data Career Paths

Sonraki Adımlarınız

Bundan Sonra Nereye Gidilir

Mesleğin araçları ücretsiz ve erişilebilir:

- pandas: veri manipülasyonu için standart Python kütüphanesi

- matplotlib / seaborn: görselleştirme kütüphaneleri

- scikit-learn: klasik makine öğrenmesi için temel araç

- Jupyter notebooks: kod, çıktı ve notları bir arada kullanabileceğiniz etkileşimli kodlama ortamları

- Kaggle: ücretsiz veri setleri, yarışmalar ve uygulayıcı topluluğu

İlgi duyduğunuz gerçek bir veri setiyle başlayın. İndirin, temizleyin, keşfedin ve bir soruya cevap vermeye çalışın. Bu tek proje, herhangi bir kursun öğreteceğinden fazlasını size öğretecektir.

Bu derste öğrendiklerinize göre, üç rolden (veri analisti, veri bilimcisi veya makine öğrenmesi mühendisi) hangisi sizi en çok ilgilendiriyor? Bu rol için becerilerinizi geliştirmek için bu hafta atabileceğiniz bir somut adım nedir?