TensorFlow - линейная регрессия

В этой главе мы сосредоточимся на базовом примере реализации линейной регрессии с использованием TensorFlow. Логистическая регрессия или линейная регрессия - это контролируемый подход машинного обучения для классификации дискретных категорий порядка. Наша цель в этой главе - построить модель, с помощью которой пользователь может предсказать взаимосвязь между переменными-предикторами и одной или несколькими независимыми переменными.

Связь между этими двумя переменными считается линейной. Если y является зависимой переменной, а x рассматривается как независимая переменная, то соотношение линейной регрессии двух переменных будет выглядеть следующим образом:

Y = Ax+b

Мы разработаем алгоритм линейной регрессии. Это позволит нам понять следующие две важные концепции -

  • Функция стоимости
  • Алгоритмы градиентного спуска

Схематическое изображение линейной регрессии упомянуто ниже -

Графический вид уравнения линейной регрессии упомянут ниже -

Шаги по разработке алгоритма линейной регрессии

Теперь мы узнаем о шагах, которые помогают в разработке алгоритма линейной регрессии.

Шаг 1

Важно импортировать необходимые модули для построения модуля линейной регрессии. Начинаем импортировать библиотеки Python NumPy и Matplotlib.

import numpy as np 
import matplotlib.pyplot as plt

Шаг 2

Определите количество коэффициентов, необходимых для логистической регрессии.

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

Шаг 3

Итерируйте переменные для генерации 300 случайных точек по уравнению регрессии -

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

Просмотрите сгенерированные точки с помощью Matplotlib.

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

Полный код для логистической регрессии выглядит следующим образом:

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()

Количество точек, принимаемых в качестве входных данных, считается входными данными.