Python ile Basit Doğrusal Regresyon

Doğrusal Regresyon Nedir?

Doğrusal regresyon, bağımlı ve bağımsız değişkenler arasında doğrusal bir ilişki modellemek için istatistik ve makine öğreniminde sıklıkla kullanılan bir tekniktir. Bu model, en temel düzeyde, bir bağımlı değişkenin (y) bir veya daha fazla bağımsız değişken (x1, x2, … xn) üzerinden tahmin edilmesi anlamına gelir. Doğrusal regresyon, genellikle iki değişken arasında bir çizgi fit etme veya eğilim belirleme amacıyla kullanılır. Örneğin, bir insanın boyuna göre ağırlığını tahmin etmek için bu yöntem oldukça etkilidir. Bu sayede, belirli bir boy değerine karşılık gelen ağırlık virgülünde bir tahmin elde edilebilir.

Regresyon modelinin matematiksel ifadesi genellikle şu şekilde yazılır: y = β0 + β1*x1 + … + βn*xn + ε. Burada, β0 kesişim (intercept), β1, β2, …, βn ise eğim (slope) katsayılarıdır. ε ise hata terimini ifade eder. Bu temel yapılandırmayla, bağımsız değişkenlerin toplamı ile bağımlı değişken arasındaki ilişkiyi tanımlamış oluruz.

Doğrusal regresyonun ana avantajlarından biri, sonuçların yorumlanmasının oldukça kolay olmasıdır. Yani, modelde yer alan her bir katsayı, ilgili değişkenin bağımlı değişken üzerindeki etkisini gösterir. Örneğin, β1’in pozitif bir değeri, x1 değişkenindeki her bir birim artışın, y’yi de arttırdığı anlamına gelir.

Python ile Doğrusal Regresyon Uygulaması

Python, birçok popüler kütüphane ve araçla birlikte doğrusallık ve regresyon analizleri yapmak için çok uygun bir dildir. Bu uygulamalar için genellikle scikit-learn, Pandas ve NumPy kütüphanelerini kullanıyoruz. İlk olarak, bu kütüphaneleri yüklememiz gerekiyor. Eğer sisteminizde yüklü değilse, aşağıdaki pip komutunu kullanarak kurulum yapabilirsiniz:

pip install numpy pandas scikit-learn

Kurulumdan sonra, basit bir doğrusal regresyon uygulamasını geliştirmek için öncelikle verilerimizi hazırlamamız gerekecek. Örneğin, bir dizi veri seti oluşturarak başlayalım. Bu veri setinde, bağımlı değişken ‘y’ ve bağımsız değişken ‘x’ olsun. Veri setimiz aşağıdaki gibi görünebilir:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# Rasgele veri oluşturma
np.random.seed(0)
X = 2 * np.random.rand(100, 1)
Y = 4 + 3 * X + np.random.randn(100, 1)

Burada, X bağımsız değişkenimizi ve Y bağımlı değişkenimizi rasgele oluşturduk. Elde ettiğimiz bu verileri daha sonra modelimiz için kullanacağız.

Verilerin Görselleştirilmesi

Veri analizi yapmanın önemli bir aşaması, verilerin görselleştirilmesidir. Bu, modelimizi oluşturacağımız değişkenlerin ilişkisini anlamamıza yardımcı olur. Aşağıdaki kod ile verilerimizi bir grafik üzerinde çizebiliriz:

plt.scatter(X, Y)
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Veri Dağılımı')
plt.show()

Bu grafikte, X ve Y arasındaki ilişkiyi görebilirsiniz. Muhtemel bir doğrusal ilişkinin varlığına dair somut bir gösterim elde etmiş olduk.

Doğrusal Regresyon Modelinin Oluşturulması

Şimdi ise sıfırdan bir doğrusal regresyon modeli oluşturmaya geçelim. Bunun için scikit-learn kütüphanesindeki LinearRegression sınıfını kullanacağız:

from sklearn.linear_model import LinearRegression

# Modeli oluşturma
model = LinearRegression()
model.fit(X, Y)

Yukarıdaki kod, modelimizi eğitmekte ve kütüphane, eğitilen modeli kullanarak regresyon katsayılarını otomatik olarak belirleyecektir. Artık eğitilen modelle tahminlerde bulunabiliriz. Aşağıda modelin tahminlerini elde etme sürecini görebilirsiniz:

Y_pred = model.predict(X)

Bu adımda, Y_pred olan tahmin edilen değerleri elde etmiş oluyoruz. Şimdi ise hem gerçek verilerimizi hem de tahmin edilen değerleri birlikte görselleştirelim:

plt.scatter(X, Y)
plt.plot(X, Y_pred, color='red')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Gerçek ve Tahmin Edilen Değerler')
plt.show()

Kırmızı çizgi, modelimizin yaptığı tahminleri göstermektedir. Bu çizginin verilerimize ne kadar iyi uyduğu, modelimizin başarısını gösterir.

Katsayıların Yorumlanması

Modelimiz eğitildikten sonra, modelden elde edilen katsayıları incelemek isteyebiliriz. Aşağıdaki kod ile kesişim ve eğim katsayılarını elde edebiliriz:

intercept = model.intercept_[0]
e_coef = model.coef_[0][0]
print(f'Kesişim: {intercept}, Eğim: {e_coef}')

Bu çıktılar, modelimizin oluşturduğu doğrusal doğramanın kesişimini ve eğimini temsil eder. Örneğin, kesişim katsayısı 4, eğim katsayısı ise 3 ise bu, X her bir birim arttığında Y’nin 3 birim arttığı anlamına gelir.

Modelin Başarısını Değerlendirmek

Doğrusal regresyon modelimizin başarısını değerlendirmek için birkaç metrik vardır. En yaygın kullanılanlardan biri R^2 (R-kare) değeridir. Bu değer, modelimizin bağımlı değişkenin varyansını ne kadar açıkladığını gösterir. R^2 değerini hesaplamak için aşağıdaki kodu kullanabiliriz:

from sklearn.metrics import mean_squared_error, r2_score

mse = mean_squared_error(Y, Y_pred)
r2 = r2_score(Y, Y_pred)
print(f'Mean Squared Error: {mse}, R^2: {r2}')

MSE (Ortalamalı Kare Hatası) ile modelin tahminleri ile gerçek değerler arasındaki farka bakarken, R^2 değeri 0 ile 1 arasında bir değer alır. 1’e yakın bir R^2 değeri, modelimizin verileri iyi bir şekilde açıkladığını gösterir.

Sonuç

Basit doğrusal regresyon analizi, Python ile uygulanabilir bir bilgi modellemesi olarak sunulmaktadır. Python’un sağladığı kütüphaneler sayesinde, karmaşık veri setleri üzerinde etkili bir şekilde çalışabilir ve önemli sonuçlar elde edebilirsiniz. Verilerinizi iyi bir şekilde hazırladıktan sonra, yukarıda bahsedilen adımlar sayesinde basit bir doğrusal regresyon modeli oluşturarak veri analizi sürecinizi yüksek verimle gerçekleştirebilirsiniz.

Doğrudan veri setlerini kullanarak, örnek projeler üzerinde çalışmak, bildiklerinizi pratiğe dökmek için oldukça önemlidir. İlerleyen zamanlarda karmaşık regresyon modellerine geçmek, veri biliminin ve makine öğrenmesinin derinliklerine dalmak için güzel bir başlangıç olacaktır.

Scroll to Top