DEV Community

MustafaLSailor
MustafaLSailor

Posted on

Linear regression

Lineer regresyon, istatistik ve makine öğrenmesinde kullanılan basit bir tahmin modelidir. Bu model, bağımlı değişken (hedef) ile bir veya daha fazla bağımsız değişken (özellikler) arasındaki ilişkiyi modellemek için kullanılır.

Lineer regresyon, adından da anlaşılabileceği gibi, bir doğru çizgi (2 boyutlu durumda) veya bir düzlem (3 boyutlu durumda) gibi bir "lineer" model oluşturur.

Model, aşağıdaki formülle ifade edilir:

y = b0 + b1*x1 + b2*x2 + ... + bn*xn + e
Bu formülde:

y, tahmin edilmek istenen bağımlı değişkeni,
b0, y eksenini kestiği nokta (intercept),
b1, b2, ..., bn, bağımsız değişkenlerin katsayıları (slope),
x1, x2, ..., xn, bağımsız değişkenleri,
e ise hata terimini temsil eder.
Lineer regresyonun amacı, gerçek değerler ile tahmin edilen değerler arasındaki toplam kare farkının (hata terimlerinin kareleri toplamı) minimum olduğu katsayıları (b0, b1, ..., bn) bulmaktır. Bu yönteme en küçük kareler yöntemi denir.

Lineer regresyon genellikle sürekli değerleri tahmin etmek için kullanılır, örneğin bir evin fiyatını, bir ürünün satış miktarını, bir kişinin yaşını vb. tahmin etmek için kullanılabilir.

Makine öğrenmesinde lineer regresyon genellikle Python'un Scikit-learn kütüphanesi kullanılarak yapılır. İşte bir örnek:

from sklearn.model_selection import train_test_split 
from sklearn.linear_model import LinearRegression
from sklearn import metrics
import pandas as pd

# Veri setini yükle
df = pd.read_csv('veri_seti.csv') # 'veri_seti.csv' yerine gerçek veri setinin yolunu yazın

# Bağımsız ve bağımlı değişkenleri ayır
X = df[['ozellik1', 'ozellik2', 'ozellik3']] # 'ozellik1', 'ozellik2', 'ozellik3' yerine gerçek özellik isimlerini yazın
y = df['hedef'] # 'hedef' yerine gerçek hedef değişkenin ismini yazın

# Veri setini eğitim ve test setlerine ayır
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

# Lineer regresyon modelini oluştur ve eğit
regressor = LinearRegression()  
regressor.fit(X_train, y_train)

# Test seti üzerinde tahmin yap
y_pred = regressor.predict(X_test)

# Modelin performansını değerlendir
print('Mean Absolute Error:', metrics.mean_absolute_error(y_test, y_pred))  
print('Mean Squared Error:', metrics.mean_squared_error(y_test, y_pred))  
print('Root Mean Squared Error:', np.sqrt(metrics.mean_squared_error(y_test, y_pred)))

Enter fullscreen mode Exit fullscreen mode

Bu kod, bir CSV dosyasından veri yükler, veriyi eğitim ve test setlerine ayırır, bir lineer regresyon modeli oluşturur ve eğitir, test seti üzerinde tahmin yapar ve son olarak modelin performansını değerlendirir.

Not: Yukarıdaki kodda 'veri_seti.csv', 'ozellik1', 'ozellik2', 'ozellik3' ve 'hedef' yer tutuculardır. Bunları kendi veri setinizin yoluna ve özellik/hedef isimlerine göre değiştirmeniz gerekmektedir.

Top comments (0)