Учебники

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

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