Scikit-learn modelinden regresyon katsayıları nasıl çıkarılır?


Python’da scikit-learn ile oluşturulmuş bir regresyon modelinden regresyon katsayılarını çıkarmak için aşağıdaki temel sözdizimini kullanabilirsiniz:

 p.d. DataFrame ( zip ( X.columns , model.coef_ ))

Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.

Örnek: Scikit-Learn modelinden regresyon katsayılarının çıkarılması

Bir sınıftaki 11 öğrencinin aldığı ders saati, girdiği hazırlık sınavı sayısı ve final sınavı notu hakkında bilgi içeren aşağıdaki panda DataFrame’e sahip olduğumuzu varsayalım:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' hours ': [1, 2, 2, 4, 2, 1, 5, 4, 2, 4, 4],
                   ' exams ': [1, 3, 3, 5, 2, 2, 1, 1, 0, 3, 4],
                   ' score ': [76, 78, 85, 88, 72, 69, 94, 94, 88, 92, 90]})

#view DataFrame
print (df)

    hours exam score
0 1 1 76
1 2 3 78
2 2 3 85
3 4 5 88
4 2 2 72
5 1 2 69
6 5 1 94
7 4 1 94
8 2 0 88
9 4 3 92
10 4 4 90

Tahmin edici değişkenler olarak saatleri ve sınavları ve yanıt değişkeni olarak puanı kullanan çoklu doğrusal regresyon modelini uydurmak için aşağıdaki kodu kullanabiliriz:

 from sklearn. linear_model import LinearRegression

#initiate linear regression model
model = LinearRegression()

#define predictor and response variables
x, y = df[[' hours ', ' exams ']], df. score

#fit regression model
model. fit (x,y)

Daha sonra saatlerin ve sınavların regresyon katsayılarını çıkarmak için aşağıdaki sözdizimini kullanabiliriz:

 #print regression coefficients
p.d. DataFrame ( zip ( X.columns , model.coef_ ))

            0 1
0 hours 5.794521
1 exams -1.157647

Sonuçtan modeldeki iki yordayıcı değişkenin regresyon katsayılarını görebiliriz:

  • Saat katsayısı : 5.794521
  • Sınav katsayısı : -1.157647

İstersek regresyon modelinden orijinal değeri çıkarmak için aşağıdaki sözdizimini de kullanabiliriz:

 #print intercept value
print (model. intercept_ )

70.48282057040197

Bu değerlerin her birini kullanarak uygun regresyon modelinin denklemini yazabiliriz:

Puan = 70.483 + 5.795 (saat) – 1.158 (sınavlar)

Daha sonra bu denklemi, ders çalışmak için harcanan saat ve alınan deneme sınavlarının sayısına bağlı olarak bir öğrencinin final sınavı notunu tahmin etmek için kullanabiliriz.

Örneğin 3 saat ders çalışıp 2 hazırlık sınavına giren bir öğrencinin final notunun 85,55 olması gerekir:

  • Puan = 70.483 + 5.795 (saat) – 1.158 (sınavlar)
  • Puan = 70,483 + 5,795(3) – 1,158(2)
  • Puan = 85.55

İlgili: Regresyon Katsayıları Nasıl Yorumlanır?

Ek kaynaklar

Aşağıdaki eğitimlerde Python’da diğer yaygın işlemlerin nasıl gerçekleştirileceği açıklanmaktadır:

Python’da basit doğrusal regresyon nasıl gerçekleştirilir
Python’da çoklu doğrusal regresyon nasıl gerçekleştirilir
Python’da regresyon modellerinin AIC’si nasıl hesaplanır

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir