Записные книжки Azure ML — это полностью управляемое облачное решение для специалистов по обработке и анализу данных, позволяющее начать работу с машинным обучением, глубоко интегрированное с рабочими областями и хранилищами данных машинного обучения Azure. Он обеспечивает первоклассный опыт разработки моделей с помощью интегрированных записных книжек с использованием Azure Machine Learning Python и R SDK. С помощью ноутбуков мы можем использовать возможности управления и готовности предприятия для ИТ-администраторов.

Это делает вашу работу более продуктивной: вы можете легко создавать и развертывать модели с помощью встроенных блокнотов и популярных инструментов. Вы также можете строить эксперименты Automated ML (AutoML) из блокнотов. (Об AutoML поговорим в следующем разделе). Он позволяет совместно отлаживать модели и совместно использовать записные книжки в пределах рабочей области. Ноутбуки управляемы и безопасны. Форм-фактор управляемой ВМ обеспечивает соответствие требованиям корпоративной безопасности. Они предварительно настроены с использованием новейших пакетов машинного обучения, драйверов графического процессора и всего, что нужно специалистам по данным, чтобы сэкономить время на задачах настройки. Ноутбуки также полностью настраиваемые. Он обеспечивает широкую поддержку типов виртуальных машин Azure и постоянную низкоуровневую настройку.

Чтобы продемонстрировать, как работает Notebooks, давайте сначала посмотрим на данные, предоставленные Центральным статистическим бюро. Они собрали самый большой набор данных, который содержит ценную информацию о многочисленных свойствах (площади, возрасте, демографической статистике и т. д.) обрушившихся зданий. при землетрясениях в Непале. Загрузить данные отсюда.

Создайте новую рабочую область машинного обучения Azure, а когда развертывание будет завершено, перейдите к ресурсу и нажмите кнопку Запустить сейчас на странице Обзор. Вы должны увидеть панель на главной странице с опциями Notebooks, AutoML и Designer.

Запустите ноутбуки.

Структура папок находится слева, здесь вы можете создавать новые файлы и папки. На вкладке Образцы вы можете импортировать проект, созданный корпорацией Майкрософт, чтобы приступить к работе. С левой стороны, на вкладке Файлы, создайте новый файл и дайте ему имя. Убедитесь, что расширение .ipynb. Отсюда также можно создать вычисление, оно будет использоваться для запуска нашего кода. Чтобы создать его, нажмите знак + рядом с Вычислить в верхней части блокнота или на значок в нижней левой части меню, как показано стрелкой на рисунке ниже.

Я использую пакет Python Pandas. Pandas расшифровывается как Библиотека анализа данных Python, у нее есть много замечательных функций для использования с объектами, называемыми фреймами данных. Dataframes — это интерактивные таблицы, которыми можно легко манипулировать и преобразовывать.

импортировать панд как pd

dfValues ​​= pd.read_csv("values.csv")

отображение(dfValues)

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

dfValues.dtypes

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

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

dfValues.describe()

Что мы можем видеть здесь в первой строке: сколько ненулевых значений находится в столбце (поскольку функция Python describe() считает только непустые поля), и по этой информации мы можем быть уверены, что каждая из строк в каждом из наблюдаемых столбцов содержат ненулевые значения. Это важно, иначе вносит много шума в любые расчеты и прогнозы, например вычисление среднего:

(0 + 1+ 2+ 3) / 4 = 1,5

vs.

(1 + 2 +3) / 3 = 2

Вы также заметили количество столбцов результатов? Функция description() возвращает информацию только о числовых столбцах и удаляет другие типы из наблюдения. Для простоты мы не будем обсуждать, как использовать эти функции во время моделирования.

Еще одно наблюдение, которое вы можете сделать здесь, — это минимальное и максимальное значения для каждого столбца. Например, здания имеют минимум 1 и максимум 9 этажей, или возраст здания не менее 0 и может достигать 995 лет.

Еще одно важное наблюдение касается столбцов, начинающихся с has_, что минимум равен 0, а максимум равен 1. Я мог бы предположить, что это, вероятно, правда или ложь, но я не могу быть в этом уверен прямо сейчас. Мы можем проверить, например, этот столбец has_superstructure_adobe_mud с помощью уникальной функции.

dfValues.has_superstructure_adobe_mud.unique()

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

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

Среднее значение — это описательная статистика (относится к категории центральной тенденции), которая рассматривает среднее значение этого конкретного столбца. Показатели разброса (также известные как дисперсия) отвечают на вопрос: «Насколько различаются мои данные?»

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

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

display(dfValues.boxplot(column='age'))

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

Столбец label — это damage_grade, который показывает, насколько высок риск повреждения зданий в случае повторного землетрясения (1 — низкий, 2 — средний, 3 — высокий). Таким образом, наша модель будет предсказывать риск, изучая «опытные» данные. Мы можем дополнительно исследовать столбец меток, запустив следующий код.

df.damage_grade.value_counts()

Вы можете видеть, что в столбце damage_grade есть 3 разных значения, а также количество функций, доступных для каждой из меток. В лучшем случае было бы, если бы эти числа были довольно близки друг к другу, хотя видно, что число 2 имеет гораздо больше примеров, чем метка 1 и 3. Это проблема, потому что если модель обучается на большем количестве примеров с меткой 2, он чаще возвращает метку 2, даже если риск предполагается высоким или низким. Мы не должны обучать модель на несбалансированных данных, поэтому мы собираемся разобраться с этим вопросом, когда начнем преобразование и подготовку данных перед обучением.

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

Заключение набора данных:

  • 10000 строк
  • 41 столбец: 3 идентификатора, 6 числовых, 8 нечисловых, 23 истинных/ложных, 1 столбец меток

КЛЮЧЕВАЯ ОСОБЕННОСТЬ

  • age (int): возраст здания в годах.
  • area (int): площадь здания в м2
  • height (int): высота здания в метрах.
  • count_floors_pre_eq (int): количество этажей в здании до землетрясения.
    Когда два здания имеют одинаковую высоту, меньшее количество этажей имеет более высокий риск повреждения, поскольку конструкция слабее, чем другой, который имеет больше этажей.
  • count_families (плавающее число): количество семей, проживающих в здании.
  • has_secondary_use (двоичный): указывает, использовалось ли здание для второстепенных целей.
  • квадратный(с плавающей запятой): квадратный корень из площади
  • difference(float): разница между квадратным корнем из площади и высотой зданий.

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

  • has_superstructure_bamboo (двоичный): бамбук
  • has_superstructure_mber (двоичный): древесина
  • has_superstructure_adobe_mud (двоичный): Adobe/Mud
  • has_superstructure_mud_mortar_stone (двоичный): глиняный раствор — камень
  • has_superstructure_stone_flag (двоичный): Камень
  • has_superstructure_cement_mortar_stone (бинарный): Цементный раствор — Камень
  • has_superstructure_mud_mortar_brick (двоичный): глиняный раствор — кирпич
  • has_superstructure_cement_mortar_brick (бинарный): Цементный раствор — Кирпич
  • has_superstructure_rc_non_engineered (двоичный): неинженерный железобетон
  • has_superstructure_rc_engineered (двоичный): инженерный железобетон.

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

Прогнозирование ущерба от землетрясения с помощью Azure ML Designer