Зачем linux data science
Наши друзья из «Цеха» опубликовали пошаговую инструкцию для начинающих в сфере Data Science от Елены Герасимовой, руководителя направления «Аналитика и Data Science» в Нетологии. Делимся с вами.
О чём речь
Data Science — деятельность, связанная с анализом данных и поиском лучших решений на их основе. Раньше подобными задачами занимались специалисты по математике и статистике. Затем на помощь пришел искусственный интеллект, что позволило включить в методы анализа оптимизацию и информатику. Этот новый подход оказался намного эффективнее.
Как строится процесс? Всё начинается со сбора больших массивов структурированных и неструктурированных данных и их преобразования в удобный для восприятия формат. Дальше используется визуализация, работа со статистикой и аналитические методы — машинного и глубокого обучения, вероятностный анализ и прогнозные модели, нейронные сети и их применение для решения актуальных задач.
Пять главных терминов, которые нужно запомнить
Искусственный интеллект, машинное обучение, глубокое обучение и наука о данных — основные и самые популярные термины. Они близки, но не эквивалентны друг другу. На старте важно разобраться, чем они отличаются.
Искусственный интеллект (Artificial Intelligence) — область, посвящённая созданию интеллектуальных систем, работающих и действующих как люди. Её возникновение связано с появлением машин Алана Тьюринга в 1936 году. Несмотря на долгую историю развития, искусственный интеллект пока не способен полностью заменить человека в большинстве областей. А конкуренция ИИ с людьми в шахматах и шифрование данных — две стороны одной медали.
Машинное обучение (Machine learning) — создание инструмента для извлечения знаний из данных. Модели ML обучаются на данных самостоятельно или поэтапно: обучение с учителем на подготовленных человеком данных и без учителя — работа со стихийными, зашумленными данными.
Глубокое обучение (Deep learning) — создание многослойных нейронных сетей в областях, где требуется более продвинутый или быстрый анализ и традиционное машинное обучение не справляется. «Глубина» обеспечивается некоторым количеством скрытых слоев нейронов в сети, которые проводят математические вычисления.
Большие данные (Big Data) — работа с большим объёмом часто неструктурированных данных. Специфика сферы — это инструменты и системы, способные выдерживать высокие нагрузки.
Наука об анализе данных (Data Science) — в основе области лежит наделение смыслом массивов данных, визуализация, сбор идей и принятие решений на основе этих данных. Специалисты по анализу данных используют некоторые методы машинного обучения и Big Data: облачные вычисления, инструменты для создания виртуальной среды разработки и многое другое.
Где применяется Data Science
- обнаружение аномалий, например, ненормальное поведение клиента, мошенничества;
- персонализированный маркетинг — электронные рассылки, ретаргетинг, системы рекомендаций;
- количественные прогнозы — показатели эффективности, качество рекламных кампаний и других мероприятий;
- скоринговые системы — обработка больших объёмов данных, помощь в принятии решений, например, о предоставлении кредита;
- базовое взаимодействие с клиентом — стандартные ответы в чатах, голосовые помощники, сортировка писем по папкам.
Пять основных этапов в работе с данными
Сбор. Поиск каналов, где можно собирать данные, и выбор методов их получения.
Проверка. Валидация, нивелирование аномалий, которые не влияют на результат и мешают дальнейшему анализу.
Анализ. Изучение данных, подтверждение предположений.
Визуализация. Представление информации в понятном для восприятия виде: графики, диаграммы.
Реакция. Принятие решений на основе данных. Например, изменение маркетинговой стратегии, увеличение бюджета компании.
Елена герасимова
Руководитель направления «Аналитика и Data Science» в Нетологии
Профессия
Data
Scientist
Узнать больше
- Научитесь строить и обучать предиктивные модели с помощью алгоритмов машинного обучения и нейросетей
- Сможете находить скрытые закономерности, прогнозировать развитие событий и оптимизировать ключевые бизнес-процессы
Образование. Шесть шагов на пути к Data Scientist
Путь к этой профессии труден: невозможно овладеть всеми инструментами за месяц или даже год. Придётся постоянно учиться, делать маленькие шаги каждый день, ошибаться и пытаться вновь.
Шаг 1. Статистика, математика, линейная алгебра
Для серьезного понимания Data Science понадобится фундаментальный курс по теории вероятностей (математический анализ как необходимый инструмент в теории вероятностей), линейной алгебре и математической статистике.
Фундаментальные математические знания важны, чтобы анализировать результаты применения алгоритмов обработки данных. Сильные инженеры в машинном обучении без такого образования есть, но это скорее исключение.
Что почитать
«Элементы статистического обучения», Тревор Хасти, Роберт Тибширани и Джером Фридман — если после учебы в университете осталось много пробелов. Классические разделы машинного обучения представлены в терминах математической статистики со строгими математическими вычислениями.
«Глубокое обучение», Ян Гудфеллоу. Лучшая книга о математических принципах, лежащих в основе нейронных сетей.
«Нейронные сети и глубокое обучение», Майкл Нильсен. Для знакомства с основными принципами.
Полное руководство по математике и статистике для Data Science. Крутое и нескучное пошаговое руководство, которое поможет сориентироваться в математике и статистике.
Введение в статистику для Data Science поможет понять центральную предельную теорему. Оно охватывает генеральные совокупности, выборки и их распределение, содержит полезные видеоматериалы.
Полное руководство для начинающих по линейной алгебре для специалистов по анализу данных. Всё, что необходимо знать о линейной алгебре.
Линейная алгебра для Data Scientists. Интересная статья, знакомящая с основами линейной алгебры.
Шаг 2. Программирование
Большим преимуществом будет знакомство с основами программирования. Вы можете немного упростить себе задачу: начните изучать один язык и сосредоточьтесь на всех нюансах его синтаксиса.
При выборе языка обратите внимание на Python. Во-первых, он идеален для новичков, его синтаксис относительно прост. Во-вторых, Python многофункционален и востребован на рынке труда.
Что почитать
«Автоматизация рутинных задач с помощью Python: практическое руководство для начинающих». Практическое руководство для тех, кто учится с нуля. Достаточно прочесть главу «Манипулирование строками» и выполнить практические задания из нее.
Codecademy — здесь вы научитесь хорошему общему синтаксису.
Легкий способ выучить Python 3 — блестящий мануал, в котором объясняются основы.
Dataquest поможет освоить синтаксис.
После того, как изучите основы Python, познакомьтесь с основными библиотеками:
- Numpy : документация — руководство
- Scipy : документация — руководство
- Pandas : документация — руководство
Визуализация:
Машинное обучение и глубокое обучение:
- SciKit-Learn: документация — руководство
- TensorFlow : документация — руководство
- Theano : документация — руководство
- Keras: документация — руководство
Обработка естественного языка:
Web scraping (Работа с web):
Читать также
курс
Python
для анализа данных
Узнать больше
- Автоматизируете свою рутинную работу с помощью Python
- Научитесь обрабатывать большие объёмы информации без администрирования и баз данных
- Освоите ключевой инструмент в мире аналитики и машинного обучения
Шаг 3. Машинное обучение
Компьютеры обучаются действовать самостоятельно, нам больше не нужно писать подробные инструкции для выполнения определённых задач. Поэтому машинное обучение имеет большое значение для практически любой области, но прежде всего будет хорошо работать там, где есть Data Science.
Первый шаг в изучении машинного обучения — знакомство с тремя его основными формами.
1) Обучение с учителем — наиболее развитая форма машинного обучения. Идея в том, чтобы на основе исторических данных, для которых нам известны «правильные» значения (целевые метки), построить функцию, предсказывающую целевые метки для новых данных. Исторические данные промаркированы. Маркировка (отнесение к какому-либо классу) означает, что у вас есть особое выходное значение для каждой строки данных. В этом и заключается суть алгоритма.
2) Обучение без учителя. У нас нет промаркированных переменных, а есть много необработанных данных. Это позволяет идентифицировать то, что называется закономерностями в исторических входных данных, а также сделать интересные выводы из общей перспективы. Итак, выходные данные здесь отсутствуют, есть только шаблон, видимый в неконтролируемом наборе входных данных. Прелесть обучения без учителя в том, что оно поддается многочисленным комбинациям шаблонов, поэтому такие алгоритмы сложнее.
3) Обучение с подкреплением применяется, когда у вас есть алгоритм с примерами, в которых отсутствует маркировка, как при неконтролируемом обучении. Однако вы можете дополнить пример положительными или отрицательными откликами в соответствии с решениями, предлагаемыми алгоритмом. Обучение с подкреплением связано с приложениями, для которых алгоритм должен принимать решения, имеющие последствия. Это похоже на обучение методом проб и ошибок. Интересный пример обучения с подкреплением — когда компьютеры учатся самостоятельно играть в видеоигры.
Что почитать
Визуализация в машинном обучении. Отличная визуализация, которая поможет понять, как используется машинное обучение.
Шаг 4. Data Mining (анализ данных) и визуализация данных
Data Mining — важный исследовательский процесс. Он включает анализ скрытых моделей данных в соответствии с различными вариантами перевода в полезную информацию, которая собирается и формируется в хранилищах данных для облегчения принятия деловых решений, призванных сократить расходы и увеличить доход.
Что почитать и посмотреть
Как работает анализ данных. Отличное видео с доходчивым объяснением анализа данных.
«Работа уборщика данных — главное препятствие для анализа» — интересная статья, в которой подробно рассматривается важность анализа данных в области Data Science.
Шаг 5. Практический опыт
Заниматься исключительно теорией не очень интересно, важно попробовать свои силы на практике. Вот несколько хороших вариантов для этого.
Используйте Kaggle. Здесь проходят соревнования по анализу данных. Существует большое количество открытых массивов данных, которые можно анализировать и публиковать свои результаты. Кроме того, вы можете смотреть скрипты, опубликованные другими участниками и учиться на успешном опыте.
Шаг 6. Подтверждение квалификации
После того, как вы изучите всё, что необходимо для анализа данных, и попробуете свои силы в открытых соревнованиях, начинайте искать работу. Преимуществом станет независимое подтверждение вашей квалификации.
- расширенный профиль на Kaggle, где есть система рангов. Вы можете пройти путь от новичка до гроссмейстера. За успешное участие в конкурсах, публикацию скриптов и обсуждения вы получаете баллы, которые увеличивают ваш рейтинг. Кроме того, на сайте отмечено, в каких соревнованиях вы участвовали и каковы ваши результаты.
- программы анализа данных можно публиковать на GitHub или других открытых репозиториях, тогда все желающие могут ознакомиться с ними. В том числе и работодатель, который проводит с вами собеседование.
Последний совет: не будьте копией копий, найдите свой путь. Любой может стать Data Scientist. В том числе самостоятельно. В свободном доступе есть всё необходимое: онлайн-курсы, книги, соревнования для практики.
Но не стоит приходить в сферу только из-за моды. Что мы слышим о Data Science: это круто, это самая привлекательная работа XXI века. Если это основной стимул для вас, его вряд ли хватит надолго. Чтобы добиться успеха, важно получать удовольствие от процесса.
курс
После прохождения различных курсов и обучения на различных образовательных платформах, вроде Datacamp, вашим следующим шагом станет использование полученных знаний о Python, R, Git или Unix Shell на персональном компьютере. Однако, многие из нас затрудняются с тем, какие пакеты и программное обеспечение нужно установить, чтобы начать работу с различными технологиями. Поэтому в этой статье мы рассмотрим:
- Преимущества Python-дистрибутива — Anaconda, а также процесс его установки.
- Преимущества совместного использования R и RStudio, а также процесс их установки.
- Преимущества Unix Shell, а также способы его использования на вашем персональном компьютере.
- Преимущества использования Git, а также процесс его установки.
Ну что же, давайте начнем!
Python
Как вы понимаете, для того, чтобы начать использовать Python — сначала его необходимо установить. Для Python существует огромное количество различных дистрибутивов, но для Data Science — дистрибутив Anaconda является наиболее предпочтительным.
Преимущества Anaconda
Anaconda — это пакетный менеджер, менеджер окружения, а также Python-дистрибутив, содержащий в себе более 400 основных библиотек (с открытым исходным кодом) для научных и инженерных расчетов. Из предустановленных библиотек можно отметить numpy, scikit-learn, scipy, pandas, а также Jupyter Notebooks. На рисунке ниже вы увидите Jupyter Notebook в действии. Это крайне удобный инструмент для создания красивых аналитических отчетов, так как он позволяет хранить вместе код, изображения, комментарии, формулы и графики. Здесь вы можете подробнее узнать о Jupyter Notebooks.
Также у Anaconda есть несколько других преимуществ:
- Если вам потребуются дополнительные пакеты после установки, вы можете использовать менеджер пакетов conda или pip для установки этих пакетов. Это очень удобно, так как вам не нужно будет беспокоиться из-за совместимости одних пакетов с другими. Всю работу за вас сделают conda или pip. Также Conda упрощает переход между Python 2 и 3 (Здесь вы сможете подробнее об этом узнать).
- Anaconda поставляется совместно со Spyder — интерактивной IDE для научных расчетов на языке Python. Данная IDE позволяет писать, редактировать и тестировать код. Spyder предлагает просмотр и редактирование переменных с помощью GUI, динамическую интроспекцию кода, нахождение ошибок на лету и многое другое. Также, по необходимости, можно интегрировать Anaconda с другими Python IDE, включая PyCharm и Atom. Здесь вы сможете узнать об этом поподробнее.
Как установить Anaconda?
Ниже приведены ссылки на руководства по установке Anaconda на вашу ОС.
Язык программирования R
Большинство людей устанавливают RStudio в паре с языком программирования R. Интегрированная среда разработки RStudio считается самым простым и удобным способом работы с языком R.
Преимущества RStudio
При работе с языком R, вам доступен простенький встроенный интерпретатор, в котором можно запускать написанные команды. Но с точки зрения комфорта — он вам точно не подойдет. Поэтому и придумали IDE RStudio, который, по мнению некоторых пользователей, упрощает работу с R. Кое-что из его функций вам точно понравится, а именно: цветовая подсветка синтаксиса, автоматическое завершение кода, удобная навигация по скрипту и т.д
При запуске RStudio появляется экран, схожий с тем, что показан сверху. RStudio разделен на 4 экрана: (A) Текстовый редактор. (B) Панель управления для рабочей среды. © Интерпретатор R (D) Справочное окно и менеджер управления пакетами. Вы должны понять, что RStudio — единственная нужная вам вещь при работе с R. Люди очень часто задают вопрос о том, как установить пакеты в R. На видео ниже вам подробно ответят на этот вопрос на примере пакета tidyverse.
Если вам будет интересно углубиться в данную тему, у Datacamp есть серия из двух курсов, посвященных IDE RStudio (Часть 1, Часть 2).
Как установить R и RStudio?
Ниже приведены ссылки на руководства по установке R и RStudio на вашу ОС.
Unix Shell
Навигация по директориям, копирование файлов, использование виртуальных машин и многое другое — являются неотъемлемой частью работы data scientist. Для выполнения этих задач часто используется Unix Shell.
Способы применения Unix Shell:
- Большинство платформ облачных вычислений основаны на Linux. Например, если вы захотите настроить Data Science окружение в Google Cloud или провести глубокое обучение (Deep Learning) с помощью Jupyter Notebooks в облачных веб-сервисах, типа Amazon Web Services и Amazon EC2, для этого вам потребуются знания и навыки работы с Unix Shell. Конечно, вы можете использовать виртуальную машину и на Windows, но подобный метод не так распространен.
- Unix Shell предоставляет ряд полезных команд, таких как: команда «wc», которая подсчитывает количество строк или слов в файле; команда «cat», которая позволяет вывести содержимое файла; команды head и tail, которые выводят начало (head) и конец (tail) файла. О многих других командах вы можете узнать из статьи «8 Useful Shell Commands for Data Science».
- Unix Shell часто интегрируется с другими технологиями, об этом и пойдет речь далее.
Интеграция с другими технологиями
К примеру, зачастую можно увидеть Unix Shell команды вместе с кодом на Python в Jupyter Notebook. В Jupyter Notebook, вы можете получить доступ к Unix командам, обращаясь к Unix Shell с помощью «!». В приведенном ниже коде, результат Unix команды «ls» (которая перечисляет все файлы в текущей директории) присваивается Python переменной myfiles.
На скриншоте ниже изображен код Python, интегрированный в рабочий процесс для объединения нескольких датасетов. Обратите внимание на Unix Shell команду (в красном прямоугольнике), интегрированную в Jupyter Notebooks
Имейте в виду, что код на скриншоте выше — не какой-то уникальный способ решения проблемы, а всего лишь небольшой пример того, как вы можете использовать Unix команды. Если вы захотите научиться использовать Unix в Data Science, у Datacamp есть бесплатный курс, под названием «Introduction to Shell for Data Science», который я крайне рекомендую. Это тот навык, о котором забывают многие начинающие data scientist, но в дальнейшей работе он может очень пригодится.
Unix Shell на Mac
MacOS поставляется с Unix Shell по умолчанию, поэтому вам не придется ничего устанавливать. Но нужно знать, что существует множество Unix-систем, каждая из которых имеет разные команды. Случается, что у вас нет Unix команды (например, wget), которая до этого была в другой Unix системе. Подобно Anaconda и RStudio, у MacOS тоже есть менеджер пакетов под названием Homebrew. Ниже приведена ссылка о том, как установить и использовать Homebrew.
Команды Unix Shell в Windows
В операционной системе Windows команды Unix Shell по умолчанию не предустановлены. Не забывайте — эти команды будут очень полезны для аналитиков и специалистов в сфере Data Science. Существует множество различных способов, с помощью которых вы сможете установить оболочку Unix в Windows. Например, вы можете установить Git в свой Windows, в который уже входят Unix команды, которые будут доступны для работы из командной строки. Кроме того, вы можете установить GNU на Windows с помощью GOW (около 10мб) или с помощью Unix- подобной среды Cygwin(около 100мб).
Git — на сегодняшний день — это самая широко используемая система контроля версий. Система управления версиями записывает все изменения, которые вы вносите в файл или целый набор файлов и сохраняет их как отдельные версии. Это очень удобно, когда, например, вы пишите код на протяжении нескольких недель и понимаете, что в последние три дня писали не то что нужно и просто откатываетесь к нужной вам версии. Git — важная технология, так как, помимо всего прочего, она позволяет одновременно трудиться над одним проектом/кодом разработчикам по всему миру. Большинство современных компаний, занимающихся разработкой, используют Git в своей профессиональной деятельности. Система контроля версий Git имеет следующие преимущества:
- Ни одна из версий, которую вы закоммитили, не будет потеряна, поэтому вы всегда сможете вернуться к предыдущим версиям своего кода.
- Git уведомит вас, если вы будете работать над участком кода, над которым уже кто-то работает. Таким образом, Git предотвращает потерю или перезапись версии (однако и такое возможно).
- Git синхронизирует работу, выполняемую разными людьми на разных компьютерах, поэтому система масштабируется по мере объемов выполненной работы.
- Научившись работать с Git, вы сможете вносить свой вклад в развитие проектов с открытым исходным кодом.
Интеграция с другими технологиями
Самое крутое в системе Git это то, что она интегрируется с другими технологиями. Ранее я уже упоминал, что интегрированная среда разработки RStudio (IDE) — это один из лучших вариантов для работы с языком R. RStudio предлагает поддержку управления версиями, и большинство интегрированных сред разработки Python (узнать об этом поподробнее можно здесь).
Если вы хотите узнать больше о том, как использовать Git в сфере Data Science, на сайте DataCamp есть бесплатный курс на эту тему, который я очень рекомендую к изучению.
Инструкции по установке Git
Ниже приведены ссылки на руководства по установке Git в вашей операционной системе.
Заключение
В данной статье, мы разобрали различные способы настройки Data Science окружения на вашем персональном компьютере. Важно подчеркнуть, что эти технологии часто используются совместно.
Сфера Data Science привлекает своей перспективностью и широтой применения, но не каждый решается в неё погрузиться. Зачастую желающие сменить квалификацию встречают массу оценок и мнений о тернистом пути в этой области, теряя уверенность в себе ещё до старта, — а зря. Предлагаем подборку наиболее популярных заблуждений о профессии, которые мешают сделать выбор.
Переход в профессию — это долгий процесс, который требует получения высшего образования по технической специальности
Как бы не так. Войти в Data Science может любой, в том числе человек без аналитических навыков. Конечно, знания по прикладной математике или опыт работы в программировании послужат бонусом, но их отсутствие не станет препятствием к освоению профессии. Оптимальный по времени и эффективности вариант обучения — прохождение онлайн-курса с комплексным освоением цифровой специальности.
Онлайн-школа Skillfactory имплементирует в свои курсы фундаментальное обучение, то есть в программу включены алгоритмы решения нестандартных задач, развитие soft skills, кодинг, выполнение проектов. В декабре в школе стартует курс по Data Science, который рассчитан на 24 месяца. За это время вы приобретёте востребованные навыки по направлению и составите портфолио. А спустя год учёбы — получите все компетенции Junior-специалиста: разберётесь в базах данных и SQL, основах Linux и Python, освоите основные инструменты для анализа данных, такие как Pandas, Numpy, Matplotlib и Plotly. Программа следующего года будет зависеть от специализации (AL-разработчик, ML-разработчик, Big Data Engineer) и поднимет вас до уровня Middle.
Data Science требует столько компетенций, что на их получение уйдёт целая жизнь
Data Science действительно требует развития во многих направлениях: надо знать методы и средства интеллектуального анализа данных (Data Mining), глубоко понимать статистику, теорию вероятностей и дискретную математику, разбираться в отраслевой специфике данных. Однако при наличии фундамента знаний все эти компетенции будут нанизываться одна на другую. Поэтому не стоит думать, что, не овладев всем за первые годы обучения, вы окажетесь неконкурентоспособным. Data Science предполагает динамичное совершенствование скилов даже теми, кто уже собаку съел на анализе информации.
Курс Skillfactory по Data Science разрабатывался ведущими экспертами в этой области (NVIDIA, EORA). Они как никто другой знают, чего ждать от начинающего специалиста. Поэтому уроки построены таким образом: слушатели просматривают короткий ролик, читают текстовую выжимку по теме, а затем приступают к отработке на практике полученных навыков, не уделяя уйму часов вебинарам. А живые консультации с практикующими экспертами школы помогают разобраться со всеми спорными моментами во время обучения.
Мне придётся выполнять рутинные задачи ежедневно
К Data Science неприменима характеристика тривиального или рутинного занятия. В своей деятельности специалист ежедневно использует кросс-дисциплинарные знания, чтобы из существующих алгоритмов выбрать лучший для своего проекта. Причём почти всегда верное решение не приходит с первой попытки. Выясняя причины возникших сложностей, Data Scientist пробует снова и снова, чтобы прийти к нужному результату.
В Skillfactory каждый блок изучения сопровождается реальными кейсами от партнёров школы. Слушатели решают актуальные практические задачи по Data Science и в итоге получают git-репозиторий для потенциальных работодателей. К примеру, уже на первом году обучения вы выполните свой первый по-настоящему комплексный проект — разработаете модель, предсказывающую стоимость автомобиля.
Всеобщее увлечение Data Science приведёт к переизбытку специалистов в скором будущем
Спрос на специалистов по аналитике больших данных неуклонно растёт. При этом, несмотря на популярность профессии, по-прежнему ощущается дефицит кадров. Дело в том, что Data Science охватывает всё новые и новые бизнес-области, поэтому спрос на рынке труда стабильно превышает предложение. В банковской деятельности, медицине, биоинформатике, сельском хозяйстве, физических исследованиях — везде есть место анализу данных.
На курсе «Профессия Data Scientist» существует карьерный центр, который помогает каждому окончившему курс трудоустроиться. В чём заключается помощь? Во-первых, IT-рекрутеры с опытом подбора Data Scientist сделают ревью резюме и дадут рекомендации по тому, как выгоднее всего презентовать себя и свои достижения. Кроме того, школа организует консультацию с IT-рекрутером, на которой можно и нужно задавать любые волнующие вопросы по трудоустройству. Наконец, ваше резюме будет направлено компаниям-партнёрам Skillfactory, которые всегда готовы принять в свои ряды грамотных начинающих специалистов. Среди них — NVIDIA, CISCO, «Рамблер», «Ростелеком» и «Сбербанк».
Смена профессии приведёт к потере в зарплате
С 11 декабря каждый, кто выберет курс в SkillFactory, получает не только скидку 50% на обучение, но и подарки. А именно: микрокурс по созданию телеграм-бота, гайд по написанию резюме и курс по Google Sheets
В этом пошаговом руководстве объясняется, как выполнять ряд распространенных задач обработки и анализа данных с помощью Виртуальной машины для обработки и анализа данных (DSVM) с Ubuntu. DSVM с Ubuntu — это доступный в Azure образ виртуальной машины, на которой предварительно установлен ряд инструментов, обычно используемых для анализа данных и машинного обучения. Основные программные компоненты описаны в статье по подготовке Виртуальной машины для обработки и анализа данных с Ubuntu. Образ DSVM позволяет за считаные минуты приступить к обработке и анализу данных без установки и настройки всех инструментов по отдельности. Вы можете легко масштабировать DSVM по мере необходимости и останавливать ее, когда она не используется. DSVM — это гибкий и экономичный ресурс.
Предварительные требования
Чтобы использовать DSVM с Linux, вам потребуются перечисленные ниже компоненты.
Клиент X2Go, установленный на компьютере, и открытый сеанс XFCE. Дополнительные сведения см. в статье по установке и настройке клиента X2Go.
Скачивание набора данных spambase
Набор данных spambase относительно небольшой. Он содержит 4601 пример. Благодаря умеренным требованиям к ресурсам такой размер набора данных прекрасно подходит для демонстрации некоторых основных функций DSVM.
Это пошаговое руководство было создано с использованием DSVM с Linux размером D2 v2 (версия Ubuntu 18.04). Для выполнения процедур, продемонстрированных в этом пошаговом руководстве, можно использовать DSVM этого размера.
Если требуется больше места для хранения, можно создать дополнительные диски и присоединить их к DSVM. Эти диски используют постоянное хранилище Azure, поэтому данные сохраняются, даже если сервер повторно подготовлен из-за изменения размера или завершения работы. Чтобы добавить диск и присоединить его к DSVM, следуйте инструкциям в статье Добавление диска к виртуальной машине Linux. Эти инструкции предназначены для интерфейса Azure CLI, который уже установлен на DSVM. Их можно выполнять полностью из самой виртуальной машины DSVM. Добавить ресурсы хранения можно также с помощью Файлов Azure.
Чтобы скачать данные, откройте окно терминала и выполните следующую команду:
Скачанный файл не содержит строку заголовка. Давайте создадим другой файл, у которого есть заголовок. Для этого выполните следующую команду:
Затем объедините два файла вместе.
Просмотр набора данных с помощью Open R
Давайте изучим данные и выполним несколько простых задач машинного обучения с использованием R. Компонент CRAN R предварительно установлен на DSVM.
Чтобы получить копии примеров кода, используемых в этом пошаговом руководстве, клонируйте репозиторий Azure-Machine-Learning-Data-Science. На DSVM предварительно установлена система Git. В программе командной строки Git выполните следующую команду:
Откройте окно терминала и запустите новый сеанс R в интерактивной консоли R. Вы также можете использовать приложение RStudio, предварительно установленное на DSVM.
Чтобы импортировать данные и настроить среду, выполните следующую команду:
Чтобы просмотреть сводные статистические данные по каждому столбцу, выполните следующую команду:
Чтобы получить другое представление данных, выполните следующую команду:
В этом представлении отображается тип каждой переменной и первые несколько значений в наборе данных.
Столбец spam распознан как целое число, но это на самом деле категориальная переменная (или факторная). Чтобы задать тип данных в этом столбце, выполните следующую команду:
Чтобы выполнить исследовательский анализ, используйте пакет ggplot2. Это популярная библиотека построения для R, предварительно установленная на DSVM. На основе приведенных ранее сводных данных мы получили статистические данные по частоте использования восклицательного знака. Давайте построим графики частоты, используя следующие команды:
Так как нулевой показатель искажает график, давайте его исключим.
Выше показателя 1 наблюдается необычная плотность. Давайте взглянем только на эти данные.
Затем разобьем их на наборы с обычной и нежелательной почтой.
Эти примеры помогут создать похожие графики и исследовать данные в других столбцах.
Обучение и тестирование модели машинного обучения
Пакет rpart (рекурсивное секционирование и деревья регрессии), используемый в следующем коде, уже установлен на DSVM.
Сначала разделим набор данных на две части: для обучения и тестирования.
Ниже приведен результат:
Чтобы определить, насколько хорошо эта модель работает с обучающим набором данных, используйте следующий код:
Чтобы определить, насколько хорошо она работает с тестовым набором данных:
Теперь давайте испробуем модель случайного леса. Случайные леса обучают множество деревьев принятия решений и выводят класс, который представляет собой режим классификаций из всех отдельных деревьев принятия решений. Это более эффективный метод машинного обучения, так как он исправляет тенденцию к переобучению обучающего набора данных, которая возникает при использовании модели дерева принятия решений.
Учебники и пошаговые инструкции по глубокому обучению
В дополнение к примерам на основе платформы также предоставляется набор исчерпывающих пошаговых руководств. Эти пошаговые руководства помогут вам быстро приступить к разработке приложений для глубокого обучения в таких областях, как распознавание изображений, текста и языка.
Запуск нейронных сетей на разных платформах. В этом комплексном руководстве показано, как переносить код с одной платформы на другую. В нем также рассказывается, как сравнивать эффективность модели и среды выполнения на различных платформах.
Руководство по созданию комплексного решения по обнаружению продуктов на изображениях. Обнаружение изображений — это метод, который позволяет находить и классифицировать объекты на изображениях. Эта технология может быть очень полезна во многих сферах бизнеса в реальной жизни. Например, розничные продавцы могут использовать этот метод для определения того, какой продукт клиент взял с полки. Эти сведения, в свою очередь, помогают управлять запасами продукции.
Глубокое обучение для звуковых данных. В этом учебнике показано, как обучить модель глубокого обучения для обнаружения звуковых событий в наборе данных городских звуков. В этом учебнике приводятся общие сведения о работе со звуковыми данными.
Классификация текстовых документов. В этом пошаговом руководстве показано, как создать и обучить две разные архитектуры нейронных сетей: сеть, ориентированную на иерархию, и сеть долгой краткосрочной памяти (LSTM). Эти нейронные сети выполняют классификацию текстовых документов с помощью API Keras для глубокого обучения. Keras — это интерфейс для трех самых популярных платформ машинного обучения: Microsoft Cognitive Toolkit, TensorFlow и Theano.
Другие средства
В остальных разделах показано, как использовать некоторые из средств, установленных в DSVM с Linux. Мы обсудим следующие средства:
- XGBoost;
- Python
- JupyterHub;
- Rattle;
- PostgreSQL и SQuirreL SQL;
- Azure Synapse Analytics (ранее — Хранилище данных SQL)
XGBoost;
XGBoost предоставляет быструю и точную реализацию усиленного дерева.
Этот средство можно вызвать из командной строки или Python.
Python
Для разработки на языке Python на DSVM установлены дистрибутивы Anaconda Python версий 3.5 и 2.7.
Дистрибутив Anaconda включает Conda. Conda можно использовать для создания пользовательских сред Python, в которых могу быть установлены разные версии или пакеты.
Для создания прогнозов используем следующую команду:
Чтобы научиться публиковать конечные точки Машинного обучения Azure, давайте создадим более простую модель. Мы будем использовать три переменные, которые использовались при публикации модели R ранее.
JupyterHub
Чтобы использовать диспетчер пакетов Python (с помощью команды pip ) из Jupyter Notebook в текущем ядре, используйте в ячейке кода такую команду:
Чтобы использовать установщик Conda (с помощью команды conda ) из Jupyter Notebook в текущем ядре, используйте в ячейке кода такую команду:
На DSVM уже установлено несколько примеров записных книжек.
На DSVM с Linux можно также использовать из командной строки язык Julia.
Rattle;
Rattle (R A nalytical T ool T o L earn E asily — аналитическое средство R для легкого обучения) — это графическое средство R для интеллектуального анализа данных. Rattle содержит интуитивно понятный интерфейс, упрощающий загрузку, изучение и преобразование данных, а также создание и анализ моделей. Возможности этого средства описаны в пошаговом руководстве по графическому пользовательскому интерфейсу для интеллектуального анализа данных для R в Rattle.
Установите и запустите Rattle с помощью следующих команд:
Вам не нужно устанавливать Rattle на DSVM. Однако при открытии Rattle вам может быть предложено установить дополнительные пакеты.
В Rattle используется интерфейс на основе вкладок. Большинство вкладок соответствует шагам процесса обработки и анализа данных группы, например загрузке данных и их изучению. Процесс обработки и анализа данных выполняется слева направо, перемещаясь по вкладкам. Последняя вкладка содержит журнал команд R, выполняемых Rattle.
Чтобы загрузить и настроить набор данных:
- Чтобы загрузить файл, выберите вкладку Data (Данные).
- Щелкните селектор рядом с полем Filename (Имя файла) и выберите spambaseHeaders.data.
- Чтобы загрузить файл, Щелкните Выполнить. Должна появиться сводка по каждому столбцу, в том числе сведения о распознанном типе данных (входные данные, целевой объект или другой тип переменной) и количестве уникальных значений.
- Rattle правильно распознал тип данных столбца spam как целевой объект. Выберите столбец spam, а затем задайте для параметра Target Data Type (Целевой тип данных) значение Categoric (Категориальный).
Чтобы изучить данные:
- Выберите вкладку Explore (Изучение).
- Установите флажок Summary > Execute (Сводка > Выполнить), чтобы просмотреть сведения о типах переменных и получить сводные статистические данные.
- Чтобы просмотреть другие статистические данные о каждой переменной, установите другие флажки, например Describe (Описание) или Basics (Основные сведения).
Для создания аналитических графиков можно также использовать вкладку Explore (Просмотр). Чтобы построить гистограмму данных:
Графики корреляции не менее интересны. Чтобы создать график, выполните следующие действия.
В результате можно получить интересные корреляции: например, technology (технологии) тесно коррелирует с HP и labs (задания). Данные также тесно коррелируют с 650, так как это код региона пользователей, предоставивших набор данных.
Числовые значения для корреляции между словами доступны в окне Explore (Изучение). Интересно, что technology (технология) отрицательно коррелирует с your (ваш) и money (деньги).
В Rattle также можно преобразовать набор данных для решения некоторых стандартных задач. Например, можно изменить масштаб признаков, добавить отсутствующие значения, обработать выбросы и удалить переменные или наблюдения с отсутствующими данными. Rattle также может определить правила взаимосвязей между наблюдениями и (или) переменными. Эти вкладки не рассматриваются в этом вводном пошаговом руководстве.
Rattle также может выполнять анализ кластера. Давайте исключим некоторые признаки, чтобы облегчить чтение выходных данных. На вкладке Data (Данные) выберите Ignore (Пропустить) рядом с каждой переменной, за исключением следующих 10 элементов:
- word_freq_hp;
- word_freq_technology;
- word_freq_george;
- word_freq_remove;
- word_freq_your;
- word_freq_dollar;
- word_freq_money;
- capital_run_length_longest;
- word_freq_business;
- spam
Чтобы создать базовую модель дерева принятия решений, выполните следующие действия.
В Rattle есть удобная возможность для выполнения нескольких методов машинного обучения и их быстрой оценки. Чтоб воспользоваться ею, выполните следующие действия.
Завершив создание моделей, выберите вкладку Log (Журнал), чтобы просмотреть код R, выполняемый Rattle во время сеанса. Чтобы сохранить его, нажмите кнопку Export (Экспорт).
PostgreSQL и SQuirreL SQL
Перед загрузкой данных необходимо разрешить выполнять проверку подлинности с использованием пароля на узле localhost. В окне командной строки выполните следующую команду.
В нижней части файла конфигурации расположены несколько строк, описывающие разрешенные подключения.
В строке IPv4 local connections замените ident на md5, чтобы можно было выполнить вход с помощью имени пользователя и пароля.
Перезапустите службу PostgreSQL.
Чтобы запустить psql (интерактивный терминал для PostgreSQL) от имени встроенного пользователя Postgres, воспользуйтесь следующей командой:
Создайте новую учетную запись пользователя, используя имя пользователя учетной записи Linux, которую вы указывали при входе. Создайте пароль.
Импортируйте данные в новую базу данных.
Теперь давайте изучим данные и выполним некоторые запросы с помощью SQuirreL SQL — графического средства, позволяющего взаимодействовать с базами данных через драйвер JDBC.
Чтобы начать работу, запустите SQuirreL SQL из меню Applications (Приложения). Чтобы настроить драйвер, сделайте следующее:
- Выберите Windows > View Drivers (Windows > Просмотр драйверов).
- Щелкните PostgreSQL правой кнопкой мыши и выберите Modify Driver (Изменить драйвер).
- Выберите Extra Class Path > Add (Путь к дополнительным классам > Добавить).
- В поле File Name (Имя файла) введите /usr/share/java/jdbcdrivers/postgresql-9.4.1208.jre6.jar.
- Щелкните Open(Открыть).
- Выберите List Drivers (Список драйверов). В поле Class Name (Имя класса) выберите org.postgresql.Driver, а затем нажмите кнопку ОК.
Чтобы установить подключение к локальному серверу:
- Выберите Windows > View Aliases (Windows > Просмотр псевдонимов).
- Чтобы создать псевдоним, нажмите кнопку + . В поле имени нового псевдонима введите Spam database (База данных нежелательной почты).
- Для параметра Driver (Драйвер) выберите значение PostgreSQL.
- В качестве URL-адреса укажите jdbc:postgresql://localhost/spam.
- Введите имя пользователя и пароль.
- Щелкните ОК.
- Чтобы открыть окно Подключение, дважды щелкните псевдоним База данных нежелательной почты.
- Выберите Подключиться.
Чтобы выполнить запросы:
- Выберите вкладку SQL .
- В поле запроса в верхней части вкладки SQL введите базовый запрос, например SELECT * from data; .
- Нажмите клавиши CTRL+ВВОД, чтобы выполнить запрос. По умолчанию SQuirreL SQL возвращает первые 100 строк из запроса.
Для изучения этих данных можно выполнить множество других запросов. Например, как отличается частота упоминания слова make в нежелательной и обычной почте?
Если вы хотите выполнять задачи машинного обучения с данными, хранящимися в базе данных PostgreSQL, рекомендуем воспользоваться MADlib.
Azure Synapse Analytics (ранее — Хранилище данных SQL)
Azure Synapse Analytics — это развернутая в облаке база данных с поддержкой горизонтального увеличения масштаба, которая может обрабатывать большие объемы реляционных и нереляционных данных. Дополнительные сведения см. в разделе Что такое Azure Synapse Analytics?
Чтобы подключиться к хранилищу данных и создать таблицу, выполните следующую команду из командной строки:
Воспользуйтесь следующей командой в командной строке sqlcmd:
Скопируйте данные с помощью программы bcp.
Скачанный файл содержит символы конца строки в стиле Windows. Программа bcp ждет завершения строк в стиле Unix. Используйте флаг -r, чтобы сообщить об этом bcp.
Затем выполните запрос с помощью программы sqlcmd.
Запрос можно также выполнить с помощью SQuirreL SQL. Выполните действия, аналогичные PostgreSQL, с помощью драйвера JDBC SQL Server. Драйвер JDBC находится в папке /usr/share/java/jdbcdrivers/sqljdbc42.jar.
Хочу стать Data Analyst на R и Python.
Прошу совета опытных аналитиков и Data Scientistов.
На Windows вполне полноценно можно работать с данными в RStudio, Jupiter Notebook и других прогах?
С Убунтой постоянно какой-то головняк появляется. То Wi-Fi падает, то проводной интернет не работает. То не устанавливается что-то. Работаю на ноуте.
В избранное В избранном 0
Похожие топики
90 комментариев
WSL 2 помоиму должен решать все проблемы
Я использовал федору, аналог красной шапочки.
Не там копаєте.
Ставте анаконду на будь-якій ОСі, буде щастя. І тільки після конкретних проблем можна буде думати про іншу операційку.
Не хвастовства ради, а токмо в рамках обмена опытом.
Обычно после установки интерпретатора я сразу устанавливаю Rtools и devtools. Как-то так сложилось, что большинство проектов я заворачиваю в пекедж ради удобства работы, задействования клавиатурных сокращений для прогона тестов, написания доков и т.д. Да, можно задействовать шаблоны проектов и т.д. Следовательно, devtools присутствует всегда. Сейчас попробовал установить emh на Винде 10 с R 3.5.2. Ругнулось на необновлённые пакеты, но отработало на ура.
Сейчас попробовал установить emh на Винде 10 с R 3.5.2
А у меня сейчас Microsoft’овский R. Они с одной стороны четко следят за порядком в версиях пактов (чего нет в CRAN’е), но с другой — когда нестандартная ситуация, то те же devtools могут оказаться несовместимыми.
Кстати, как emh — стоит того, чтоб повозиться с его установкой?
Я майкрософтовским Аром не пользовался. Предполагаю, что где-то так и есть. Microsoft улучшил, добавил, но нужно быть готовым к тому, что там не заработает что-то, что работет в ванильном R. Ну а CRAN чем-то напоминает debian testing ;) Можно годами работать без проблем, но если что — экранируем функции сами ;)
emh лично не пробовал, ничего не могу сказать. Хотя, помню, пару лет назад писал довольно большой проект по рандом-вокам. Ещё и умудрился реализовать его с разными подходами: R4, R5, R6. Тоже испёк пакет, но на CRAN предложить своё монстрообразное поделие постеснялся.
Vasily Nekrasov Senior Risk Analyst and Model Developer в Total Energie Gas GmbH 01.05.2019 11:48Мне сразу бросились в глаза французские фигурные кавычки вместо прямых, но, наверное, это особенности вашего копи-паста, и в RStudio у вас используются прямые кавычки. Надеюсь, что прямые. Прогресс-бар прошёл 59% и остановился.
Я по-быстрому глянул функцию emh::is_random():
здесь применяется логарифмирование или похожее на него преобразование numeric-значений zoo-объекта, где мы получаем NaN-ы, из-за которых нам дальше выдаётся ошибка:
logrets <- as_logreturns(S)
В as_logreturns() завёрнута функция cAsLogReturns(), которая, в свою очередь задействует Rcpp.
Похоже, нужно либо разбираться глубже, либо бросить этот emh и использовать другой пакет.
В спешке писал. Разумеется, cAsLogReturns() задействует cpp-код через Rcpp. Вот он:
Да, по замыслу создателя пакета
из вектора нулей должен был превратиться в вектор чисел, но где-то что-то пошло не так, логарифму скармливаются нули, на выходе получаем наны. Впору создавать issue, но для этого сначала нужно разобраться, вникнуть в замысел автора, затем, может, появится у меня пул-реквест, но времени сейчас есть только на копи-паст этого кода.
Там в выражении участвует вектор по-идее-ненулей levels и order. Я ж говорю, надо вникать, якщо знайдеться натхнення й час.
Vasily Nekrasov Senior Risk Analyst and Model Developer в Total Energie Gas GmbH 02.05.2019 00:20Похоже, нужно либо разбираться глубже, либо бросить этот emh и использовать другой пакет.
Я выбрал последнее :)
Собственно, в этом и сила и слабость R — что одну и ту же задачу можно решить несколькими способами (или более конкретно — найти ее решение в нескольких пэкэджах).
Поэтому когда речь идет об исследовании, я всегда предпочитаю R. ну а когда об оптимизации и рутинизации ясных четко сформулированных задач. в общем, на досуге углубляю свои знания Питона :)
это opensource во всей красе. ;)
Nikita Barsukov Software engineer, data analysis, business intelligence and machine learning 16.04.2019 12:47Если речь идет только о Python / R, то без разницы, нормально работает и там и там.
А так, не надо забывать что BI специалисты очень часто работают с MS Office, например, и с Экселем в частности. Открывать странные Excel форматы в Убунте то еще удовольствие.
Плюс стандартные BI тулы, например Tableau, PowerBI, их на линуксе нет.
стандартные BI тулы, например Tableau, PowerBI, их на линуксе нет.
Десктопної версії нема, але є сервер версія з яком можна працювати через браузер.
Какие хорошие вопросы Максим задает)))
Спасибо, Леша))
У меня был хороший учитель:))
В последние пару месяцев на пк и ноуте перепробовал почти все семейство ubuntu и к этому еще и manjaro. Итоговый вывод (имхо конечно же)- самый быстрый дистрибутив — manjaro (plasma), самый стабильный mint (cinnamon), самый красивый (и украшаемый) — Kubuntu (plasma). Но для хочу или нет, второй системой пришлось оставить windows10 , ибо world of tanks , на linux хоть и работает но теряет 2/3 производительности.
Я бы посоветовала Ubuntu 16.04, она стабильнее остальных. Почему не советую windows — большинство пакетов/либ требует компиляции плюсового кода, в винде это ппц сложно, особенно начинающему юзеру, остается только брать wheels из интернета
Оба языка и их инструментарий отлично живут что на Винде, что на Линухе.
Я бы даже с WSL не заморачивался.
На Windows вполне полноценно можно работать с данными в RStudio, Jupiter Notebook и других прогах?
Остальное поймёте в процессе развития.
Здесь уже отписались по поводу docker и AWS, keras. Когда начнёте этим заниматься, поймёте, что пора запускать линукс: либо в отдельном разделе диска дуалбутом, либо через Virtualbox/Vmware, либо через WSL.
WSL может быть решением во многих задачах, когда вам нужен Linux. За сколько-то лет работы в этой сфере я трудился то попеременно в Windows и Linux, то исключительно в Windows, а сейчас больше в Windows+WSL.
Читайте также: