Что такое линейная регрессия?

«Линейная регрессия — это линейная модель, т.е. модель, которая предполагает линейную зависимость между входными переменными (x) и единственной выходной переменной (y). Более конкретно, что y можно рассчитать из линейной комбинации входных переменных (x)».

Значит ли это, что Y=2X+3 является линейным уравнением? Согласно определению, для каждого заданного значения X этого уравнения должно быть достаточно для вычисления Y.

Давайте попробуем с некоторыми значениями X,
X=1. =› Y = 5
X=2. =› Y = 7
X=3. =› Y = 9
Вы видите здесь закономерность?

Попробуем еще один,
{x: 0, y: 9}, {x: 1, y: 15}, {x: 2, y: 21}, {x: 3, y: 27}, { x: 4, y: 33}, {x: 5, y: 39}, {x: 6, y: 45}
Какой здесь узор? Посмотрите, выполняется ли Y = (2X+3)*3 для всех заданных значений X.

В этой статье давайте рассмотрим, можно ли использовать TensorflowJS для обучения модели изучению шаблона с заданными значениями X и Y.

Давайте начнем с генерации 400 входных значений с выходными значениями, удовлетворяющими уравнению, которое мы намереваемся решить. Проверьте это, построив линейный график с осями X и Y. Это должно выглядеть примерно так. это означает, что для каждого значения X существует Y, удовлетворяющий уравнению Y = (2X+3)*3

давайте инициируем модель.

const model = tf.sequential();

// Добавляем один входной слой

model.add(tf.layers.dense({ inputShape: [1], unit: 1, useBias: true }));

model.add(tf.layers.dense({ единиц: 50, активация: ‘sigmoid’ }));

// Добавляем выходной слой

model.add(tf.layers.dense({unit: 1, useBias: true}));

Это определение модели означает входную форму как [1], что означает, что модель ожидает получить тензор формы 1, который является нашим значением X, а последний слой модели также имеет выходную форму 1, что означает, что он также будет выводить одно целое число, т.е. Д

Давайте посмотрим на наш прогресс в обучении

При 50 эпохах, то есть 50 раундах обучения, модель, по-видимому, также имеет очень низкое значение потерь и среднеквадратичную ошибку. Эта модель с 400 входными значениями имеет очень высокую точность. давайте попробуем предсказать определенные значения Y, используя модель.

Поскольку исходные значения и прогнозируемые значения перекрывают друг друга, кажется, что модель поняла уравнение и может быть использована для решения для любого X, и мы должны получить значение Y, удовлетворяющее уравнению.

Давайте посмотрим, как это изменится при меньшем количестве входных обучающих данных.
здесь мы предоставляем 150 значений X

Не похоже, чтобы модель была точной. Дополнительные обучающие данные могут помочь.

Давайте теперь дадим около 1000 тренировочных данных и посмотрим, изменит ли это что-нибудь.

Вау, потери с 1000 вводов почти 0, кажется точность почти 100%. Следовательно, перекрывающиеся оранжевые и синие линии, показывающие все значения Y, предсказанные с помощью модели, в точности равны исходным значениям.

Надеюсь, это было полезно. Пожалуйста, оставьте комментарий, если вам нужно техническое объяснение кода этого примера.

А до тех пор попробуйте использовать эту живую демонстрацию
https://sawanmsis.github.io/purple2/tfjs/

Спасибо за чтение. хорошо впереди.