Введение:
Сегодня мы воспитываем наши руки с нашими первыми алгоритмами машинного обучения! Хотя мы начинаем простые, эти алгоритмы все еще очень полезны и могут быть использованы в качестве базовой линии для измерения более поздних алгоритмов обучения машины, которые мы охватываем – для обеспечения ведения алгоритма, как мы ожидаем.
Интуиция:
Часто, когда у нас есть набор точек данных в науке, мы хотим нарисовать прямую линию наилучшего в соответствие с точками (см. Рисунок выше). Линейная регрессия включает в себя изучение этой прямой линии наилучшего соответствия, только с большим количеством измерений – вместо осей
В линейной регрессии мы используем эту прямую линию наилучшей посадки и значения для
Теперь вместо реального выхода числа предположим, что мы хотели классифицировать этот вклад как один из двух классов E.g. Мошеннические VS не мошеннические данные кредитных карт. Логистическая регрессия Включает в себя принятие этого вывода и применение функции решения для этого – мы в конечном итоге с вероятностью – если рядом с 1 входным является одним классом, а если ближе к 0 вход – это другой класс. Мы можем думать об этой вероятности, как «доверие» алгоритма.
Сторона Примечание: Имя логистической регрессии – это немного запутанная, так как это алгоритм классификации, однако это связано с тем, что термин регрессия в контексте машинного обучения отличается от регрессии в статистической математике. Для наших целей мы будем использовать определение в первом посте в блоге серии – реального выхода.
Математика:
Уравнение для линейной регрессии естественным образом распространяется от уравнения прямой линии:
Так же, как
Другим способом мышления в установке линии наилучшего соответствия является как проецирование исходных точек данных
Так что уравнение для линейной регрессии:
Для логистической регрессии мы применяем Сигмоид Функция
Обозначение:
Одна конвенция мы будем следовать за
Матрицы
Мы также представляем наши операции как матричные мультипликации, поскольку она является уборщиком для экспресса, а также более эффективной при реализации по сравнению с A для петли по ценностям.
Итак, здесь мы храним наш вход в n х м матрица
В общем, если у нас есть уравнение формы
(Здесь у нас есть
Код:
Мы будем писать фрагменты кода в Питон И мы используем Numpy (Библиотека линейной алгебры) для выполнения математических операций.
Наша мотивация проблема для линейной регрессии – Бостонские цены на жилье набор данных, а для логистической регрессии Рак молочной железы DataSet (классифицирующая опухоль как доброкачественная/злокачественная). Смотрите Jupyter ноутбук увидеть входную предварительную обработку.
Намерение в блогах состоит в том, чтобы выделить соответствующие части кода – ноутбук, сопровождающий сообщение в блоге, может использоваться для просмотра остальной части кода и реализовать алгоритм по конкретной проблеме для консолидации.
Со всеми, что сказано, давайте погрузимся в код – Обратите внимание, как np.dot используется для умножения матрицы.
import numpy as np #we use numpy to do the maths operations #_lin refers to linear regression, _log for logistic regression #similarly _train for training set, _test for test set. #initialise weights and bias to random values # we'll get to training them in the next blog post. W_lin = np.random.randn(Y_lin_train.shape[0], X_lin_train.shape[0]) #1xm matrix b_lin = np.random.randn(Y_lin_train.shape[0],1) #1x1 matrix W_log = np.random.randn(Y_log_train.shape[0], X_log_train.shape[0])#1xm matrix b_log = np.random.randn(Y_log_train.shape[0],1)) #1x1 matrix #Linear Regression def forward_lin(X, W, b): return np.dot(W,X)+b def sigmoid(z): return 1.0/(1+np.exp(-z)) #Logistic regression def forward_log(X,W,b): return sigmoid(forward_lin(X,W,b))
Вывод:
На данный момент вы, вероятно, думаете: «Отлично! Но это просто математика, где это обучение? ». Держите крепко, потому что в следующем блоге пост мы будем делать только это! Мы посмотрю на то, насколько именно большинство алгоритмов обучения машин даже «учим», и как мы оцениваем их производительность.
Оригинал: “https://dev.to/mukulrathi_/linear-and-logistic-regression-3c9h”