TensorFlow - Doğrusal Regresyon

Bu bölümde, TensorFlow kullanarak doğrusal regresyon uygulamasının temel örneğine odaklanacağız. Lojistik regresyon veya doğrusal regresyon, ayrı ayrı kategorilerin sınıflandırılması için denetlenen bir makine öğrenimi yaklaşımıdır. Bu bölümdeki amacımız, bir kullanıcının tahmin değişkenleri ile bir veya daha fazla bağımsız değişken arasındaki ilişkiyi tahmin edebileceği bir model oluşturmaktır.

Bu iki değişken arasındaki ilişki doğrusal olarak kabul edilir. Y bağımlı değişkense ve x bağımsız değişken olarak kabul edilirse, iki değişkenin doğrusal regresyon ilişkisi aşağıdaki denklem gibi görünecektir -

Y = Ax+b

Doğrusal regresyon için bir algoritma tasarlayacağız. Bu, aşağıdaki iki önemli kavramı anlamamızı sağlayacaktır:

  • Maliyet fonksiyonu
  • Gradyan iniş algoritmaları

Doğrusal regresyonun şematik gösterimi aşağıda belirtilmiştir -

Doğrusal regresyon denkleminin grafik görünümü aşağıda belirtilmiştir -

Doğrusal regresyon için bir algoritma tasarlama adımları

Şimdi doğrusal regresyon için bir algoritma tasarlamaya yardımcı olan adımları öğreneceğiz.

Aşama 1

Doğrusal regresyon modülünü çizmek için gerekli modülleri içe aktarmak önemlidir. Python kütüphanesi NumPy ve Matplotlib'i içe aktarmaya başlıyoruz.

import numpy as np 
import matplotlib.pyplot as plt

Adım 2

Lojistik regresyon için gerekli katsayı sayısını tanımlayın.

number_of_points = 500 
x_point = [] 
y_point = [] 
a = 0.22 
b = 0.78

Aşama 3

Regresyon denklemi etrafında 300 rastgele nokta oluşturmak için değişkenleri yineleyin -

Y = 0,22x + 0,78

for i in range(number_of_points): 
   x = np.random.normal(0.0,0.5) 
   y = a*x + b +np.random.normal(0.0,0.1) x_point.append([x]) 
   y_point.append([y])

4. adım

Matplotlib kullanarak oluşturulan noktaları görüntüleyin.

fplt.plot(x_point,y_point, 'o', label = 'Input Data') plt.legend() plt.show()

Lojistik regresyon için tam kod aşağıdaki gibidir -

import numpy as np 
import matplotlib.pyplot as plt 

number_of_points = 500 
x_point = [] 
y_point = [] 
a = 0.22 
b = 0.78 

for i in range(number_of_points): 
   x = np.random.normal(0.0,0.5) 
   y = a*x + b +np.random.normal(0.0,0.1) x_point.append([x]) 
   y_point.append([y]) 
   
plt.plot(x_point,y_point, 'o', label = 'Input Data') plt.legend() 
plt.show()

Girdi olarak alınan noktaların sayısı girdi verisi olarak kabul edilir.