Я пишу эту статью с целью помочь вам понять применение очистки данных, анализа и машинного обучения. Я также расскажу, что и как выбрать модель машинного обучения. Я использую блокноты Azure, которые предоставляют бесплатный онлайн-доступ к блокнотам Jupyter, работающим в облаке Microsoft Azure. Эта статья является вкладом в инициативу MSP Developer Stories программы Microsoft Student Partners (Индия).

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

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

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

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

Что мы собираемся исследовать?

Мы будем анализировать погодные условия в Индии, используя набор данных Weather data in India от Kaggle (https://www.kaggle.com/mahendran1/weather-data-in-india-from-1901-to-2017). Загрузите эти данные на свой компьютер.

Мы будем проходить:

  1. Очистка и изменение данных
  2. Анализ данных
  3. Применение машинного обучения

Теперь давайте запачкаем руки Azure Notebook:

  1. Перейдите на https://notebooks.azure.com/ и войдите в свою учетную запись Microsoft.
  2. Теперь нажмите «Мои проекты», как указано ниже:

3. Теперь нажмите вкладку «+ Новый проект».

4. Дайте вашему новому проекту интересное и актуальное название. Под названием проекта напишите «Прогноз погоды в Индии», так как мы будем прогнозировать погоду в Индии. Идентификатор проекта будет автоматически использовать имя проекта.

5. Ура! Успешно создали свой проект, и вы попадете в него. Теперь нажмите значок «+» › Блокнот.

6. После этого вам нужно добавить имя ноутбука, и «.ipynb» будет добавлено автоматически. Мы будем использовать версию Python 3.6. Щелкните Создать.

7. Теперь нажмите на новый файл .ipynb > Нажмите «Файл» > Нажмите «Загрузить».

Выберите файл на своем компьютере.

В качестве места назначения файла выберите /project. Щелкните Начать загрузку.

Ву! настройка проекта завершена. Теперь мы перейдем к программированию в Azure.

Примечание 1.Чтобы запустить ячейку в Jupyter, нажмите Shift + Enter на клавиатуре, или вы найдете вкладку "Выполнить" на панели навигации.

Примечание 2. Для выполнения команд терминала в примере Jupyter: команда ls. Это можно сделать, используя «!» в начале команды.

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

2. Теперь загрузите набор данных, используя функцию pd.read_csv() Pandas. Функция data.head() используется для просмотра первых 5 строк данных. Атрибут data.columns используется для перечисления всех столбцов, присутствующих в наборе данных.

Ох! Интересное наблюдение: столбец «Без имени: 0» представляет собой порядковый номер. Серийный номер не предоставляет никакой существенной информации и, следовательно, может быть отброшен.

Очистка данных

  1. Удалить/удалить столбец «Безымянный: 0».

Теперь данные читаемы и понятны. Мы перейдем к анализу данных.

Анализ данных

При этом мы будем анализировать:

  1. Самая теплая, самая холодная и средняя месячная температура.
  2. Среднегодовая температура

Самая теплая, самая холодная и средняя месячная температура:

  1. Нам нужно изменить данные как «Температура для определенного месяца в году». Мы можем сделать это, используя функциюmelt() панд.

2. Я использовал plotly, который обеспечивает интерактивную визуализацию.

Статистика:

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

Среднегодовая температура

Это поможет подтвердить проблему глобального потепления.

Мы добавим столбец «Yearly_Mean_Temperature», который будет представлять среднюю температуру за каждый год.

Построение графика среднегодовой температуры

Код:

Вывод:

Статистика:

  • Мы можем заметить, что проблема глобального потепления верна.
  • Среднегодовая температура не повышалась до 1979 г. Лишь после 1980 г. температура постепенно повышается.
  • После 2005 года температура резко возросла.

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

Наш последний шаг – прогноз погоды в Индии.

Прогнозирование данных о погоде в Индии

Нам нужно изменить данные для прогнозирования, как показано ниже:

Теперь нам нужно разделить данные на 2 части (данные для обучения и данные для тестирования). 1-я часть будет использоваться для обучения данных (70% данных) и 2-я часть для тестирования данных (30%).

Как выбрать алгоритм?

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

Для этого мы импортировали DecisionTreeRegressor на первом этапе очистки данных.

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

Давайте посмотрим на счет.

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

Нам нужно создать данные, которые служат структурой для прогнозов. Следовательно, dummy_data будет состоять из 12 строк (представляющих значения за каждый месяц) и структуры, аналогичной структуре X (которая служила входными данными для обучения и тестирования данных).

Мы можем видеть температуру 2018, а среднюю температуру можно проверить через Интернет.

Ура!!! Мы сделали это!

Ваши ключевые выводы:

  1. Создание и использование записной книжки Azure.
  2. Наблюдение за данными и их очистка.
  3. Анализ данных для извлечения важной информации из необработанных данных.
  4. Что, почему, как и какой алгоритм применять для машинного обучения.

Вот ссылка на мой проект: https://notebooks.azure.com/ishween-kaur/projects/forecast-weather-in-india