Линейная регрессия используется для нахождения линейной зависимости между целью и одним или несколькими предикторами.

Основная идея состоит в том, чтобы получить линию, которая наилучшим образом соответствует данным. Линия наилучшего соответствия — это та, для которой общая ошибка прогноза (все точки данных) как можно меньше. Ошибка – это расстояние между точкой и линией регрессии.

Уравнение линии, Y=WX+B.

Ниже приведены шаги для реализации линейной регрессии в Python.

1.) Установите библиотеку tensorflow и matplotlib на свой компьютер и импортируйте ее в файл программы.

импортировать matplotlib.pyplot как plt

импортировать тензорный поток как tf

2.) Определите две переменные и два заполнителя (будут переданы во время выполнения)

w=tf.Variable([.3],tf.float32)

b=tf.Variable([-.3],tf.float32)

x=tf.placeholder(tf.float32)

y=tf.placeholder(tf.float32)

3.) Ниже код строки найдет общую потерю в линейной регрессии и с помощью функции tf.reduce_sum уменьшит общую ошибку в данной модели.

sq_delta=tf.square(l_model-y)

потеря=tf.reduce_sum(sq_delta)

4.) Во-первых, он инициализирует глобальную переменную и обучает модель с использованием метода градиентного спуска. На этом этапе мы фактически находим оптимальное значение для W и B. Мы используем подход машинного обучения, чтобы найти значение W и B.

init=tf.global_variables_initializer()

optimizer=tf.train.GradientDescentOptimizer(0,01)

train =optimizer.minimize(loss)

5.) Создайте сеанс для хранения значения тензора.

sess=tf.Session()

sess.run(инициализация)

6.) Ниже приведен код для обучения регрессионной модели с фактическим значением X и Y.

для i в диапазоне (100):

sess.run(train,{x:[1,3,5,7],y:[0,1,2,3]})

7.) Нижеприведенный код будет предсказывать значение Y на основе X с помощью обученной модели, которую мы создали на шаге № 6.

print(sess.run(l_model,{x:[1,3,5,6]}))

Ниже приведен полный код и его вывод.

импортировать matplotlib.pyplot как plt

импортировать тензорный поток как tf

w=tf.Variable([.3],tf.float32)

b=tf.Variable([-.3],tf.float32)

х = tf.placeholder (tf.float32)

l_model=w*x+b

y = tf.placeholder (tf.float32)

sq_delta = tf.square (l_model-y)

потеря = tf.reduce_sum (sq_delta)

init=tf.global_variables_initializer()

оптимизатор = tf.train.GradientDescentOptimizer (0,01)

поезд =оптимизатор.минимизировать(потери)

сессия=tf.Session()

sess.run(инициализация)

для i в диапазоне (100):

sess.run(поезд,{x:[1,3,5,7],y:[0,1,2,3]})

печать (sess.run (l_model, {x: [1,3,5,6]}))

Вывод