Карантин действительно может действовать нам на нервы, особенно с таким количеством свободного времени и не на что особо рассчитывать. Но опять же, что может быть лучше для повышения квалификации и освоения новых областей знаний?

Машинное обучение сегодня широко используется во всем: от воспроизведения ваших любимых песен на YouTube, навигации по лучшим отелям и рекомендаций о «людях, которых вы можете знать» в Instagram до приложений для знакомств. Наверное, поэтому он очень востребован. Предсказывать будущее стало возможным только с появлением технологий машинного обучения.

Во-первых, давайте начнем с понимания широких категорий, на которые делится вся идея машинного обучения. Эти категории

  • Контролируемое обучение
  • Неконтролируемое обучение
  • Обучение с подкреплением

Теперь давайте сосредоточимся на нескольких алгоритмах контролируемого машинного обучения для начала!

Что такое контролируемое обучение?

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

Но что такое алгоритмы машинного обучения и зачем они нам нужны?

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

Прежде чем углубляться в различные алгоритмы, давайте сначала разберемся с фундаментальным процессом обучения любой модели машинного обучения. Теперь позвольте мне провести вас через этот процесс.

Включенные шаги:

  1. Импорт необходимых библиотек, методов и пакетов.

Вместо того, чтобы писать один и тот же код алгоритма снова и снова, python предоставляет нам набор предварительно записанных библиотек. Библиотека, которая в первую очередь важна для импорта методов, выполняющих алгоритм, - это библиотека scikit-learn. В дополнение к этому существуют другие библиотеки, такие как numpy (числовой питон) и pandas, основная роль которых заключается в работе с большими наборами данных и выполнении сложных вычислений более удобным, быстрым и простым способом.

2. Чтение данных из соответствующих файлов.

Каждый раз, когда нам нужно создать модель, нам нужен набор данных. К сожалению, эти данные не всегда имеют одинаковый формат. У нас могут быть таблицы, изображения, видео и т. Д., И из-за этого возникает необходимость преобразовать все это в определенный формат, который может быть прочитан специальной библиотекой, называемой библиотекой pandas. Как только эти наборы данных имеют требуемый формат, эти данные должны быть сначала загружены во фрейм данных, чтобы библиотека pandas выполняла необходимые функции.

3. Очистка данных:

Цель очистки данных - попытаться убедиться, что каждое значение в нашем наборе данных является числовым по своей природе и что в наборе данных нет нулевых, неточных или неопределенных значений. Причина этого в том, что библиотека, которую мы используем для реализации алгоритмов (scikit learn), распознает только числовые значения.

4. Стандартизация значений данных:

Чтобы получить точные результаты от модели и сделать процесс более быстрым и эффективным, всегда рекомендуется масштабировать данные таким образом, чтобы все они попадали в заданный ограниченный диапазон.

5. Разделение данных на наборы данных для обучения и тестирования

Чтобы убедиться, что мы можем оценить нашу модель после ее обучения, необходимо, чтобы мы разделили набор данных для той же цели.

Одним из очень важных мотивов разделения набора данных является то, что, если мы в конечном итоге будем использовать весь набор данных, модель будет обучаться в точности в соответствии с набором данных, и она не сможет делать правильные прогнозы для новых данных. Это называется переобучением, и это нежелательно.

С другой стороны, если мы будем использовать меньше данных, будут предсказаны неточные результаты из-за отсутствия адекватных значений.

Мы должны разделить тест и обучить его в правильной пропорции, чтобы получить идеальную модель. Это делается с помощью метода train_test_split из библиотеки sklearn.

6. Применение алгоритма с использованием методов, импортированных из библиотеки scikit learn.

Алгоритмы машинного обучения либо реализуются с использованием собственного алгоритма обучения с использованием математики и логики каждого алгоритма, либо они могут быть реализованы путем импорта правильных моделей из хороших библиотек, таких как scikit learn и TensorFlow.

7. Оценка вашего алгоритма.

Проверяя нашу модель с помощью набора тестов, мы можем понять правильность нашего алгоритма. Оценка модели обычно выполняется либо путем построения графиков и сравнения результатов, либо путем определения точности, точности и матрицы неточностей алгоритма. Матрица путаницы - это, по сути, измерение производительности для классификации машинного обучения.

Большой! Поскольку мы поняли, как работают алгоритмы машинного обучения, теперь мы готовы рассмотреть несколько популярных алгоритмов контролируемого обучения.

Мы рассмотрим три алгоритма:

  1. Линейная регрессия
  2. Логистическая регрессия
  3. Алгоритм K ближайших соседей

Линейная регрессия

Линейная регрессия находит линейную связь между зависимой переменной и одной или несколькими независимыми переменными с использованием прямой линии, которая наиболее точно соответствует всем точкам данных. Когда независимая переменная - только одна, тогда линейная регрессия известна как линейная регрессия одной переменной, а когда независимых переменных больше одной, тогда регрессия известна как линейная регрессия с несколькими переменными.

Как правило, модель линейной регрессии делает прогноз, просто вычисляя взвешенную сумму входных характеристик плюс константу, называемую членом перехвата.

Линия построена на основе двух концепций. Один из них - метод наименьших квадратов, который строит регрессор таким образом, чтобы квадраты расстояний от разных точек данных до линии в сумме были наименьшими. Второй - это градиент, метод оптимизации, используемый для настройки коэффициента и смещения линейного уравнения.

Коэффициент по существу означает вклад входных переменных в определение наиболее подходящей линии. С другой стороны, смещение - это отклонение, вызванное линейным уравнением y = mx для наших прогнозов.

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

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

Это снимок первых 10 строк всего набора данных, над которым мы будем работать.

Прогнозируемая переменная - это столбец «Виды». Мы используем библиотеку scikit learn, чтобы применить наш алгоритм линейной регрессии. Делая это, мы понимаем зависимость зависимой переменной, т. Е. Столбца «Виды», от всех независимых переменных. Во-первых, мы должны убедиться, что каждый столбец имеет числовые значения, а не строковые значения. Этот процесс называется очисткой данных.

Значение всех столбцов, кроме первого столбца и всех строк, присваивается переменной x. Первый столбец со всеми строками будет присвоен y. Мы назначаем определенные столбцы переменным следующим образом: -

Затем общий набор данных делится на тестовый и обучающий. Мы используем метод train_test_split, который мы импортируем из библиотеки scikit learn и указываем требуемую долю в атрибуте test_size.

Затем мы применяем алгоритм линейной регрессии, который мы также импортируем из библиотеки scikit learn. Алгоритм применяется следующим образом: -

После применения алгоритма мы получаем набор коэффициентов, равный количеству независимых переменных, а также точку пересечения линии, описывающей зависимости отдельных переменных. В этом случае значения следующие: -

Линия может быть проведена с помощью сгенерированных коэффициентов и точки пересечения, и это будет наша линия регрессии. Оценить нашу модель можно, нарисовав гистограмму следующим образом: -

Логистическая регрессия

Логистическую регрессию можно в основном рассматривать как частный случай линейной регрессии. В линейной регрессии целевая переменная является непрерывной по своей природе и в качестве зависимой переменной используется логарифм шансов. Однако логистическая регрессия предсказывает вероятность возникновения двоичного события с использованием логической функции. Эта логическая функция называется сигмоидной функцией.

Функция активации - это функция, которая играет важную роль в достижении желаемых результатов, манипулируя значениями. Активация сигмовидной кишки также называется логистической активацией. Его основная задача - сжимать выходные значения в диапазоне от 0 до 1.

Чтобы лучше понять эту концепцию, давайте рассмотрим пример. Давайте рассмотрим набор данных ниже, который дает такую ​​информацию, как пол, семейное положение, доход и т. Д. Различных клиентов. Используя предоставленные данные, мы должны предсказать, купит ли конкретный покупатель дом или нет.

Ниже приведены первые 10 строк набора данных, о которых мы будем говорить в течение следующих нескольких минут.

Чтобы очистить данные, мы сначала удаляем столбец «Obs No.», поскольку он не играет роли при принятии решения о том, купит ли конкретный клиент дом или нет. Затем мы, как обычно, ищем наличие нулевых значений и затем соответственно удаляем их (очистка данных). Поскольку весь набор данных имеет числовые значения, нет необходимости вносить какие-либо изменения типа данных в набор данных.

Затем мы присваиваем переменным соответствующие столбцы.

После этого мы разделяем данные на обучающий и тестовый набор. Этот метод необходим, чтобы иметь возможность использовать определенную часть данных для оценки модели, которую мы обучаем. Здесь мы использовали метод под названием train_test_split из модуля sklearn.model_selection, который выполняет эту функцию за нас.

Затем мы применяем алгоритм логистической регрессии, который мы импортируем из библиотеки scikit learn, как показано ниже:

Наконец, мы оцениваем модель, проверяя ее точность, точность и отзывчивость.

Здесь мы печатаем кривую ROC, чтобы понять и оценить алгоритм. Кривые ROC в логистической регрессии используются для определения наилучшего значения отсечения для прогнозирования того, является ли новое наблюдение «неудачей» (0) или «успехом» (1).

Алгоритм KNN

KNN расшифровывается как K-Nearest Neighbours. Он подпадает под контролируемый алгоритм машинного обучения, который можно использовать как для классификации, так и для регрессии. Это просто и легко реализовать на реальных наборах данных. В KNN K - количество ближайших соседей. Решающим фактором является количество соседей. K обычно является нечетным числом, если количество классов равно 2. Когда K = 1, алгоритм известен как алгоритм ближайшего соседа.

Мы можем лучше понять этот алгоритм на примере, как и предыдущие алгоритмы. Рассмотрим набор данных, приведенный ниже: -

Первые 10 строк набора данных выглядят следующим образом: -

Затем мы назначаем столбцы каждой из переменных: -

Затем данные должны быть разделены на набор данных для обучения и тестирования, а затем все значения должны быть масштабированы до приличного диапазона, как мы это делали с предыдущими алгоритмами. В этом наборе данных не требуется никакой специальной очистки, поскольку все значения сами по себе являются числовыми. Разделение и масштабирование данных выполняется следующим образом: -

Затем алгоритм применяется следующим образом с использованием требуемого метода из библиотеки scikit learn: -

Затем тестовый набор и составы поездов наносятся на карту и сравниваются. Получаем следующие два графика: -

Графики кажутся почти одинаковыми, что является отличным знаком. Также можно сформулировать точность модели. Мы видим, что точность исключительная, и, следовательно, значение k, которое мы взяли, оказалось правильным. Распечатываем точность следующим образом: -

Заключение

На этом мы подошли к концу основ машинного обучения. Тот же процесс может быть реализован для нескольких наборов данных, которые либо похожи, либо отличаются от наборов данных, используемых в приведенных выше примерах. Существуют различные другие алгоритмы, относящиеся к машинному обучению, и я надеюсь, что эта статья послужила прочной основой для начала вашего путешествия в той же области!