Lineer Regresyon Nedir?

Nurhayat Yurtaslan
6 min readMar 27, 2023

--

Lineer regresyon, bir bağımlı değişkenin bir veya daha fazla bağımsız değişkene göre doğrusal bir fonksiyonla açıklanmasıdır. Bu, iki değişken arasındaki ilişkiyi modellemek için kullanılır ve özellikle tahmin problemlerinde sıklıkla kullanılır. Lineer regresyon, birçok alanda kullanılabilen bir makine öğrenimi algoritmasıdır. Örnek olarak, bir ürünün fiyatını, reklam harcamalarını ve satışları arasındaki ilişkiyi tahmin etmek için kullanılabilir.

Lineer Regresyon Türleri

İki tür lineer regresyon vardır: tek değişkenli lineer regresyon ve çok değişkenli lineer regresyon.

Tek Değişkenli Lineer Regresyon

Tek değişkenli lineer regresyon, yalnızca bir bağımsız değişkenin olduğu modellerdir. Bu tür bir regresyon, veri noktalarının bir çizgiye en uygun şekilde uyması için kullanılır. Veri noktaları arasındaki ilişki doğrusal olduğunda kullanılır. Örneğin, bir ürünün fiyatı ve satışları arasındaki ilişkiyi modellemek için tek değişkenli lineer regresyon kullanılabilir.

Çok Değişkenli Lineer Regresyon

Çok değişkenli lineer regresyon, birden fazla bağımsız değişkenin olduğu modellerdir. Bu tür bir regresyon, veri noktalarının bir düzlem veya düzlem boyunca en uygun şekilde uyması için kullanılır. Veri noktaları arasındaki ilişki doğrusal olduğunda kullanılır. Örneğin, bir ürünün fiyatını, reklam harcamalarını ve satışları arasındaki ilişkiyi tahmin etmek için çok değişkenli lineer regresyon kullanılabilir.

Lineer Regresyon Örnekleri

  1. Ev Fiyat Tahmini: Bir evin fiyatını belirleyen faktörleri kullanarak, ev fiyatları için bir lineer regresyon modeli oluşturabilirsiniz. Bu faktörler arasında evin büyüklüğü, yerleşim yeri, yaş ve diğer özellikler yer alabilir.
  2. Satış Tahmini: Bir şirketin satışlarını tahmin etmek için bir lineer regresyon modeli oluşturabilirsiniz. Bu model, geçmiş satış verileri, pazarlama bütçesi, rekabet faktörleri gibi faktörleri kullanabilir.
  3. Tıbbi Teşhisler: Tıbbi teşhisler için bir lineer regresyon modeli oluşturarak, hastaların belirli bir hastalığa sahip olup olmadıklarını tahmin edebilirsiniz. Bu model, hastaların yaşları, cinsiyetleri, aile öyküleri ve diğer tıbbi faktörleri dikkate alabilir.
  4. Öğrenci Başarı Tahmini: Bir öğrencinin notlarını, devamsızlıklarını ve diğer faktörleri kullanarak, öğrencinin başarısını tahmin etmek için bir lineer regresyon modeli oluşturabilirsiniz.
  5. Hisse Senedi Fiyat Tahmini: Bir hisse senedinin fiyatını belirleyen faktörleri kullanarak, hisse senedi fiyatları için bir lineer regresyon modeli oluşturabilirsiniz. Bu faktörler arasında şirketin finansal performansı, endüstri trendleri ve diğer faktörler yer alabilir.

Yukarıdaki örnekler, lineer regresyon ile model oluşturulabilecek konulardan bazılarıdır. Şimdi birkaç yazılım üzerinden örnek inceleyelim.

from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
import numpy as np
import matplotlib.pyplot as plt

# Veri kümesini yükleyin
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([2, 4, 5, 4, 5])

# Verileri eğitim ve test kümelerine ayırın
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Lineer regresyon modeli oluşturun ve eğitin
model = LinearRegression()
model.fit(X_train, y_train)

# Eğitim verileri üzerinde tahmin yapın ve MSE değerini hesaplayın
y_train_pred = model.predict(X_train)
mse_train = mean_squared_error(y_train, y_train_pred)
print("Eğitim seti MSE: {:.2f}".format(mse_train))

# Test verileri üzerinde tahmin yapın ve MSE değerini hesaplayın
y_test_pred = model.predict(X_test)
mse_test = mean_squared_error(y_test, y_test_pred)
print("Test seti MSE: {:.2f}".format(mse_test))

# Modelin performansını görselleştirin
plt.scatter(X_train, y_train, color='blue')
plt.plot(X_train, y_train_pred, color='red', linewidth=3)
plt.scatter(X_test, y_test, color='blue')
plt.plot(X_test, y_test_pred, color='green', linewidth=3)
plt.show()

Bu örnek veri kümesinde, X değişkeni bağımsız değişkeni, y değişkeni ise bağımlı değişkeni temsil etmektedir. Eğitim ve test verileri random_state parametresi ile belirtilen bir değer kullanılarak rastgele şekilde ayrılmıştır. Lineer regresyon modeli oluşturulduktan sonra, eğitim verileri üzerinde model uygunlaştırılır ve test verileri üzerinde tahmin yapılır. Son olarak, eğitim ve test verileri üzerinde yapılan tahminlerin gerçek değerleri ile karşılaştırılması için MSE değeri hesaplanarak performans görselleştirilir.

# Kütüphaneleri yükleme
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures

# Veri kümesini yükleme
X = np.array([1, 2, 3, 4, 5, 6]).reshape(-1, 1)
y = np.array([1, 3, 7, 15, 31, 63]).reshape(-1, 1)

# Doğrusal olmayan regresyon modeli oluşturma ve eğitim
poly = PolynomialFeatures(degree=2)
X_poly = poly.fit_transform(X)
poly.fit(X_poly, y)
lin_reg = LinearRegression()
lin_reg.fit(X_poly, y)

# Test verilerini oluşturma ve tahmin yapma
X_test = np.array([7, 8, 9, 10]).reshape(-1, 1)
X_test_poly = poly.fit_transform(X_test)
y_pred = lin_reg.predict(X_test_poly)

# Tahmin sonuçlarını görüntüleme
plt.scatter(X, y, color='red')
plt.plot(X_test, y_pred, color='blue')
plt.title('Polynomial Regression')
plt.xlabel('X')
plt.ylabel('y')
plt.show()

Bu örnekte, doğrusal olmayan bir regresyon modeli olan ikinci dereceden polinom regresyonu kullanılmaktadır. Verilerimiz 1'den 6'ya kadar olan X değerleriyle bunlara karşılık gelen y değerleridir. Burada, PolynomialFeatures sınıfı, X değerlerinin bir polinomu oluşturmak için kullanılır. Degree=2 ile belirtilen polinom derecesi ikinci dereceden olduğunu belirtir.

Sonra, LinearRegression sınıfı, bu polinom özelliklerini kullanarak bir model oluşturur ve eğitir. Daha sonra, X_test verilerini tahmin etmek için polinom özelliklerini kullanarak tahmin yapılır.

Grafikte, kırmızı noktalar gerçek verileri, mavi çizgi ise tahmin edilen polinom regresyonu doğrusunu gösterir.

Bu kod örneği, doğrusal olmayan veri setleri için doğrusal bir regresyon modelinin kullanılabileceğini ve “Polynomial Features” sınıfının bu işlemi gerçekleştirmek için kullanılabileceğini göstermektedir.

# Kütüphaneleri yükleme
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import Ridge

# Veri kümesini yükleme
X = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9]).reshape(-1, 1)
y = np.array([1, 3, 7, 15, 31, 63, 127, 255, 511]).reshape(-1, 1)

# Ridge regresyon modeli oluşturma ve eğitim
model = Ridge(alpha=0.1)
model.fit(X, y)

# Test verilerini oluşturma ve tahmin yapma
X_test = np.array([10, 11, 12]).reshape(-1, 1)
y_pred = model.predict(X_test)

# Tahmin sonuçlarını görüntüleme
plt.scatter(X, y, color='red')
plt.plot(X_test, y_pred, color='blue')
plt.title('Ridge Regression')
plt.xlabel('X')
plt.ylabel('y')
plt.show()

Bu kod Ridge Regresyonu kullanarak bir veri kümesine uygun bir model oluşturur ve bu modeli kullanarak yeni veriler üzerinde tahmin yapar.

Öncelikle, numpy ve matplotlib.pyplot kütüphaneleri yüklenir ve Ridge regresyonu için gerekli sklearn.linear_model.Ridge modülü içe aktarılır.

Daha sonra, veri kümesi numpy dizileri X ve y olarak tanımlanır. Burada X, bağımsız değişkenlerin değerlerini içerirken, y bağımlı değişkenin değerlerini içerir.

Ardından, Ridge regresyon modeli oluşturmak için sklearn.linear_model.Ridge fonksiyonu çağrılır. alpha parametresi, modelin düzenlileştirme katsayısının belirlenmesine yardımcı olur ve modelin overfitting yapmasını önler. Bu parametre ne kadar büyükse, model o kadar fazla düzenlileştirilir.

Modelin eğitimi için, Ridge modelinin fit() yöntemi, X ve y dizileri kullanılarak çağrılır.

Daha sonra, tahminlerin yapılacağı X_test dizisi oluşturulur ve modelin predict() yöntemi kullanılarak y_pred değişkenine tahmin sonuçları atanır.

Son olarak, matplotlib.pyplot kütüphanesi kullanılarak, veri noktaları (X, y) kırmızı renkli scatter plot ile çizilir ve Ridge regresyon modeli tarafından yapılan tahminler (X_test, y_pred) mavi renkli çizgi plot ile çizilir. Başlık, eksen etiketleri ve grafiğin gösterilmesi için plt.title(), plt.xlabel(), plt.ylabel() ve plt.show() fonksiyonları kullanılır.

Lineer regresyon, veri analizinde ve makine öğrenmesinde yaygın olarak kullanılan bir yöntemdir. Bu yöntem, bir bağımlı değişkenin, bir veya daha fazla bağımsız değişkenle olan ilişkisini modellemek için kullanılır.

Lineer regresyon, veriler arasındaki doğrusal bir ilişkiyi modelleyerek, bağımlı değişkenin tahmini değerini hesaplamak için kullanılır. Regresyon doğrusu, veri noktalarına en yakın doğru çizilerek oluşturulur ve bu doğru üzerindeki noktaların tahmini değerleri hesaplanır. Bu yöntem, yeni verilerin tahmin edilmesinde kullanılabileceği gibi, var olan verilerin analizinde de kullanılabilir.

Lineer regresyonun birçok farklı türü vardır, örneğin çoklu lineer regresyon, polinom regresyon ve ridge regresyon gibi. Bu yöntemler, farklı senaryolarda ve veri setleri için kullanılabilir ve daha iyi sonuçlar elde etmek için çeşitli parametrelerle ayarlanabilir.

Lineer regresyon, kolay anlaşılabilir bir yöntem olması ve verilerin özelliklerini basit bir şekilde açıklaması nedeniyle sıklıkla tercih edilir. Ancak, veriler arasındaki ilişkinin doğrusal olmadığı durumlarda veya veriler arasında çoklu etkenlerin yer aldığı durumlarda, bu yöntemin yeterli olmadığı durumlar da mevcuttur. Bu nedenle, lineer regresyonun avantajları ve dezavantajları dikkate alınarak, uygun veri setleri için uygun bir yöntem olarak kullanılması önemlidir.

--

--