Ana içeriğe atla

Sklearn Doğrusal Regresyon: Örneklerle Eksiksiz Rehber

Doğrusal regresyonu, amacını ve scikit-learn kütüphanesiyle nasıl uygulanacağını öğrenin. Pratik örnekler içerir.
Güncel 22 Nis 2026  · 10 dk. oku

Doğrusal regresyon, değişkenler arasındaki ilişkiyi modellemeye yardımcı olan istatistik ve makine öğrenmesindeki temel bir tekniktir. Basitçe ifade etmek gerekirse, bir veya daha fazla etkileyen faktöre dayanarak bir sonucu tahmin etmemizi sağlar. Gayrimenkul fiyatlandırma, satış tahmini, risk değerlendirmesi ve daha birçok alanda yaygın olarak uygulanır.

Bu eğitimde, scikit-learn ile doğrusal regresyonu inceleyecek; nasıl çalıştığını, neden yararlı olduğunu ve scikit-learn kullanarak nasıl uygulanacağını ele alacağız. Sonunda, veri odaklı tahminler yapmak için bir doğrusal regresyon modeli kurup değerlendirebileceksiniz.

Oda Sayısına Karşı Konut Fiyatı Saçılım Grafiği

Doğrusal regresyon ve makine öğrenmesi

Konut fiyatlarını belirlemedeki doğrudan faydasının ötesinde, doğrusal regresyon makine öğrenmesinde önemli bir rol oynar.

  • lojistik regresyon, yapay sinir ağları ve destek vektör makineleri gibi daha gelişmiş teknikleri anlamak için temel bir modeldir.
  • Eğitimi hızlıdır, bu da hızlı prototipleme için idealdir.
  • Ayrıca karşılaştırma için bir temel olarak hizmet eder. Daha gelişmiş modeller bunu belirgin şekilde geride bırakmıyorsa, ek karmaşıklıkları haklı olmayabilir.
  • Bazı tekniklerin (ör. derin öğrenme) aksine, yorumlaması kolaydır.
  • Özellik seçimine yardımcı olabilir; en faydalı yordayıcıları belirler.

Basitliğine rağmen, doğrusal regresyon; verimliliği, yorumlanabilirliği ve çok yönlülüğü sayesinde makine öğrenmesinde vazgeçilmez bir araç olmaya devam etmektedir.

Doğrusal regresyon ve scikit-learn kütüphanesi

Scikit-learn kütüphanesi doğrusal regresyonun uygulanmasını kolaylaştırır. Bu kütüphanenin birçok avantajı vardır.

  • Tutarlı bir arayüze sahiptir. Farklı ML algoritmalarını uygulamak için gereken kod benzerdir.
  • Kod basittir; karmaşık matematik ve uygulama ayrıntıları soyutlanmıştır. Örneğin, bir modeli eğitim verisine uydurmak için yalnızca model.fit(X_train, y_train) satırını kullanmanız yeterlidir.
  • Model katsayılarına kolay erişim sağlar.
  • Model performansını değerlendirmek için yerleşik metrikler sunar.
  • Pipeline kullanarak doğrusal regresyonu (veya diğer ML algoritmalarını) ölçekleme ve özellik seçimi gibi önişleme adımlarıyla entegre etmek kolaydır.

Scikit-learn’e yeniyseniz, Python kütüphanesine uygulamalı bir giriş için scikit-learn ile Makine Öğrenmesi kursumuza göz atabilirsiniz. 

Doğrusal Regresyonu Anlamak

Görüldüğü gibi, basit doğrusal regresyonda veriler "en iyi uyum doğrusu" ile modellenir. Bu doğrunun formülü: 

burada m doğrunun eğimi, b ise kesişimdir.

"Çoklu doğrusal regresyon", tek bir yordayıcıdan birden çok yordayıcıya (oda sayısı, okyanusa yakınlık, mahallenin medyan geliri) genelleme yapar. Formül şu şekilde genelleştirilir: 

burada her bir xi bağımsız bir değişkendir ve karşılık gelen bi onun katsayısıdır. Üç boyutta doğru bir düzleme genelleşir. Daha yüksek boyutlarda düzlem bir "hiperdüzlem" olur.

Katsayıları ve kesişimi nasıl yorumlarız? Kesişim, tüm bağımsız değişkenler 0 iken y’nin tahmin edilen değeridir; başka bir deyişle, yordayıcılardan katkı olmadığında bağımlı değişkenin temel düzeyidir. Her bir bi katsayısı, diğer tüm bağımsız değişkenler sabitken, xi bir birim değiştiğinde bağımlı değişken y’deki değişimi temsil eder.

Ortamı Hazırlama

Scikit-learn kurulumu kolaydır. pip install scikit-learn komutunu kullanmanız yeterlidir. Belirli bir sürüm (örneğin 1.2.2) kurmak isterseniz, komutu sürümü içerecek şekilde değiştirin: pip install scikit-learn==1.2.2. Anaconda kullanıyorsanız, scikit-learn zaten kurulu olmalıdır. Anaconda dağıtımını kullanırken bir nedenle yine de kurmanız gerekirse şu komutu kullanın: conda install scikit-learn.

Scikit-learn kullanırken birkaç kütüphane gerekli veya önerilir. numpy kütüphanesi, özellik ve etiketleri depolamak için gereklidir. pandas kütüphanesi ise veri kümelerini yükleme, önişleme ve keşfetme için önerilir. 

Scikit-learn kullanıyorsanız, veri hazırlığı için büyük olasılıkla zaten pandas kullanıyorsunuzdur. Sonuçları görselleştirmek için ise genellikle matplotlib veya seaborn ya da her ikisini birden kullanırsınız. Bu kütüphanelerin herhangi birini yukarıdaki örneğe benzer şekilde pip ile kurabilirsiniz. Hatta tek bir komutla birden fazla kütüphaneyi kurabilirsiniz:

pip install scikit-learn numpy pandas matplotlib seaborn.

sklearn'de Doğrusal Regresyonun Uygulanması

Veri kümesini yüklemeden önce, klasik kütüphaneleri içe aktaralım.

# Import libraries.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

Veri kümesini yükleme

Bilinen California konut veri setini kullanalım.

# Read in California housing dataset.
from sklearn.datasets import fetch_california_housing


housing = fetch_california_housing()

Veriyi hazırlama

Veriyi eğitim ve test kümelerine bölelim. sklearn.model_selection içindeki train_test_split() yöntemini içe aktarıp, test kümesi yüzdesini ve bir random_state belirterek çağıracağız. Ayrıca, ortalama oda sayısına karşılık gelen özelliği kullanarak basit doğrusal regresyon uygulayacağız.

# Import train_test_split.
from sklearn.model_selection import train_test_split


# Create features X and target y.
X = pd.DataFrame(housing.data, columns=housing.feature_names)[["AveRooms"]]
y = housing.target  # Median house value in $100,000s


# Split the dataset into training (80%) and testing (20%) sets.
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

Artık veriyi test ve eğitim kümelerine böldüğümüze göre, özellikleri standartlaştıralım. Bu işlem, tüm değişkenlerin aynı ölçekte olmasını sağlar; bu da model performansını ve sayısal kararlılığı iyileştirebilir.

# Import StandardScaler.
from sklearn.preprocessing import StandardScaler

# Instantiate StandardScaler.
scaler = StandardScaler()

# Fit and transform training data.
X_train_scaled = scaler.fit_transform(X_train)

# Also transform test data.
X_test_scaled = scaler.transform(X_test)

Bu kodda StandardScaler, ortalamayı kaldırıp özellikleri birim varyansa ölçeklemek için kullanılan bir veri önişleme aracıdır. Bu, ölçek farklılıkları nedeniyle bazı özelliklerin modelde baskın hale gelmesini önlemeye yardımcı olur.

Ölçekleyici, fit_transform() yöntemiyle eğitim verisine uydurulur ve dönüştürülür. Test verisi ise transform() yöntemiyle ayrı olarak dönüştürülür; böylece eğitim verisiyle aynı faktörlerle ölçeklenir ve veri sızıntısı önlenir.

Doğrusal regresyon modelini eğitme

Bir doğrusal regresyon modeli oluşturmak için sklearn.linear_model içinden LinearRegression() sınıfını içe aktarın. Çağırıp bir değişkene atayın.

# Import LinearRegression.
from sklearn.linear_model import LinearRegression


# Instantiate linear regression model.
model = LinearRegression()

Modeli eğitim verisiyle uyarlamak (fit etmek) basittir.

# Fit the model to the training data.
model.fit(X_train_scaled, y_train)

Tahmin yapma

Modelimizi eğittiğimize göre, test kümesi üzerinde tahmin yapalım.

# Make predictions on the testing data.
y_pred = model.predict(X_test_scaled)

Model performansını değerlendirme

Test kümesi üzerinde tahminler yaptığımıza göre, bunların gerçeklikle ne kadar örtüştüğünü bilmemiz gerekir. Bir regresyon algoritmasının performansını değerlendirmek için çeşitli metrikler mevcuttur. En yaygın olanlardan bazıları belirleme katsayısı (R2), ortalama kare hata (MSE) ve karekök ortalama kare hata (RMSE)’dir.

Belirleme katsayısı R2, bir regresyon modelinin hedef değişkenin değişkenliğini ne kadar iyi açıkladığını ölçer. Başka bir deyişle, hedef değişkendeki değişkenliğin ne kadarının yordayıcılar tarafından açıklandığını, yani uyum iyiliğini niceler.

Bunu daha iyi anlamak için formüle bakalım:

burada yactual hedef değişkenin gerçek değerleri, ypredicted modelden gelen tahmini değerler ve ȳ gerçek değerlerin ortalamasıdır. Bu formül, hedef değişkendeki varyansın model tarafından ne kadarının açıklandığını anlamamıza yardımcı olur. Payda, verideki toplam varyansı; pay ise regresyon modeli uygulandıktan sonra açıklanamayan varyansı temsil eder. Oran, bu nedenle, modelin açıkladığı varyans yüzdesini verir.

R2 nasıl yorumlanır?

  • R2 = 1: model hedef değişkendeki tüm varyansı mükemmel biçimde açıklar. 
  • R2 = 0: model hiçbir varyansı açıklamaz; tahminler yalnızca ortalamayı kullanmaktan daha iyi değildir. 
  • R2 < 0: Model yalnızca ortalamayı kullanmaktan daha kötü performans gösterir; zayıf uyuma işaret eder.

Aklınızda tutmanız gereken bazı önemli noktalar.

  • Daha yüksek R2 her zaman daha iyi değildir. Yüksek R2, özellikle karmaşık modellerde aşırı uyuma işaret edebilir. 
  • Daha fazla özellik eklemek R2’yi yapay olarak artırabilir; dolayısıyla daha yüksek bir değer mutlaka daha iyi değildir.
  • Çoklu regresyonda, yordayıcı sayısını hesaba katan ve gereksiz değişkenlerden kaynaklanan yanıltıcı iyileştirmeleri önleyen düzeltilmiş R2 kullanın.

Scikit-learn ile belirleme katsayısını kullanarak model performansını değerlendirmek kolaydır.

# Import metrics.
from sklearn.metrics import mean_squared_error, r2_score


# Calculate and print R^2 score.
r2 = r2_score(y_test, y_pred)
print(f"R-squared: {r2:.4f}")
R-squared: 0.0138

Diğer yaygın metrikler ortalama kare hata (MSE) ve karekök ortalama kare hata (RMSE)’dir. Bu metrikler, bir modelin tahminlerinin gerçek değerlerden ne kadar saptığını ölçer.

MSE, gerçek ve tahmini değerler arasındaki ortalama karesel farkı hesaplar: 

n toplam gözlem sayısı için. Hatalar ortalaması alınmadan önce kare alındığından, büyük hatalar küçük olanlara kıyasla daha ağır cezalandırılır; bu da MSE’yi aykırı değerlere duyarlı kılar. Daha düşük MSE daha iyi uyuma işaret eder.

Bu sorunu gidermek için MSE’nin karekökü olan RMSE kullanılır. RMSE hedef değişkenle aynı birimdedir; bu nedenle, tahminlerin ortalama olarak ne kadar saptığına dair daha yorumlanabilir bir ölçü sunar.

MSE ve RMSE’yi scikit-learn ile hesaplamak kolaydır.

# Calculate and print MSE.
mse = mean_squared_error(y_test, y_pred)
print(f"Mean squared error: {mse:.4f}")


# Calculate and print RMSE.
rmse = mse ** 0.5
print(f"Root mean squared error: {rmse:.4f}")
Mean squared error: 1.2923
Root mean squared error: 1.1368

scikit-learn ile Çoklu Doğrusal Regresyon

Modeli yalnızca ortalama oda sayısı değil, mevcut tüm özellikleri kullanarak yeniden çalıştıralım. Daha iyi mi yoksa daha kötü sonuçlar bekliyorsunuz?

# Uses all features.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score


# Load data set.
housing = fetch_california_housing()


# Split into X, y.
X = pd.DataFrame(housing.data, columns=housing.feature_names)
y = housing.target  # Median house value in $100,000s
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)


# Scale the data.
scaler = StandardScaler()


X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)


# Create model and fit it to the training data.
model = LinearRegression()
model.fit(X_train_scaled, y_train)


# Make predictions.
y_pred = model.predict(X_test_scaled)


# Calculate and print errors.
r2 = r2_score(y_test, y_pred)
print(f"R-squared: {r2:.4f}")


mse = mean_squared_error(y_test, y_pred)
print(f"Mean squared error: {mse:.4f}")


rmse = mse ** 0.5
print(f"Root mean squared error: {rmse:.4f}")
R-squared: 0.5758
Mean squared error: 0.5559
Root mean squared error: 0.7456

Sonuçların yalnızca bir özellik kullanmaya kıyasla oldukça daha iyi olduğunu görüyoruz. Ancak bu, tüm özelliklere ihtiyacımız olup olmadığı sorusunu doğurur. Bazı özellikler diğerlerinden daha mı önemli? Veri kümesinden en ilgili özellikleri seçmeye özellik seçimi denir.

Özellik seçimi çeşitli nedenlerle önemlidir.

  • Aşırı uyumu azaltır. Daha az özellik, daha az karmaşıklık demektir; aşırı uyum riskini düşürür.
  • Doğruluğu artırır. Alakasız veya yinelenen özelliklerin kaldırılması, modelin anlamlı örüntülere odaklanmasına yardımcı olur.
  • Yorumlanabilirliği artırır. En önemli faktörleri öne çıkararak modelleri daha anlaşılır kılar.
  • Eğitimi hızlandırır. Özellik sayısını azaltmak hesaplama süresini ve bellek kullanımını düşürür.

Birden çok özellik yüksek derecede korelasyon gösterdiğinde, bunlar fazlalık içerir; yani modele özünde aynı bilgiyi sağlarlar. Bu duruma çoklu doğrusal bağlantı (multicollinearity) denir. Çoklu doğrusal bağlantı her zaman öngörücü modellerin doğruluğunu etkilemese de, özellikle doğrusal regresyon ve ilgili modellerde özellik seçimini ve yorumlamayı zorlaştırır.

Varyans Şişirme Faktörü (VIF), yordayıcılar arasındaki çoklu doğrusal bağlantıyı tespit etmek için kullanılan bir metriktir. Her bir yordayıcı için VIF şu şekilde hesaplanır: 

burada Ri2, Xi yordayıcısı modeldeki diğer tüm yordayıcılara karşı regresyona tabi tutulduğunda elde edilen R2 değeridir. Daha yüksek VIF, yordayıcının diğer değişkenlerle yüksek korelasyona sahip olduğunu gösterir.

  • VIF = 1: çoklu doğrusal bağlantı yok (ideal durum).
  • VIF < 5: düşük ila orta düzeyde çoklu doğrusal bağlantı (genelde kabul edilebilir).
  • VIF > 5: yüksek çoklu doğrusal bağlantı (ilişkili değişkenleri kaldırmayı veya birleştirmeyi düşünün).
  • VIF > 10: ciddi çoklu doğrusal bağlantı (değişken fazlalığına güçlü bir işaret).
# Import libraries.
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.datasets import fetch_california_housing
from statsmodels.stats.outliers_influence import variance_inflation_factor


# Load the dataset.
housing = fetch_california_housing()
X = pd.DataFrame(housing.data, columns=housing.feature_names)


# Compute the correlation matrix.
corr_matrix = X.corr()


# Identify pairs of features with high collinearity (correlation > 0.8 or < -0.8).
high_corr_features = [(col1, col2, corr_matrix.loc[col1, col2])
                     for col1 in corr_matrix.columns
                     for col2 in corr_matrix.columns
                     if col1 != col2 and abs(corr_matrix.loc[col1, col2]) > 0.8]


# Convert to a DataFrame for better visualization.
collinearity_df = pd.DataFrame(high_corr_features, columns=["Feature 1", "Feature 2", "Correlation"])
print("\nHighly Correlated Features:\n", collinearity_df)


# Compute Variance Inflation Factor (VIF) for each feature.
vif_data = pd.DataFrame()
vif_data["Feature"] = X.columns
vif_data["VIF"] = [variance_inflation_factor(X.values, i) for i in range(X.shape[1])]


# Print VIF values.
print("\nVariance Inflation Factor (VIF) for each feature:\n", vif_data)
   Highly Correlated Features:
       Feature 1  Feature 2  Correlation
   0   AveRooms  AveBedrms     0.847621
   1  AveBedrms   AveRooms     0.847621
   2   Latitude  Longitude    -0.924664
   3  Longitude   Latitude    -0.924664
  
   Variance Inflation Factor (VIF) for each feature:
          Feature         VIF
   0      MedInc   11.511140
   1    HouseAge    7.195917
   2    AveRooms   45.993601
   3   AveBedrms   43.590314
   4  Population    2.935745
   5    AveOccup    1.095243
   6    Latitude  559.874071
   7   Longitude  633.711654

AveBedrms değişkenini modelden çıkaralım.

# Import libraries.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score


# Load California housing dataset.
housing = fetch_california_housing()


# Create DataFrame and remove "AveBedrms" feature.
X = pd.DataFrame(housing.data, columns=housing.feature_names).drop(columns=["AveBedrms"])
y = housing.target  # Median house value in $100,000s


# Split data into training and testing sets.
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)


# Scale the data (Standardization).
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)


# Create a linear regression model and train it.
model = LinearRegression()
model.fit(X_train_scaled, y_train)


# Make predictions on the test set.
y_pred = model.predict(X_test_scaled)


# Calculate performance metrics.
r2 = r2_score(y_test, y_pred)
mse = mean_squared_error(y_test, y_pred)
rmse = np.sqrt(mse)
# Print evaluation metrics
print(f"R-squared: {r2:.4f}")
print(f"Mean squared error: {mse:.4f}")
print(f"Root mean squared error: {rmse:.4f}")
R-squared: 0.5823
Mean squared error: 0.5473
Root mean squared error: 0.7398

Sonuçlar (az da olsa) iyileşti.

Model İçgörülerini Çıkarmak

Bir regresyon modeli kurmak yalnızca ilk adımdır; çıktılarını anlamak da aynı derecede önemlidir. Modelin katsayılarını analiz ederek hangi özelliklerin tahminlerde en büyük etkiye sahip olduğunu belirleyebiliriz.

Regresyon katsayılarını anlamak

Bir doğrusal regresyon modeli eğitildiğinde, katsayılara model.coef_ ile erişilebilir. Kesişime ise model.intercept_ ile erişilir.

LinearRegression() kullanılarak bir doğrusal regresyon modeli eğitildiğinde, katsayılara model.coef_ ve kesişime model.intercept_ üzerinden erişilebilir.

print("Intercept:", model.intercept_)


coeff_df = pd.DataFrame({"Feature": X.columns, "Coefficient": model.coef_})
print("\nFeature Coefficients:\n", coeff_df)
   Intercept: 2.0719469373788777  

   Feature Coefficients:

         Feature  Coefficient

   0     MedInc     0.725747

   1   HouseAge     0.121519

   2   Latitude    -0.943105

   3  Longitude    -0.900735

Model sonuçlarını özetleme

Scikit-Learn, Statsmodels’daki gibi yerleşik bir summary() yöntemi sağlamadığından, her bir özelliğin önemini regresyon katsayılarıyla manuel olarak çıkarıp görselleştirebiliriz. Mutlak değeri daha büyük olan katsayılara sahip özellikler hedef değişken üzerinde daha güçlü bir etkiye sahiptir. Aşağıdaki koda bakın.

# Sort dataframe by coefficients.
coef_df_sorted = coef_df.sort_values(by="Coefficient", ascending=False)


# Create plot.
plt.figure(figsize=(8,6))
plt.barh(coef_df["Feature"], coef_df_sorted["Coefficient"], color="blue")
plt.xlabel("Coefficient Value")
plt.ylabel("Feature")
plt.title("Feature Importance (Linear Regression Coefficients)")
plt.show()

Feature importance (Linear Regression Coefficients)

Katsayı Değerlerine Göre Özellik Öneminin Grafiği

Şimdi artık artık artık artık

# Compute residuals.
residuals = y_test - y_pred


# Create plots.
plt.figure(figsize=(12,5))


# Plot 1: Residuals Distribution.
plt.subplot(1,2,1)
sns.histplot(residuals, bins=30, kde=True, color="blue")
plt.axvline(x=0, color='red', linestyle='--')
plt.title("Residuals Distribution")
plt.xlabel("Residuals (y_actual - y_predicted)")
plt.ylabel("Frequency")


# Plot 2: Regression Fit (Actual vs Predicted).
plt.subplot(1,2,2)
sns.scatterplot(x=y_test, y=y_pred, alpha=0.5)
plt.plot([min(y_test), max(y_test)], [min(y_test), max(y_test)], color='red', linestyle='--')  # Perfect fit line
plt.title("Regression Fit: Actual vs Predicted")
plt.xlabel("Actual Prices (in $100,000s)")
plt.ylabel("Predicted Prices (in $100,000s)")


# Show plots.
plt.tight_layout()
plt.show()

Residuals Distribution and Regression Fit

Artık Değerler ve Regresyon Uyumunu Görselleştirme Grafikleri

Artık değerlerin dağılımı (soldaki grafik) sıfırın etrafında merkezlenmiş olmalıdır; bu, hataların rastgele dağıldığını gösterir. Artık değerler normal dağılım gösteriyorsa model iyi uyum sağlar; ancak çarpıklık veya bir eğilim varsa sistematik hatalara işaret edebilir. Regresyon uyumu (sağdaki grafik) gerçek ve tahmini değerleri karşılaştırır; kırmızı kesikli çizgi mükemmel uyumu temsil eder. Noktalar çizgiyi yakından takip ediyorsa tahminler isabetlidir; ancak bir desen (ör. eğri) oluşuyorsa ilişki gerçekten doğrusal olmayabilir. 

Bu görselleştirmeler, aşırı uyum veya yetersiz uyumu teşhis etmeye, eksik ilişkileri düşündüren artık değer örüntülerini ortaya çıkarmaya ve modelin etkinliğini net biçimde değerlendirmeye yardımcı olur.

Gerçek Dünya Uygulamaları

Doğrusal regresyon, sektörler genelinde tahmin ve karar verme amacıyla yaygın olarak kullanılır. Gayrimenkulde, boyut ve konum gibi faktörlere göre konut fiyatlarını tahmin eder. 

Satış ve pazarlama, talep tahmini ve bütçe optimizasyonu için; sağlık sektörü ise hastalık risk değerlendirmesi için kullanır. Finansta hisse fiyatı tahmini ve kredi skorlama; üretimde ise kalite kontrolü ve arıza tahmini gibi görevlerde yardımcı olur. 

Doğrusal regresyon ne zaman kullanılmalı

  • Özellikler ile hedef değişken arasında doğrusal bir ilişki vardır.
  • Yorumlanabilirlik ve sadelik, karmaşık modellemeden daha önemlidir.
  • Veri, minimum özellik mühendisliği gerektirir.

Doğrusal regresyon ne zaman kullanılmamalı

Sonuç

Doğrusal regresyon, makine öğrenmesi ve istatistiksel modellemede en temel ve en yaygın kullanılan tekniklerden biri olmaya devam etmektedir. Basitliğine rağmen, değişkenler arasındaki ilişkileri anlamak ve çeşitli gerçek dünya uygulamalarında tahminler yapmak için güçlü bir araçtır.

Bu eğitimden çıkarılacak başlıca noktalar:

  • Çok yönlü uygulamalar. Doğrusal regresyon, birçok sektör ve problem alanında değerli içgörüler sağlar.
  • Yorumlanabilir.  Karmaşık kara kutu modellerin aksine, doğrusal regresyon katsayı temelli net yorumlar sunar; yorumlaması ve açıklaması kolaydır.
  • Özellik seçimi. Uygun özellik seçimi ve çoklu doğrusal bağlantının ele alınması, modellerin doğru, kararlı ve güvenilir kalmasını sağlar. 

Python’da string enterpolasyonu hakkında daha fazla bilgi için DataCamp’in kaynaklarına göz atın.

Linear Regression Sklearn SSS

Doğrusal regresyon nedir ve nasıl çalışır?

Doğrusal regresyon, bir hedef değişken ile bir veya daha fazla yordayıcı arasındaki ilişkiyi modellemek için kullanılan istatistiksel bir yöntemdir. En küçük kareler yöntemini kullanarak gerçek ve tahmini değerler arasındaki farkı en aza indiren en iyi uyum doğrusunu bulur.

Doğrusal regresyonun varsayımları nelerdir?

Doğrusal regresyon şu varsayımlara dayanır:

  • Doğrusallık: Yordayıcılarla hedef değişken arasındaki ilişki doğrusaldır.
  • Bağımsızlık: Gözlemler birbirinden bağımsızdır.
  • Homoskedastisite: Artık değerlerin varyansı tüm değerlere göre sabittir.
  • Artıkların normalliği: Artık değerler normal dağılım göstermelidir.
  • Çoklu doğrusal bağlantı yok: Bağımsız değişkenler yüksek derecede korelasyon göstermemelidir.

Bir doğrusal regresyon modelini eğitmeden önce neden özelliklerimi ölçeklemeliyim?

Özellik ölçekleme, tüm özelliklerin modele eşit ölçüde katkı yapmasını sağlar. Doğrusal regresyon özellik büyüklüklerine duyarlı olduğundan, ölçekleme büyük sayısal değerlere sahip değişkenlerin daha küçük olanları baskılamasını önler. Standardizasyon için StandardScaler() kullanın

Çoklu doğrusal bağlantı nedir ve nasıl tespit edebilirim?

Çoklu doğrusal bağlantı, iki veya daha fazla bağımsız değişkenin yüksek derecede korelasyon göstermesi durumudur; bu da katsayı yorumunu güvenilmez kılar. Varyans Şişirme Faktörü (VIF) kullanılarak tespit edilebilir.

Bir doğrusal regresyon modelini nasıl değerlendiririm?

Temel performans metrikleri şunlardır:

  • R² (Belirleme Katsayısı) → Modelin hedef değişkendeki varyansı ne kadar iyi açıkladığını ölçer.
  • MSE (Ortalama Kare Hata) → Gerçek ve tahmini değerler arasındaki ortalama karesel hatayı ölçer.
  • RMSE (Karekök Ortalama Kare Hata) → MSE’nin daha kolay yorumlanabilir bir sürümüdür.

Mark Pedigo's photo
Author
Mark Pedigo
LinkedIn

Mark Pedigo, PhD, sağlık verisi bilimi, programlama ve eğitim alanlarında uzmanlığa sahip seçkin bir veri bilimcisidir. Matematikte doktora, Bilgisayar Biliminde lisans ve Yapay Zekâ alanında Profesyonel Sertifika sahibi olan Mark, teknik bilgisini pratik problem çözme becerileriyle birleştirir. Kariyeri, dolandırıcılık tespiti, bebek ölümü tahmini ve finansal öngörü gibi rollerin yanı sıra NASA’nın maliyet tahmin yazılımına katkıları içerir. Bir eğitimci olarak DataCamp ve St. Louis’teki Washington University’de ders vermiş ve kıdemsiz programcılara mentorluk yapmıştır. Boş zamanlarında Mark, eşi Mandy ve köpeği Harley ile Minnesota’nın doğasında vakit geçirmeyi ve caz piyano çalmayı sever.

Konular

En İyi DataCamp Kursları

Program

Yardımcı Veri Bilimcisi Python'da

90 sa
Veri manipülasyonundan makine öğrenimine kadar Python'da veri bilimini öğrenin. Bu bölüm, bir veri bilimcisi olarak başarılı olmak için gereken becerileri sağlar!
Ayrıntıları GörRight Arrow
Kursa Başla
Devamını GörRight Arrow