Python ile Veri Bilimi Projeleri: Pandas, NumPy ve Scikit-learn Kullanımı
Veri bilimi, günümüzün en hızlı büyüyen alanlarından biri ve Python, bu alanda en çok kullanılan programlama dillerinden biri haline geldi. Pandas, NumPy ve Scikit-learn gibi kütüphaneler, Python’ı veri analizi, manipülasyonu ve makine öğrenimi projeleri için vazgeçilmez kılıyor. Bu makalede, bu kütüphanelerin nasıl kullanıldığına dair detaylı bir bakış sunacak ve pratik projelerle konuyu pekiştireceğiz.
İçindekiler
- Giriş: Veri Bilimi ve Python
- Pandas ile Veri Manipülasyonu
- NumPy ile Sayısal Hesaplamalar
- Scikit-learn ile Makine Öğrenimi
- Python ile Veri Bilimi Projeleri
- Sonuç
Giriş: Veri Bilimi ve Python
Veri bilimi, büyük veri kümelerinden anlamlı bilgiler çıkarmak için istatistik, bilgisayar bilimi ve alan uzmanlığını bir araya getiren disiplinler arası bir alandır. Python, veri bilimi projelerinde sıklıkla kullanılmasının birkaç nedeni vardır: öğrenmesi kolay sözdizimi, geniş kütüphane ekosistemi ve topluluk desteği. Veri bilimciler, veriyi analiz etmek, görselleştirmek ve modellemek için Python’ı tercih ediyorlar.
Pandas ile Veri Manipülasyonu
Pandas, Python için yüksek performanslı, kullanımı kolay veri yapıları ve veri analizi araçları sağlayan bir kütüphanedir. DataFrame ve Series, Pandas’ın temel veri yapılarıdır. DataFrame, tabloları temsil ederken, Series tek boyutlu bir diziyi temsil eder. Pandas ile veri temizleme, dönüştürme, birleştirme ve analiz etme gibi birçok işlemi kolayca gerçekleştirebilirsiniz. Pandas ile veri manipülasyonu, veri bilimi projelerinin önemli bir parçasıdır.
Örneğin, bir CSV dosyasını okumak ve ilk birkaç satırını görüntülemek için aşağıdaki kodu kullanabilirsiniz:
import pandas as pd
df = pd.read_csv('data.csv')
print(df.head())
Pandas ayrıca eksik değerleri işlemek, sütunları yeniden adlandırmak, filtreleme yapmak ve gruplama yapmak gibi birçok kullanışlı fonksiyon sunar.
NumPy ile Sayısal Hesaplamalar
NumPy, Python için bilimsel hesaplama için temel bir pakettir. Çok boyutlu dizi nesnesi, gelişmiş matematiksel fonksiyonlar ve doğrusal cebir, Fourier analizi ve rastgele sayı yetenekleri sunar. NumPy, özellikle büyük veri kümeleriyle çalışırken, Pandas’ın altında yatan motor olarak da görev yapar. NumPy ile sayısal hesaplamalar, veri bilimi projelerinin temelini oluşturur.
Örneğin, bir NumPy dizisi oluşturmak ve ortalamasını hesaplamak için aşağıdaki kodu kullanabilirsiniz:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
mean = np.mean(arr)
print(mean)
NumPy, matris işlemleri, istatistiksel fonksiyonlar ve daha birçok gelişmiş özellik sunar.
Scikit-learn ile Makine Öğrenimi
Scikit-learn, Python için basit ve etkili araçlar sağlayan bir makine öğrenimi kütüphanesidir. Sınıflandırma, regresyon, kümeleme, boyut azaltma ve model seçimi gibi birçok makine öğrenimi algoritması içerir. Scikit-learn, kullanımı kolay arayüzü ve kapsamlı dokümantasyonu sayesinde veri bilimi projelerinde yaygın olarak kullanılır. Scikit-learn ile makine öğrenimi modelleri oluşturmak ve değerlendirmek oldukça kolaydır.
Örneğin, bir doğrusal regresyon modeli oluşturmak ve eğitmek için aşağıdaki kodu kullanabilirsiniz:
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([2, 4, 5, 4, 5])
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
model = LinearRegression()
model.fit(X_train, y_train)
score = model.score(X_test, y_test)
print(score)
Scikit-learn ayrıca veri ön işleme, model değerlendirme ve hiperparametre ayarlama gibi birçok kullanışlı araç sunar.
Python ile Veri Bilimi Projeleri
Teorik bilgileri pekiştirmek ve pratik deneyim kazanmak için, aşağıda bazı Python ile veri bilimi projeleri örnekleri verilmiştir. Bu projeler, Pandas, NumPy ve Scikit-learn kütüphanelerinin nasıl kullanıldığını göstermektedir.
Proje 1: Müşteri Kayıp Tahmini
Bu projede, bir telekom şirketinin müşteri verilerini kullanarak, hangi müşterilerin kaybolma olasılığının yüksek olduğunu tahmin etmeyi amaçlıyoruz. Bu, sınıflandırma algoritmaları kullanılarak yapılabilir. Veri setinde müşteri demografik bilgileri, kullanım alışkanlıkları ve fatura bilgileri gibi özellikler yer alabilir. Amaç, kayıp riskini belirlemek ve önleyici tedbirler almak.
Adımlar:
- Veri toplama ve temizleme
- Özellik mühendisliği
- Model seçimi (örneğin, Lojistik Regresyon, Karar Ağaçları)
- Model eğitimi ve değerlendirme
- Sonuçların yorumlanması
Proje 2: Konut Fiyatı Tahmini
Bu projede, bir bölgedeki konutların özelliklerini (örneğin, büyüklük, konum, oda sayısı) kullanarak, konut fiyatlarını tahmin etmeyi amaçlıyoruz. Bu, regresyon algoritmaları kullanılarak yapılabilir. Veri setinde konutların özellikleri ve satış fiyatları yer alabilir. Amaç, doğru bir fiyat tahmin modeli oluşturmak ve yatırım kararlarına yardımcı olmak.
Adımlar:
- Veri toplama ve temizleme
- Özellik mühendisliği
- Model seçimi (örneğin, Doğrusal Regresyon, Rastgele Ormanlar)
- Model eğitimi ve değerlendirme
- Sonuçların yorumlanması
Proje 3: Metin Sınıflandırması
Bu projede, metin verilerini (örneğin, haber makaleleri, sosyal medya gönderileri) belirli kategorilere sınıflandırmayı amaçlıyoruz. Bu, doğal dil işleme (NLP) teknikleri ve sınıflandırma algoritmaları kullanılarak yapılabilir. Veri setinde metinler ve ilgili kategoriler yer alabilir. Amaç, otomatik olarak metinleri sınıflandırmak ve bilgi erişimini kolaylaştırmak.
Adımlar:
- Veri toplama ve temizleme
- Metin ön işleme (örneğin, tokenizasyon, kök bulma)
- Özellik çıkarma (örneğin, TF-IDF)
- Model seçimi (örneğin, Naive Bayes, Destek Vektör Makineleri)
- Model eğitimi ve değerlendirme
- Sonuçların yorumlanması
Sonuç
Python, Pandas, NumPy ve Scikit-learn gibi kütüphaneler, veri bilimi projeleri için güçlü bir araç seti sunmaktadır. Bu makalede, bu kütüphanelerin temel kullanım alanlarını ve pratik projelerde nasıl uygulanabileceğini inceledik. Veri bilimi alanında başarılı olmak için, bu kütüphaneleri öğrenmek ve pratik projelerle deneyim kazanmak önemlidir. Python ile veri bilimi projeleri, günümüzün veri odaklı dünyasında büyük fırsatlar sunmaktadır.