Несомненно, машинное обучение - самая востребованная технология на современном рынке. Его приложения варьируются от беспилотных автомобилей до прогнозирования смертельных заболеваний, таких как БАС. Мотивацией для написания этой статьи стал высокий спрос на навыки машинного обучения. В этой статье вы поймете все основные концепции машинного обучения и практическую реализацию машинного обучения с использованием языка R.

В этой статье рассматриваются следующие темы:

  1. Потребность в машинном обучении
  2. Что такое машинное обучение?
  3. Определения машинного обучения
  4. Машинное обучение
  5. Типы машинного обучения
  6. Типы задач, решаемых с помощью машинного обучения
  7. Практическая реализация машинного обучения

Потребность в машинном обучении

Со времен технической революции мы генерируем неизмеримое количество данных. Согласно исследованиям, мы генерируем около 2,5 квинтиллионов байтов данных каждый день! По оценкам, к 2020 году для каждого человека на Земле каждую секунду будет создаваться 1,7 МБ данных.

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

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

Вот список причин, по которым машинное обучение так важно:

  • Увеличение объема генерации данных: из-за чрезмерного производства данных нам нужен метод, который можно использовать для структурирования, анализа и извлечения полезной информации из данных. Здесь на помощь приходит машинное обучение. Оно использует данные для решения проблем и поиска решений самых сложных задач, с которыми сталкиваются организации.
  • Улучшение процесса принятия решений. Используя различные алгоритмы, машинное обучение можно использовать для принятия более эффективных бизнес-решений. Например, машинное обучение используется для прогнозирования продаж, прогнозирования падений на фондовом рынке, выявления рисков и аномалий и т. Д.

  • Выявление закономерностей и тенденций в данных. Поиск скрытых закономерностей и извлечение ключевых идей из данных - наиболее важная часть машинного обучения. Создавая прогнозные модели и используя статистические методы, машинное обучение позволяет вам копать под поверхностью и исследовать данные в минутном масштабе. На понимание данных и извлечение шаблонов вручную уйдут дни, тогда как алгоритмы машинного обучения могут выполнять такие вычисления менее чем за секунду.
  • Решение сложных проблем: от обнаружения генов, связанных со смертельным заболеванием БАС, до создания беспилотных автомобилей, машинное обучение можно использовать для решения самых сложных проблем.

Чтобы лучше понять, насколько важно машинное обучение, давайте перечислим несколько приложений машинного обучения:

  • Система рекомендаций Netflix: Ядро Netflix - это печально известная система рекомендаций. Netflix рекомендует более 75% того, что вы смотрите, и эти рекомендации сделаны путем внедрения машинного обучения.
  • Функция автоматической пометки Facebook. Логика системы проверки лиц DeepMind в Facebook - это машинное обучение и нейронные сети. DeepMind изучает черты лица на изображении, чтобы отметить ваших друзей и семью.
  • Alexa от Amazon: печально известная Alexa, основанная на обработке естественного языка и машинном обучении, представляет собой виртуальный помощник продвинутого уровня, который не просто воспроизводит песни в вашем плейлисте. Он может бронировать вам Uber, подключаться к другим устройствам IoT дома, отслеживать ваше здоровье и т. Д.
  • Спам-фильтр Google. Gmail использует машинное обучение для фильтрации спам-сообщений. Он использует алгоритмы машинного обучения и обработку естественного языка для анализа электронных писем в режиме реального времени и классификации их как спама или не-спама.

Теперь, когда вы знаете, почему машинное обучение так важно, давайте посмотрим, что такое машинное обучение.

Введение в машинное обучение

Термин «машинное обучение» впервые был введен Артуром Самуэлем в 1959 году. Оглядываясь назад, можно сказать, что этот год был, вероятно, самым значительным с точки зрения технологических достижений.

Если вы просмотрите Интернет о том, «что такое машинное обучение», вы найдете как минимум 100 различных определений. Однако самое первое формальное определение дал Том М. Митчелл:

«Считается, что компьютерная программа учится на опыте E в отношении некоторого класса задач T и показателя производительности P, если ее производительность при выполнении задач в T, измеренная с помощью P, улучшается с опытом E.»

Проще говоря, машинное обучение - это подмножество искусственного интеллекта (ИИ), которое дает машинам возможность учиться автоматически и совершенствоваться на основе опыта, не будучи явно запрограммированными на это. В некотором смысле, это практика заставлять Машины решать проблемы, обретая способность думать.

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

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

Определения машинного обучения

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

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

Переменная-предиктор: это функция (и) данных, которая может использоваться для прогнозирования выходных данных.

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

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

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

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

Следующая тема в этом блоге «Введение в машинное обучение» - это процесс машинного обучения.

Машинное обучение

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

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

В процессе машинного обучения выполняются следующие шаги:

Шаг 1. Определите цель изложения проблемы.

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

Шаг 2: сбор данных

На этом этапе вы должны задавать такие вопросы, как,

  • Какие данные нужны для решения этой проблемы?
  • Доступны ли данные?
  • Как я могу получить данные?

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

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

Шаг 3: подготовка данных

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

Шаг 4. Исследовательский анализ данных

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

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

Шаг 5. Создание модели машинного обучения

Все идеи и шаблоны, полученные в ходе исследования данных, используются для построения модели машинного обучения. Этот этап всегда начинается с разделения набора данных на две части: данные обучения и данные тестирования. Данные обучения будут использоваться для построения и анализа модели. Логика модели основана на реализуемом алгоритме машинного обучения.

В случае прогнозирования дождя, поскольку результат будет в форме True (если завтра будет дождь) или False (завтра не будет дождя), мы можем использовать алгоритм классификации, такой как логистическая регрессия.

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

Шаг 6. Оценка и оптимизация модели

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

Шаг 7. Прогнозы

После того, как модель оценена и улучшена, она, наконец, используется для прогнозов. Конечный результат может быть категориальной переменной (например, True или False) или непрерывным количеством (например, прогнозируемой стоимостью акции).

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

Таков был весь процесс машинного обучения. Пришло время узнать о различных способах обучения машин.

Типы машинного обучения

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

  1. Контролируемое обучение
  2. Неконтролируемое обучение
  3. Обучение с подкреплением

Контролируемое обучение

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

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

Обратите внимание на приведенный выше рисунок. Здесь мы загружаем машинные изображения Тома и Джерри, и цель состоит в том, чтобы машина идентифицировала и классифицировала изображения на две группы (изображения Тома и изображения Джерри). Набор обучающих данных, который передается в модель, помечен, как мы говорим машине: «Вот как выглядит Том, а это Джерри». Таким образом вы тренируете машину, используя размеченные данные. В контролируемом обучении есть четко определенная фаза обучения, выполняемая с помощью помеченных данных.

Неконтролируемое обучение

Обучение без учителя включает обучение с использованием немаркированных данных и позволяет модели действовать на основе этой информации без руководства.

Думайте об обучении без учителя как об умном ребенке, который учится без всякого руководства. В этом типе машинного обучения модель не снабжается помеченными данными, так как в модели нет подсказки, что «это изображение - Том, а это Джерри», она самостоятельно определяет закономерности и различия между Томом и Джерри. принимая тонны данных.

Например, он определяет характерные черты Тома, такие как заостренные уши, больший размер и т. Д., Чтобы понять, что это изображение относится к типу 1. Точно так же он находит такие особенности у Джерри и знает, что это изображение типа 2. Следовательно, оно классифицирует изображения на два разных класса, не зная, кто такой Том или Джерри.

Обучение с подкреплением

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

Этот тип машинного обучения сравнительно отличается. Представьте, что вас высадили на изолированном острове! Что бы вы сделали?

Паника? Да, конечно, поначалу все были бы. Но со временем вы научитесь жить на острове. Вы исследуете окружающую среду, поймете климатические условия, тип пищи, которая там растет, опасности острова и т. Д. Именно так работает обучение с подкреплением, оно включает в себя агента (вы, застрявшего на острове), который в неизвестной среде (острове), где он должен учиться, наблюдая и выполняя действия, которые приводят к наградам.

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

Вот и все типы машинного обучения. Теперь давайте посмотрим, какие проблемы решаются с помощью машинного обучения.

Типы проблем в машинном обучении

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

  1. Регрессия: в задачах этого типа результат является непрерывной величиной. Так, например, если вы хотите предсказать скорость автомобиля с учетом расстояния, это проблема регрессии. Проблемы регрессии можно решить с помощью алгоритмов контролируемого обучения, таких как линейная регрессия.
  2. Классификация. Выходные данные этого типа представляют собой категориальное значение. Классификация электронных писем на два класса: спам и не спам - это проблема классификации, которую можно решить с помощью алгоритмов классификации с контролируемым обучением, таких как Support Vector Machines, Naive Bayes, Logistic Regression, K Nearest Neighbor и т. Д.
  3. Кластеризация. Проблемы этого типа связаны с разделением входных данных на два или более кластеров на основе сходства функций. Например, объединение зрителей в похожие группы на основе их интересов, возраста, географии и т. Д. Может быть выполнено с помощью алгоритмов неконтролируемого обучения, таких как кластеризация K-средних.

Вот таблица, в которой суммируются различия между регрессией, классификацией и кластеризацией.

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

  1. Постановка проблемы 1. Изучите набор данных о банковских кредитах и ​​примите решение о том, одобрять ли ссуду заявителю, исходя из его социально-экономического профиля.
  2. Постановка проблемы 2: изучить набор данных о продажах дома и построить модель машинного обучения, которая прогнозирует индекс цен на недвижимость.
  3. Постановка проблемы 3. Сгруппировать набор фильмов как хорошие или средние на основе их охвата в социальных сетях.

Не забудьте оставить свой ответ в разделе комментариев.

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

Машинное обучение в R

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

А теперь приступим.

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

Описание набора данных. Набор данных был собран путем исследования и наблюдения за погодными условиями в международном аэропорту Сиэтл-Такома. Набор данных содержит следующие переменные:

  • ДАТА = дата наблюдения
  • PRCP = количество осадков в дюймах
  • TMAX = максимальная температура в этот день в градусах Фаренгейта.
  • TMIN = минимальная температура в этот день в градусах Фаренгейта.
  • ДОЖДЬ = ИСТИНА, если в этот день был дождь, ЛОЖЬ, если его не было.

Целевая переменная или ответная переменная в данном случае - «RAIN». Если вы заметили, эта переменная является категориальной по своей природе, то есть ее значение бывает двух категорий: Истина или Ложь. Следовательно, это проблема классификации, и мы будем использовать алгоритм классификации, называемый логистической регрессией.

Несмотря на то, что название предполагает, что это алгоритм «регрессии», на самом деле это не так. Он принадлежит к семейству GLM (обобщенная линейная модель) и, следовательно, называется логистической регрессией.

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

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

Шаг 1. Установите и загрузите библиотеки

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

#Load required libraries
library(tidyverse)
library(boot)
install.packages('forecast')
library(forecast)
library(tseries)
install.packages('caret')
library(caret)
install.packages('ROCR')
library(ROCR)

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

Шаг 2. Импортируйте набор данных

К счастью для меня, я нашел набор данных в Интернете, поэтому мне не нужно собирать его вручную. В приведенном ниже фрагменте кода я загрузил набор данных в переменную с именем 'data.df' с помощью функции 'read.csv ()', предоставленной R. Эта функция предназначена для загрузки файла версии, разделенной запятыми (CSV). .

#Import data set
data.df <- read.csv("/Users/Zulaikha_Geer/Desktop/Data/seattleWeather_1948-2017.csv", header = TRUE)

Шаг 3. Изучение набора данных

Давайте посмотрим на несколько наблюдений в наборе данных. Для этого мы можем использовать функцию head (), предоставляемую R. Это перечислит первые 6 наблюдений в наборе данных.

> head(data.df)
DATE     PRCP   TMAX   TMIN  RAIN
1 1948-01-01    0.47       51      42    TRUE
2 1948-01-02   0.59      45      36    TRUE
3 1948-01-03   0.42      45      35    TRUE
4 1948-01-04   0.31      45      34     TRUE
5 1948-01-05   0.17      45      32     TRUE
6 1948-01-06   0.44     48      39     TRUE

Теперь давайте посмотрим на структуру набора данных с помощью функции str ().

#Studying the structure of the data set
> str(data.df)
'data.frame': 25551 obs. of 5 variables:
$ DATE: Factor w/ 25551 levels "1948-01-01","1948-01-02",..: 1 2 3 4 5 6 7 8 9 10 ...
$ PRCP: num 0.47 0.59 0.42 0.31 0.17 0.44 0.41 0.04 0.12 0.74 ...
$ TMAX: int 51 45 45 45 45 48 50 48 50 43 ...
$ TMIN: int 42 36 35 34 32 39 40 35 31 34 ...
$ RAIN: logi TRUE TRUE TRUE TRUE TRUE TRUE ...

В приведенном выше коде вы можете видеть, что тип данных для переменной «DATE» и «RAIN» отформатирован неправильно. Переменная «DATE» должна иметь тип Date, а переменная «RAIN» должна быть фактором.

Шаг 4. Очистка данных

Приведенный ниже фрагмент кода при форматировании переменных «DATE» и «RAIN»:

#Formatting 'date' and 'rain' variable
data.df$DATE <- as.Date(data.df$DATE)
data.df$RAIN <- as.factor(data.df$RAIN)

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

#Checking for NA values in the 'DATE' variable
> which(is.na(data.df$DATE))
integer(0)
 
#Checking for NA values in the 'TMAX' variable
> which(is.na(data.df$TMAX))
integer(0)
 
#Checking for NA values in the 'TMIN' variable
> which(is.na(data.df$TMIN))
integer(0)
 
#Checking for NA values in the 'PRCP' variable
> which(is.na(data.df$PRCP))
[1] 18416 18417 21068
 
#Checking for NA values in the 'rain' variable
> which(is.na(data.df$RAIN))
[1] 18416 18417 21068

Если вы обратили внимание на приведенный выше фрагмент кода, вы увидите, что переменные TMAX, TMIN и, DATE не имеют значений NA, тогда как переменная «PRCP» и «RAIN» имеет 3 пропущенных значения, эти значения необходимо удалить.

# Remove the rows with missing RAIN value
> data.df <- data.df[-c(18416, 18417, 21068),]

Значения успешно удалены!

Шаг 5. Объединение данных

Объединение данных - это просто еще один причудливый термин для разделения набора данных на набор для обучения и тестирования. Набор данных для обучения должен быть больше, поскольку для обучения модели и помощи в изучении тенденций требуется гораздо больше данных. В приведенном ниже фрагменте кода набор данных разбивается на наборы для обучения и тестирования в соотношении 7: 3. Это означает, что 70% данных используется для обучения, а 30% - для тестирования.

#Data Splicing
#Data Partitioning: create a train and test dataset (0.7: 0.3)
index <- createDataPartition(data.df$RAIN, p = 0.7, list = FALSE)
# Training set
train.df <- data.df[index,]
# Testing dataset
test.df <- data.df[-index,]

Вы можете проверить сводку набора данных тестирования и обучения с помощью функции summary () в R:

> summary(train.df) 
> summary(test.df)

Шаг 6. Анализ данных

Этот этап включает в себя обнаружение закономерностей в данных и выяснение корреляций между переменными-предикторами и переменной ответа. В приведенном ниже фрагменте кода я использовал функцию cor.test (), предоставленную R.

Этот корреляционный тест показывает важность переменных-предикторов при построении модели. Кроме того, функция cor.test () требует наличия переменных числового типа, поэтому в приведенном ниже коде я отформатировал переменную Rain как числовую.

#Setting rain variable as numeric for computing the correlation
train.df$RAIN <- as.numeric(train.df$RAIN)
 
#Correlation between 'Rain' variable and 'TMAX'
> cor.test(train.df$TMAX, train.df$RAIN)
 
Pearson's product-moment correlation
 
data: train.df$TMAX and train.df$RAIN
t = -55.492, df = 17882, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
-0.3957173 -0.3707104
sample estimates:
cor
-0.3832841
 
> #Correlation between 'Rain' variable and 'TMIN'
cor.test(train.df$TMIN, train.df$RAIN)
 
Pearson's product-moment correlation
 
data: train.df$TMIN and train.df$RAIN
t = -18.163, df = 17882, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
-0.1489493 -0.1201678
sample estimates:
cor
-0.1345869

Приведенные выше выходные данные показывают, что как TMIN, так и TMAX являются важными переменными-предикторами. Обратите внимание на значение p для обеих переменных. Значение p или значение вероятности является наиболее важным параметром для понимания значимости модели.

Если p-значение переменной меньше 0,05, это считается важной характеристикой при прогнозировании результата. В нашем случае p-значение для каждой из этих переменных намного ниже 0,05, что хорошо.

Прежде чем двигаться дальше, давайте снова преобразуем переменную «RAIN» в тип «factor»:

#Setting rain variable as a factor for building the model train.df$RAIN <- as.factor(train.df$RAIN)

Шаг 7. Построение модели машинного обучения

После понимания корреляций пора построить модель. Мы будем использовать алгоритм логистической регрессии для построения модели. R предоставляет функцию glm (), которая содержит алгоритм логистической регрессии. Синтаксис функции glm ():

glm (формула, данные, семейство)

В приведенном выше синтаксисе:

  • Формула. Формула представляет собой взаимосвязь между зависимыми и независимыми переменными.
  • Данные: набор данных, к которому применяется формула.
  • Семейство: в этом поле указывается тип регрессионной модели. В нашем случае это модель бинарной логистической регрессии.
> #Building a Logictic regression model
> # glm logistic regression
> model <- glm(RAIN ~ TMAX + TMIN, data = train.df, family = binomial)
> summary(model)
 
Call:
glm(formula = RAIN ~ TMAX + TMIN, family = binomial, data = train.df)
 
Deviance Residuals:
Min 1Q Median 3Q Max
-2.4700 -0.8119 -0.2557 0.8490 3.2691
 
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 2.808373 0.098668 28.46 <2e-16 ***
TMAX -0.250859 0.004121 -60.87 <2e-16 ***
TMIN 0.259747 0.005036 51.57 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
 
(Dispersion parameter for binomial family taken to be 1)
 
Null deviance: 24406 on 17883 degrees of freedom
Residual deviance: 17905 on 17881 degrees of freedom
AIC: 17911
 
Number of Fisher Scoring iterations: 5

Мы успешно построили модель с использованием переменных «TMAX» и «TMIN», поскольку они имеют сильную корреляцию с целевой переменной («Rain»).

Шаг 8. Оценка модели

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

#Model Evaluation
#Storing predicted values
> predicted_values <- predict(model, test.df, type = "response")
> head(predicted_values)
2 4 5 8 9 18
0.7048729 0.5868884 0.4580049 0.4646309 0.1567753 0.8585068
 
#Creating a table containing the actual 'RAIN' values in the test data set
> table(test.df$RAIN)
 
FALSE TRUE
4394     3270
> nrows_prediction<-nrow(test.df)
 
#Creating a data frame containing the predicted 'Rain' values
> prediction <- data.frame(c(1:nrows_prediction))
> colnames(prediction) <- c("RAIN")
> str(prediction)
'data.frame': 7664 obs. of 1 variable:
$ RAIN: int 1 2 3 4 5 6 7 8 9 10 ...
 
#Converting the 'Rain' variable into a character that stores either (T/F)
prediction$RAIN <- as.character(prediction$RAIN)
 
#Setting the threshold value
prediction$RAIN <- "TRUE"
prediction$RAIN[ predicted_values < 0.5] <- "FALSE"
#prediction [predicted_values > 0.5] <- "TRUE"
prediction$RAIN <- as.factor(prediction$RAIN)

См. Комментарии к коду, он легко понятен.

#Comparing the predicted values and the actual values
> table(prediction$RAIN, test.df$RAIN)
 
FALSE TRUE
FALSE    3460    931
TRUE       934    2339

В приведенном ниже фрагменте кода мы используем матрицу путаницы для оценки точности модели.

#Confusion Matrix
> confusionMatrix(prediction$RAIN, test.df$RAIN)
Confusion Matrix and Statistics
 
Reference
Prediction FALSE TRUE
FALSE 3460 931
TRUE 934 2339
 
Accuracy : 0.7567
95% CI : (0.7469, 0.7662)
No Information Rate : 0.5733
P-Value [Acc > NIR] : <2e-16
 
Kappa : 0.5027
 
Mcnemar's Test P-Value : 0.9631
 
Sensitivity : 0.7874
Specificity : 0.7153
Pos Pred Value : 0.7880
Neg Pred Value : 0.7146
Prevalence : 0.5733
Detection Rate : 0.4515
Detection Prevalence : 0.5729
Balanced Accuracy : 0.7514
 
'Positive' Class : FALSE

Согласно вышеприведенному выводу, модель может предсказать вероятность дождя с точностью примерно 76%, что довольно хорошо. Подводя итог, давайте построим график, показывающий кривую логистической регрессии, известную как сигмовидная кривая, между переменной-предиктором TMAX и целевой переменной RAIN.

#Output plot showing the variation between TMAX and Rainfall
ggplot(test.df, aes(x = test.df$TMAX, y = predicted_values))+
geom_point() + # add points
geom_smooth(method = "glm", # plot a regression...
method.args = list(family = "binomial"))

Итак, на этом мы подошли к концу этого блога «Введение в машинное обучение». Я надеюсь, что вы все нашли этот блог информативным. Если у вас есть какие-либо мысли, пожалуйста, прокомментируйте их ниже. Следите за новостями, чтобы увидеть больше подобных блогов!

Если вы хотите ознакомиться с другими статьями о самых популярных технологиях на рынке, таких как Python, DevOps, Ethical Hacking, посетите официальный сайт Edureka.

Обязательно обратите внимание на другие статьи в этой серии, которые объяснят различные другие аспекты Data Science.

1. Линейная регрессия в R

2. Математика и статистика для науки о данных

3. Линейная регрессия в R

4. Учебник по науке о данных

5. Логистическая регрессия в R

6. Алгоритмы классификации

7. Случайный лес в R

8. Дерево решений в R

9. 5 лучших алгоритмов машинного обучения

10. Наивный Байес в R

11. Статистика и вероятность

12. Как создать идеальное дерево решений?

13. 10 главных мифов о роли специалистов по данным

14. Лучшие проекты в области науки о данных

15. Data Analyst vs Data Engineer vs Data Scientist

16. Типы искусственного интеллекта

17. R против Python

18. Искусственный интеллект против машинного обучения против глубокого обучения

19. Проекты машинного обучения

20. Интервью с аналитиком данных: вопросы и ответы

21. Инструменты для анализа данных и машинного обучения для непрограммистов

22. 10 лучших фреймворков машинного обучения

23. Статистика машинного обучения

24. Случайный лес в R

25. Алгоритм поиска в ширину

26. Линейный дискриминантный анализ в R

27. Предпосылки для машинного обучения

28. Интерактивные веб-приложения с использованием R Shiny

29. 10 лучших книг по машинному обучению

30. Обучение без учителя

31.1 0 лучших книг по науке о данных

32. Обучение с учителем

Первоначально опубликовано на https://www.edureka.co 22 апреля 2019 г.