Doğrusal regresyon, bağımlı ve bağımsız değişkenler arasındaki ilişkiyi modellemek için kullanılan bir makine öğrenmesi algoritmasıdır. Basit bir örnek vermek gerekirse, bir evin büyüklüğü (metrekare olarak) ve bu evin fiyatı arasındaki ilişkiyi düşünelim. Burada evin büyüklüğü bağımsız değişken (X), evin fiyatı ise bağımlı değişken (Y) olur. Doğrusal regresyon, bu iki değişken arasındaki ilişkiyi bir doğru çizgi (lineer bir denklem) olarak modellemeye çalışır.
Bu örnekte, rastgele oluşturulmuş bir ev büyüklüğü ve fiyatı veri seti kullanacağım ve Python'da doğrusal regresyon modeli nasıl oluşturulacağını göstereceğim. İlk olarak, gerekli kütüphaneleri yükleyeceğim ve ardından veri setini oluşturup modeli eğiteceğim. Son olarak, modelin çıktısını yorumlayacağız. Hadi başlayalım!
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
# Rastgele bir ev büyüklüğü ve fiyatı veri seti oluşturalım
np.random.seed(0) # Rastgelelik için sabit bir başlangıç noktası
ev_buyuklugu = np.random.rand(100, 1) * 100 # 0 ile 100 metrekare arasında evler
ev_fiyati = ev_buyuklugu * 50 + (np.random.rand(100, 1) - 0.5) * 10000 # Her metrekare için 50 birim fiyat + rastgele gürültü
# Veri setini bir DataFrame'e dönüştürelim
df = pd.DataFrame({'Ev Büyüklüğü': ev_buyuklugu.flatten(), 'Ev Fiyatı': ev_fiyati.flatten()})
# Doğrusal regresyon modelini oluşturalım ve eğitelim
model = LinearRegression()
model.fit(df[['Ev Büyüklüğü']], df['Ev Fiyatı'])
# Tahmin değerlerini alalım
tahmin_fiyatlari = model.predict(df[['Ev Büyüklüğü']])
# Modelin performansını ölçelim
mse = mean_squared_error(df['Ev Fiyatı'], tahmin_fiyatlari)
rmse = np.sqrt(mse)
# Sonuçları görselleştirelim
plt.scatter(df['Ev Büyüklüğü'], df['Ev Fiyatı'], color='blue', label='Gerçek Değerler')
plt.plot(df['Ev Büyüklüğü'], tahmin_fiyatlari, color='red', label='Tahmin Edilen Doğru')
plt.title('Ev Büyüklüğü vs Ev Fiyatı')
plt.xlabel('Ev Büyüklüğü (metrekare)')
plt.ylabel('Ev Fiyatı')
plt.legend()
plt.show()
Bu kod, ev büyüklüğü ve ev fiyatı arasındaki ilişkiyi modellemek için basit doğrusal regresyon kullanmaktadır. Kodun sonunda, elde edilen modelin çizdiği doğru ve gerçek veri noktaları bir grafik üzerinde gösterilir. Bu grafik, modelin verileri ne kadar iyi temsil ettiğini görsel olarak anlamanızı sağlar. Kodu çalıştırarak sonuçları kendiniz de gözlemleyebilirsiniz.
Grafikte ve sonuçlarda görebileceğiniz gibi, doğrusal regresyon modeli, ev büyüklüğü ve ev fiyatı arasındaki ilişkiyi bir doğru çizgi olarak modellemeye çalışır. Bu örnekte, model şu şekilde bir doğru çizgi bulmuştur:
Eğim (slope, modelin katsayısı): Yaklaşık 43.66. Bu, ev büyüklüğü her bir birim arttığında, ev fiyatının ortalama olarak 43.66 birim arttığı anlamına gelir.
Y-kesişimi (intercept): Yaklaşık 580.8. Bu, ev büyüklüğü sıfır olduğunda, ev fiyatının tahmini değeridir.
Modelin performansını ölçen kök ortalam kare hata (RMSE) yaklaşık 2761.04'tür. Bu değer, modelin tahminlerinin gerçek değerlerden ne kadar sapma gösterdiğini gösterir. Düşük bir RMSE, modelin daha iyi performans gösterdiğini belirtir.
Grafikte mavi noktalar gerçek veri noktalarını, kırmızı çizgi ise modelin tahmin ettiği doğruyu göstermektedir. Model, verilen veri seti üzerinde doğrusal bir ilişkiyi başarıyla yakalamış görünüyor. Ancak, gerçek dünya verileri genellikle daha karmaşık olabilir ve doğrusal regresyon, her tür veri için uygun olmayabilir. Bu, makine öğrenimi modellerinin veriye özgü olduğunu ve her durum için ayrı bir değerlendirme gerektirdiğini gösterir.
Örnek senaryolar ve veri setleri verir misin?
Makine öğrenimi ve doğrusal regresyon için örnek senaryolar ve veri setlerini aşağıda sıralıyorum. Bu senaryolar, gerçek dünya problemlerini modellemek için sıklıkla kullanılırlar ve birçok makine öğrenimi kursu veya kitabında bulabilirsiniz. Ayrıca, her senaryo için kullanabileceğiniz popüler veri setlerine de yer verdim:
Ev Fiyatlarının Tahmini:
Senaryo: Bir şehirdeki evlerin özelliklerine (metrekare, oda sayısı, konum, yaş vb.) dayanarak fiyatlarını tahmin etmek.
Veri Seti: Boston Housing Dataset
İkinci El Araba Fiyat Tahmini:
Senaryo: İkinci el araçların marka, model, kilometre, yaş, yakıt türü gibi özelliklerine dayanarak fiyatlarını tahmin etmek.
Veri Seti: Kaggle'deki Used Cars Dataset
Enerji Tüketimi Tahmini:
Senaryo: Binaların özelliklerine ve hava durumu bilgilerine göre enerji tüketim miktarlarını tahmin etmek.
Veri Seti: UCI Machine Learning Repository'deki Energy Efficiency Dataset
Öğrenci Başarı Skorlarının Tahmini:
Senaryo: Öğrencilerin demografik bilgileri, sosyal ve okul dışı faaliyetler, ailevi durum gibi faktörlere dayanarak akademik performanslarını tahmin etmek.
Veri Seti: Kaggle'deki Student Performance Dataset
Kredi Riski Değerlendirmesi:
Senaryo: Bireylerin kredi geçmişi, gelir düzeyi, borç oranları gibi bilgilere göre kredi riskini değerlendirmek.
Veri Seti: UCI Machine Learning Repository'deki German Credit Data
Sağlık Sigortası Maliyet Tahmini:
Senaryo: Kişilerin yaşı, cinsiyeti, BMI, çocuk sayısı ve sigara kullanımı gibi faktörlere dayanarak sağlık sigortası maliyetlerini tahmin etmek.
Veri Seti: Kaggle'deki Medical Cost Personal Dataset
Her bir senaryo, belirli bir alanın tipik sorunlarını yansıtır ve doğrusal regresyon gibi makine öğrenimi teknikleri kullanılarak çözülebilir. Ancak, unutmamak gerekir ki, doğrusal regresyon her tür veri seti ve problem için uygun olmayabilir. Problemin doğası ve veri setinin özellikleri, hangi makine öğrenimi algoritmasının kullanılacağını belirlemede önemli faktörlerdir.