Lineer Regresyon Uygulamaları: Python ile Basit Tahmin Modelleri Oluşturma
Veri bilimi ve makine öğrenimi dünyasına adım atan herkesin karşılaşacağı temel algoritmalardan biri hiç şüphesiz Lineer Regresyon'dur. Bu güçlü ve anlaşılması kolay istatistiksel model, iki veya daha fazla değişken arasındaki doğrusal ilişkiyi anlamak ve gelecekteki değerleri tahmin etmek için kullanılır. Özellikle Python'ın zengin kütüphaneleri sayesinde, Lineer Regresyon uygulamaları hiç olmadığı kadar erişilebilir ve pratiktir. Bu makalede, Python ile basit tahmin modelleri oluşturma sürecini adım adım ele alacak, veri hazırlığından modelin eğitilmesine ve değerlendirilmesine kadar tüm aşamaları somut örneklerle inceleyeceğiz. Amacımız, hem teorik temelleri pekiştirmek hem de pratik uygulamalarla Lineer Regresyon'un gücünü sizlere göstermektir.
Lineer Regresyon Nedir? Temel Kavramlara Giriş
Lineer Regresyon, bağımlı bir değişken (tahmin etmek istediğimiz sonuç) ile bir veya daha fazla bağımsız değişken (sonucu etkileyen faktörler) arasındaki doğrusal ilişkiyi modelleyen bir istatistiksel yöntemdir. En basit haliyle, bir veri kümesindeki noktalar arasına en uygun düz çizgiyi (regresyon doğrusu) çizerek, bağımsız değişkenlerin değerlerine göre bağımlı değişkenin değerini tahmin etmeye çalışır.
Basit Lineer Regresyon: Bir Doğru Denklemi
Basit Lineer Regresyon'da tek bir bağımsız değişken bulunur ve ilişki şu denklemle ifade edilir:
Y = β₀ + β₁X + ε
- Y: Bağımlı değişken (tahmin edilen değer)
- X: Bağımsız değişken
- β₀: Kesişim noktası (X=0 olduğunda Y'nin değeri)
- β₁: Eğim (X'teki bir birimlik artışın Y'deki değişimi)
- ε: Hata terimi (modelin açıklayamadığı kısım)
Çoklu Lineer Regresyon ise birden fazla bağımsız değişkenin olduğu durumlarda kullanılır ve denklem buna göre genişler.
Neden Lineer Regresyon Kullanmalıyız?
Lineer Regresyon, popülerliğini birkaç önemli avantaja borçludur:
- Yorumlanabilirlik: Modelin parametreleri (eğim ve kesişim), bağımsız değişkenlerin bağımlı değişken üzerindeki etkisini açıkça gösterir. Bu, sonuçların anlaşılmasını ve iş kararlarının alınmasını kolaylaştırır.
- Basitlik ve Hız: Algoritma hesaplama açısından nispeten basittir ve büyük veri setlerinde bile hızlı bir şekilde eğitilebilir.
- Temel Bir Başlangıç: Birçok karmaşık modelin temelini oluşturur ve makine öğrenimi yolculuğuna başlayanlar için mükemmel bir başlangıç noktasıdır.
- Geniş Uygulama Alanları: Finans, pazarlama, sağlık, mühendislik gibi birçok farklı sektörde tahmin ve analiz için kullanılır.
Python ile Lineer Regresyon Adım Adım
Şimdi gelelim işin pratik kısmına. Python'ın güçlü kütüphaneleri sayesinde Lineer Regresyon modeli oluşturmak oldukça kolaydır. İşte adım adım süreç:
Gerekli Kütüphaneler
Modelimizi oluşturmak ve analiz etmek için aşağıdaki kütüphanelere ihtiyacımız olacak:
numpy: Sayısal işlemler ve dizi manipülasyonu için.pandas: Veri setlerini işlemek ve analiz etmek için.scikit-learn: Makine öğrenimi algoritmalarını (Lineer Regresyon dahil) içeren ana kütüphanemiz.matplotlibveseaborn: Verileri ve model sonuçlarını görselleştirmek için.
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
import matplotlib.pyplot as plt
import seaborn as sns
Veri Hazırlığı: Veri Seti Oluşturma veya Yükleme
Modelimizi eğitmek için bir veri setine ihtiyacımız var. Basit bir örnek için rastgele veri oluşturalım. Gerçek bir senaryoda bu adımda bir CSV dosyasından veya veritabanından veri yüklersiniz.
# Rastgele veri seti oluşturma (Örn: Reklam Harcaması vs. Satış)
np.random.seed(0)
X = np.random.rand(100, 1) * 100 # Reklam Harcaması (0-100 arası)
y = 2 * X + 20 + np.random.randn(100, 1) * 20 # Satışlar (yaklaşık 2*X + 20)
# Veriyi DataFrame'e dönüştürme (isteğe bağlı, görselleştirme için faydalı)
df = pd.DataFrame({'Reklam_Harcamasi': X.flatten(), 'Satis': y.flatten()})
Verimizi bağımlı (y) ve bağımsız (X) değişkenlere ayırdıktan sonra, modeli eğitmek ve test etmek için veri setini eğitim ve test setleri olarak ikiye bölmeliyiz. Bu, modelimizin yeni, daha önce görmediği veriler üzerindeki performansını değerlendirmemizi sağlar.
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
Modelin Eğitilmesi
Veri hazırlığı tamamlandıktan sonra, Lineer Regresyon modelimizi oluşturup eğitim setimizle eğitebiliriz. Scikit-learn kütüphanesindeki `LinearRegression` sınıfı bu iş için idealdir.
# Lineer Regresyon modelini oluşturma
model = LinearRegression()
# Modeli eğitim verileriyle eğitme
model.fit(X_train, y_train)
model.fit() çağrısı, modelin eğitim verilerindeki en iyi `β₀` (kesişim) ve `β₁` (eğim) değerlerini bulmasını sağlar.
Tahmin Yapma ve Model Değerlendirmesi
Eğitilen modelimizle artık tahminler yapabiliriz. Ardından, modelin performansını ölçmek için çeşitli metrikler kullanacağız.
# Test seti üzerinde tahminler yapma
y_pred = model.predict(X_test)
# Modelin katsayılarını ve kesişim noktasını inceleme
print(f"Katsayı (Eğim): {model.coef_[0][0]:.2f}")
print(f"Kesişim: {model.intercept_[0]:.2f}")
# Model performansını değerlendirme
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f"Ortalama Kare Hata (MSE): {mse:.2f}")
print(f"R-Kare Skoru: {r2:.2f}")
- Ortalama Kare Hata (MSE): Tahmin edilen değerler ile gerçek değerler arasındaki farkların karelerinin ortalamasıdır. Daha düşük MSE, daha iyi model performansı anlamına gelir.
- R-Kare Skoru: Bağımlı değişkendeki varyansın ne kadarının bağımsız değişken(ler) tarafından açıklandığını gösterir. 0 ile 1 arasında değişir; 1'e ne kadar yakınsa, model o kadar iyi uyum sağlar.
Sonuçları Görselleştirme
Görselleştirme, modelin veriye nasıl uyduğunu anlamak için kritik öneme sahiptir.
plt.figure(figsize=(10, 6))
sns.scatterplot(x=X_test.flatten(), y=y_test.flatten(), label='Gerçek Değerler')
plt.plot(X_test, y_pred, color='red', label='Tahmin Doğrusu')
plt.xlabel('Reklam Harcaması')
plt.ylabel('Satış')
plt.title('Lineer Regresyon: Reklam Harcaması vs. Satış Tahmini')
plt.legend()
plt.grid(True)
plt.show()
Bu grafik, test setindeki gerçek satış değerlerini ve modelimizin tahmin ettiği regresyon doğrusunu gösterir. Doğrunun noktalara ne kadar yakın geçtiği, modelin ne kadar iyi tahmin yaptığının görsel bir göstergesidir.
Gerçek Dünya Uygulamaları
Lineer Regresyon'un potansiyeli sadece basit örneklerle sınırlı değildir. Gerçek dünyada birçok alanda aktif olarak kullanılmaktadır:
- Finans: Hisse senedi fiyatlarını etkileyen faktörleri belirleme ve gelecekteki fiyatları tahmin etme.
- Pazarlama: Reklam harcamalarının satışlar üzerindeki etkisini analiz etme ve bütçe optimizasyonu.
- Emlak: Ev fiyatlarını metrekare, konum, oda sayısı gibi özelliklere göre tahmin etme.
- Sağlık: İlaç dozajlarının hastanın iyileşme süresi üzerindeki etkisini değerlendirme.
- Meteoroloji: Hava durumu tahminlerinde sıcaklık, nem gibi değişkenler arasındaki ilişkileri modelleme.
Sonuç
Lineer Regresyon, veri bilimindeki en temel ama bir o kadar da güçlü araçlardan biridir. Bu makalede, Lineer Regresyon uygulamaları ve Python ile basit tahmin modelleri oluşturma sürecini adım adım ele aldık. Gerekli kütüphanelerin kurulumundan veri hazırlığına, modelin eğitilmesinden performans değerlendirmesine ve görselleştirmeye kadar her aşamayı detaylandırdık. Unutmayın ki Lineer Regresyon, daha karmaşık algoritmaların temelini oluşturur ve çoğu zaman sağlam bir başlangıç noktası sunar. Bu temel bilgileri edinerek, veri dünyasında daha ileri adımlar atmak için sağlam bir temel oluşturmuş oldunuz. Şimdi sıra sizde; farklı veri setleri üzerinde bu modellemeleri deneyerek kendi tahmin modellerinizi geliştirmeye başlayın!