Линейная регрессия используется для нахождения линейной зависимости между целью и одним или несколькими предикторами.
Основная идея состоит в том, чтобы получить линию, которая наилучшим образом соответствует данным. Линия наилучшего соответствия — это та, для которой общая ошибка прогноза (все точки данных) как можно меньше. Ошибка – это расстояние между точкой и линией регрессии.
Уравнение линии, 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]}))
Вывод