Что такое чистые данные
Перейти к содержимому

Что такое чистые данные

Чистые данные и выбор признаков

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

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

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

Итак, мы получаем процесс преобразования сырых данных в чистые, изображенный на рис. 4.2.

Схема обработки сырых данных

Рис. 4.2. Схема обработки сырых данных

Таким образом, можно сформулировать определение чистых данных. Чистые данные (clean dataУ — это данные, приведенные к единому формату, которые могут быть легко подвержены анализу, а также любому преобразованию типа объединения нескольких наборов данных этого формата, выделения подмножеств и т.п.

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

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

Возьмем в качестве примера задачу реализации наивного фильтра статей по машинному обучению. В качестве признаков выберем ключевые слова, соответствующие тематике. Попробуем составить словарь терминов, которые встречаются на странице https://en.wikipedia.org/wiki/Machine_learning, — слова из него мы и будем использовать в качестве признаков.

Представленный ниже фрагмент кода скачивает нужную нам страницу и использует библиотеку NekoIITML [1] [2] для синтаксического анализа (парсинга) возможно невалидного html, после чего фильтрует все текстовые ноды html и извлекает из них текст, разбивая его по пробелам и приводя в нижний регистр:

val url = new InputSource («https://en.wikipedia.org/

val parser = new DOMParser ()

parser.parse (url)

val document =parser.getDocument () val allNodes = getAHNodes (ArrayBuffer (document)) val removeNonLiteralSymbolsPattern .r

val terms = allNodes

filter (node = > node.isInstanceOf [Textlmpl]) //

выделение только текстовых узлов

map (node =>node.getTextContent) //извлечение

flatMap (line => line. trim. split (» «) ) //получение списка всех слов

map (term = > term.toLowerCase ()) //приведение к нижнему регистру

map (term => removeNonLiteralSymbolsPattern. replaceAllln (term, «»)) //оставляем только буквы filter (term =>term.nonEmpty) //оставляем только непустые слова

При наличии функции get AllNodes, которая извлекает все теш из верстки, можно получить все слова в тексте статьи. Вот такой результат получился на момент написания этих строк:

List (machine, learning, wikipedia, the, free, encyclopedia, . )

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

После получения списка всех слов можно перейти к этапу унификации — приведению слов к нормальной форме. Для этого воспользуемся библиотекой Apache Morphology (для русского языка используется Russian Morphology [3] ), которая позволяет получать нормальную форму слова:

val morphology = new EnglishLuceneMorphology О val simpleDictionary = (terms.map (term =>morphology. getNormalForms (term).get (0)).groupBy (term =>term) map <

case (term, termRepeats) => term -> termRepeats.length > filter <

case (term, termRepeats) => termRepeats >5 )).keys.toList

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

List (inductive, database, clustering, learning,

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

Зачем нужны все эти функторы и монады?

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

Это статья попытка показать, что сила функциональных языков и в первую очередь Хаскеля — это в том числе и силе функторов и монад.

Чистые данные

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

Термин «чистый» перенагружено в программировании.
Например, фразу «Руби — чисто объектный язык» мы понимаем как «Руби — язык, где всё — объекты».
А вот фразу «Хаскель — это чистый функциональный язык» следует понимать как «Хаскель — функциональный язык без побочных эффектов».
В этой статье мы будем использовать термин «чистый» ещё в одном контексте.
«Чистые данные» — это данные, которые я хочу получить.
В основном примитивные типы — это числа, строки, иногда более сложные, например — картинка или несколько значений.
Соответственно, «грязные данные» — это данные, которые содержат, помимо того что я хочу, дополнительную информацию.

Вот сочиняем программку:

Программа проста до безобразия — мы просим ввести пользователю 2 строчки, а после выводим результат вычисления.
Видим, что наша функция foo ещё не определена (она всегда вызывает падение программы), хотя Хаскель уже может откомпилировать наш код.

Теперь перепишем более детально нашу функцию, используя только «чистые» данные:

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

Казалось бы всё замечательно — простая и элегантная программка. Но нетушки!
Результат функции намного сложнее, чем нам того хотелось бы.
Как мы понимаем, на 0 делить нельзя, да и пользователь может ввести не числа, а левые строки, и при преобразовании строк в числа может выкинуть ошибку. Наш код получился небезопасным.
Императивный подход к разрешения подобных проблем делится на 2 группы: или использовать ветвления, или использовать исключения. Зачастую оба подхода комбинируется.
Эти подходы настолько эффективны, что в основном используются и в функциональных языках.
Скажем прямо — в Хаскеле присутствуют исключения, однако они недоразвиты, нуждаются в реформировании, не лучшим образом отлавливаются. Да и самое важное — в большинстве случаев они просто не нужны.
Но нем не менее — можно.
Поэтому попытаемся переписать наш код используя ветвления и исключения.

Грязные данные

В Хаскеле (да и многих функциональных языках) есть достойный ответ на подобные задачи.
Основная сила заключена в Алгебраических Типах Данных.

Если мы рассматриваем вышеприведённый пример, видно, что наши функции могут падать.
Решение — пользоваться нулабельными типами данных.
В ML языках и Scala такой тип называется Option , в Хаскеле он называется Maybe a .

Мы не обращаем внимание на deriving часть, мы тут просто говорим, что просим компилятор самостоятельно уметь переводить в строку наш тип данных.
А именно,

Тип данных принимает значение Nothing если у нас нет данных, и Just a , если есть.
Как видим, тип данных — «грязный», так как содержит лишнюю информацию.
Давайте перепишем наши функции более правильно, более безопасно и без исключений.

Прежде всего заменим функции, которые вызывали падение на безопасные аналоги:

Теперь эти функции вместо падения дают результат Nothing , если всё в порядке — то Just результат .

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

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

Можно жить с АТД, но без подобной вакханалии? Оказывается можно.

Функторы

На помощь нам в начале приходят функторы.

Функторы — это такие типы данных, для которых существует функция fmap

а так же его инфиксный синоним:

Для всех значений типа данных всегда выполняются следующие условия:

Условие идентичности:
fmap id
Условие композиции:
fmap (f . g) == fmap f . fmap g

Где id — функция идентичности

И (.) — функциональная композиция

Функтор — это класс типов, где мы создали специальную функцию fmap . Посмотрим на её аргументы — она берёт одну «чистую» функцию a -> b , берём «грязное» функторное значение f a и получаем на выходе функторное значение f b .

Тип данных Maybe является функтором. Создадим инстанс (экземпляр) для типа Maybe , так чтобы не нарушались законы функторов:

Как нам использовать чистую функцию с функтором Maybe ? Очень просто:

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

Однако, если мы захотим применить функтор, пытаясь переписать safePure2args , мы потерпим фиаско.
Функторы работают только с функциями с единственным функторно-«грязным» аргументом.
Что же делать для функций с несколькими параметрами?

Аппликативные функторы

Тут нам на помощь приходят аппликативные функторы:

Аппликативные функторы — такие функторы, для которых определены 2 функции: pure и (<*>)

Для любых значений одного типа данных всегда выполняются следующие правила:

Условие идентичности:
pure id <*> v == v
Условие композиции:
pure (.) <*> u <*> v <*> w == u <*> (v <*> w)
Условие гомоморфизма:
pure f <*> pure x == pure (f x)
Условие обмена:
u <*> pure y == pure ($ y) <*> u

Основное отличение функтора от аппликативного функтора состоит в том, что функтор протаскивает сквозь функторное значение чистую функцию, в то время как аппликативный фукнтор позволяет нам протаскивать сквозь функторное значение функторную функцию f (a -> b) .

Maybe является аппликативным функтором и определяется следующим образом:

Самое время переписать safePure2args .
В основном функцию переписывают, совмещая функторый fmap для первого аргумента, и аппликативное нанизывание остальных аргументов:

Но можно переписать функцию, пользуясь исключительно аппликативными функциями (монадный стиль) — вначале «чистую» функцию делаем чисто-аппликативной, и аппликативно нанизываем аргументы:

Замечательно!
Может можно заодно переписать функцию maybeE с помощью аппликативных функторов? Увы.

Монады

Давайте обратим внимание на подпись функции maybeResult2args :
maybeResult2args :: Int -> Int -> Maybe Int
Функция берёт на вход «чистые» аргументы, и выдаёт на выходе «грязный» результат.
Так вот, в большинстве своём в реальном программировании, именно такие функции встречаются чаще всего — берут на вход «чистые» аргументы, и на выходе — «грязный» результат.
И когда у нас есть несколько таких функций, вместе совместить их помогают монады.

Монады — это такие типы данных, для которых существует функции return и (>>=)

Выполняются правила для любых значений типа:

Левой идентичности:
return a >>= k == k a
Правой идентичности:
m >>= return == m
Ассоциативности:
m >>= (\x -> k x >>= h) == (m >>= k) >>= h

Для удобства, есть дополнительная функция с обратным порядком аргументов:

Мы понимаем, что тип Maybe является монадой, а значит можно определить его инстанс (экземпляр):

Кстати, если мы присмотримся внимательнее к внутреннему содержанию, и подписям, увидим, что:
pure == return
fmap f xs == xs >>= return . f

Пришло время переписать функцию maybeE

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

Или использовать функцию liftM2 и join

На крайний случай, можно воспользоваться синтаксическим сахаром для монад, используя do нотацию:

Различие в применении функторов и монад

Если мы сведём основные функции к одному виду, то увидим:

Все используются для того, чтобы передавать функциям «грязные» значения, тогда как функции ожидают «чистые» значения на входе.
Функторы используют «чистую» функцию.
Аппликативные функторы — «чистую» функцию внутри «загрязнения».
Монады используют функции, которые на выходе имеют «грязное» значение.

Программа без рутины

Что ж, наконец, можно полностью и аккуратно переписать всю программу:

Код снова стал прост и понятен!
При этом мы не поступились ни пядью безопасности!
При этом мы почти не изменили код!
При этом чистые функции остались чистыми!
При этом избежали рутины!

Вывод

Можно ли жить в функциональном мире без функторов и монад? Можно.
Но, если мы хотим вовсю использовать всю силу Алгебраических Типов Данных, нам для удобной функциональной композиции различных функций придётся использовать функторы и монады.
Ибо это отличное средство от рутины и путь к краткому, понятному и часто пере-используемому коду!

Зачем нужна очистка данных для Data Mining: 10 главных проблем подготовки датасета и способы их решения

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

Что такое очистка данных для Data Mining

От чего надо чистить большие данные

  • проблемы с признаками – значениями переменных, столбцами в табличном представлении датасета;
  • проблемы с записями – объектами, которые являются строками датасета и описываются значениями признаков.
  1. недопустимые значения, которые лежат вне нужного диапазона, например, цифра 7 в поле для школьных оценок по пятибалльной шкале;
  2. отсутствующие значения, которые не введены, бессмысленны или не определены, к примеру, число 000-0000-0000 в качестве телефонного номера;
  3. орфографические ошибки – неверное написание слов: «водитл» вместо «водитель» или «Омск» вместо «Томск», что искажает первичный смысл переменной, подставляя вместо одного города другой;
  4. многозначность: использование разных слов для описания одного и того же по смыслу значения, например, «водитель» и «шофёр» или применение одной аббревиатуры для разных по смыслу значений, к примеру, «БД» может быть сокращением для словосочетания «большие данные» или «база данных»;
  5. перестановка слов, обычно встречается в текстовых полях свободного формата;
  6. вложенные значения – несколько значений в одном признаке, например, в поле
    свободного формата.
  • нарушение уникальности, например, паспортного номера или другого идентификатора;
  • дублирование записей, когда один и тот же объект описан дважды;
  • противоречивость записей, когда один и тот же объект описан различными значениями признаков;
  • неверные ссылки — нарушение логических связей между признаками.

Как Data Scientist чистит данные: детали фазы Data Preparation

  • быть способным выявлять и удалять все основные ошибки и несоответствия, как в отдельных источниках данных, так и при интеграции нескольких источников;
  • поддерживаться определенными инструментами, чтобы сократить объемы ручной проверки и программирования;
  • быть гибким в плане работы с дополнительными источниками.
  • Автоматизированная очистка данных с помощью встроенных средств СУБД для Big Data: Hive, Azure, SQL Server Data Tools и пр. или интегрированных истем для статистического анализа, например, IBM SPSS, SAS;
  • Очистка данных собственными силами, когда аналитик Big Data самостоятельно ищет готовые или разрабатывает свои скрипты, например, на языке R или Python, для исправления опечаток в текстовых полях.

очистка данных, Data Preparation

Похожие публикации

Logstash Apache Kafka примеры курсы обучение, пакетная обработка событий Kafka, обучение Kafka, курсы Apache Kafka, Kafka администратор кластера курсы, Apache Kafka для дата-инженеров, Apache Kafka для администраторов и инженеров данных, Школа Больших Данных Учебный центр Коммерсант

Улучшенная обработка пакетов с Apache Kafka и Logstash в Trendyol

DWH проектирование архитектуры данных Data Mesh, основы больших данных, курсы для архитекторов данных, архитектура хранилищ данных, как спроектировать корпоративное хранилище данных, дизайн проектирование Data Warehouse DWH КХД, DWH и Big Data, обучение архитекторов и инженеров Big Data, Школа Больших Данных Учебный Центр Коммерсант

DWH по Кимбаллу и Data Mesh
One Comment
Новое на сайте
  • Улучшенная обработка пакетов с Apache Kafka и Logstash в Trendyol
  • DWH по Кимбаллу и Data Mesh
  • 3 аспекта проектирования схем данных в Greenplum
  • MLOps для Apache Flink с MLeap
  • Криптография на PySpark: PyCryptodome для Apache Spark
Отзывы на Google

BigDataSchool

powered by Google

Курсы от инженеров и для инженеров. Всё чётко, по делу. Тренеры глубоко знают продукты, о которых читают лекции. read more

Принимал участие в обучении по курсу «KAFKA: Администрирование кластера Kafka». В целом понравилось, но хотелось бы более качественной организации работы с лабгайдами. Когда лектор выполняет лабораторную работу, не совсем удобно выполнять её параллельно — где-то отстаешь, где-то убегаешь вперед. Может будет лучше разделить на более мелкие модули. read more

Прошел Курс Администрирование кластера Hadoop. Подача материала хорошая, размеренная. Преподаватель отвечает на все вопросы, и пытается как можно прозрачней приподнести материал. read more

Обучался на программе HADM. Подача материала доступная. Порадовало соотношение теории и практики 50/50. Отзывчивый преподаватель. Однозначно рекомендую. read more

Заканчиваю прохождения курса «ADH: Администрирование кластера Arenadata Hadoop». Хочу сказать, что выстроен грамотный план обучения, где отслеживается отличное соотношение практики и теории. Преподаватель, Комисаренко Николай, обладает отличным чувством юмора, что позволило не скучать на серьезных темах, и обладает отличным навыком объяснять сложные вещи простыми словами. На курс приходил с большим числом вопросов, на все из которых получил грамотные ответы, после чего все разложилось по полочкам. read more

В декабре 2020 прошел курс «Администрирование кластера Kafka». Курс проводился удаленно. В части организации обучения придраться не к чему. Необходимую информацию прислали заранее, лабораторный стенд и портал обучения работали стабильно. Немного разочаровали лабораторные работы. На месте BigDataSchool я бы их переделал. В документах с лабами нужно сделать нормальное форматирование и нумерацию пунктов. Все пункты, необходимые для выполнения, нужно сделать в виде текста. В лабах много работ по созданию «обвязки» kafka (создание самоподписных сертификатов, развертывание MIT и т.п), которые можно сделать заранее. Это позволит студентам уделять больше времени изучению самой kafka. BigDataSchool идет навстречу и позволяет пользоваться лабораторным стендом гораздо дольше установленных часов обучения. Это очень к стати, если в течении дня Вы вынуждены отвлекаться от обучения. В целом, курс дает хорошую базу по kafka. Преподаватель хорошо подает материал, делает акценты в нужных местах, подробно отвечает на вопросы. read more

С 30 ноября по 4 декабря прошел курс «Администрирование кластера Hadoop». Учитывая, что я обладал довольно поверхностной информацией в данной теме (я CIO) — ушел с курсов просветленным. Многое стало понятным, в процессе обучения наложил знания на существующую инфраструктуру компании, в которой работаю. Рекомендую коллегам руководителям в ИТ — прокачаться на данном курсе, вы поймете куда двигаться в ближайшие 2-3 года. Админам, работающим или стремящимся в BigData- обязательно! Рекомендация — настойчиво, для тех кто «думает, что знает»: перед курсом уделите время работе с командной строкой Linux! Total recall — обязательное условие. Много практической работы, и если есть затык в Linux — будете безнадежно отставать при выполнении лабораторных работ. read more

В октябре прошел курс Анализ данных с Apache Spark, это был второй раз, когда я обучался в этом месте. В целом, все хорошо, думаю что не последний. Не могу не подчеркнуть профессионализм преподавателя Королева Михаила, отвечал на поставленные вопросы, делился своим опытом. В общем, рекомендую! read more

Прошел тут курс «NIFI: Кластер Apache NiFi», вёл Комисаренко Николай. Живое и понятное обучение. Преподаватель отвечал на все вопросы от самых глупых, до самых умных и это было приятно. Так же порадовало, что преподаватель не идёт по заранее проложенным рельсам, а проходит весь путь вместе с вами, стараясь привнести, что-то новое. read more

Спасибо за обучение!

Очень крутое место, много практики, понятное объяснение заданной темы. Еще вернусь 🙂 read more

Обучался на курсе HADM администрирование кластера Arenadata Hadoop. Интересный курс, хорошая подача. read more

Обучался на курсе по администрированию Apache Kafka. Хорошая подача материала, интересные практические задачи. Возникающие вопросы доходчиво и ясно объясняют. Остался очень доволен. read more

Был на курсе «Администрирование кластера Hadoop». Отличная подача материала. Очень много практики и технических подробностей. Подробный обзор стека технологий, платформы и инструментов. Рекомендую! read more

Учился на курсе Администрирование Hadoop. Курс вёл Николай Комиссаренко. Отлично подготовленная, продуманная, системная программа курса. Практические занятия организованы так, что у студентов есть возможность познакомиться с реальными особенностями изучаемого продукта. Отключил голову и прощёлкал лабы по книжке — здесь не работает. Преподаватель легко и развёрнуто отвечает на возникающие вопросы не только по теме предмета, но и по смежным. read more

Прошёл курс по администрированию Apache Kafka. Очень понравилась как подача материала, так и структура курса. Только вот времени маловато оказалось. не всё успел доделать, но это уже не к курсу претензии :). Практики было довольно много, и это хорошо read more

Прошёл курс «Hadoop для инженеров данных» у Николая Комиссаренко. Информация очень актуальна и полезна, заставляет задуматься о текущих методах работы с большими данными в нашей компании и, возможно, что-то поменять. Занятия с большим количеством практики, поэтому материал хорошо усваивается. Отдельное спасибо Николаю за то, что некоторые вещи объяснял простым языком, понятным даже для «чайников» в области Hadoop. read more

I did not find any disadvantages in the course. Pluses: + A lot of practice (50% of the time). + The teacher can explain difficult topics easy way. + Announced topics were considered. Besides additional materials were studied. read more

Посетил курс администрирование Hadoop. На курсе устанавливали кластер с нуля на виртуалках в облаке Amazon. Настраивали Kerberos, тестировали выполнение задач на кластере, управление ресурсами кластера. Т.к. кластер развернут в облаке, после завершения занятий можно самостоятельно работать с кластером из дома. Лекции вел Николай Комиссаренко, после обучения предоставил все материалы. На занятиях отвечал на дополнительные вопросы, рассмотрели как решить пару живых задач от студентов. Хороший курс для начала изучения BigData. Update Дополнительно прошел обучения по Airflow и NiFi. Курсы двух дневные упор на занятиях делался на использовании продуктов, администрированию уделялось меньше времени. Т.к. курсы короткие, то перед занятиями желательно почитать обзорные статьи по продуктам, чтобы не терять время на базовое погружение и задавать более предметные вопросы. Перед началом занятий желательно связаться с школой и запросить что больше интересуется на обучении. Может быть предложить свои кейсы, чтобы на лабораторных отработать не только общий функционал. read more

Был на основах хадупа, все материалы описаны доступным языком. В частности хочу отметить преподавателя Николая Комисаренко, как очень квалифицированного преподавателя и специалиста. read more

Отличные курсы по «Администрированию Hadoop» и отличная организация проведения занятий, все по делу и понятно. Очень понравилось, знания получены основательные. Материал подаётся основательно. Постараюсь ещё попасть на другие курсы. read more

Курс по Isilon у Николая Комиссаренко мне тоже понравился. Грамотный и отзывчивый. Возникали вопросы по курсу он отвечал на все вопросы. Спасибо. Успехов ему read more

Посетил курс администрирование Hadoop. На курсе устанавливали кластер с нуля на виртуалках в облаке Amazon. Настраивали Kerberos, тестировали выполнение задач на кластере, управление ресурсами кластера. Т.к. кластер развернут в облаке, после завершения занятий можно самостоятельно работать с кластером из дома. Лекции вел Николай Комиссаренко, после обучения предоставил все материалы. На занятиях отвечал на дополнительные вопросы, рассмотрели как решить пару живых задач от студентов. Хороший курс для начала изучения BigData. read more

Эффективный практический курс. Прошел курс Администрирование Hadoop в октябре 2018. Хорошо наполненный материал, оптимальная длительность курса и все делалось своими руками. Местами было непросто, но преодолимо. Оправдал все ожидания, после курса появилось целостное понимание создания и работы кластера. Николай, большое спасибо read more

Прошёл курс по администрированию Hadoop Cloudera. Отличная «живая» подача материала на «простом» языке. Как плюс работа с кластером построена на платформе AWS. На курсах не скучно, рекомендую! read more

Я узнал много нового посетив курс уважаемого Николая Комиссаренко по айзелону. Очень грамотный специалист обучение было очень полезным и грамотным. Спасибо вам большое read more

Что считается необработанными данными? (Определение и примеры)

Что считается необработанными данными? (Определение и примеры)

В статистике необработанные данные — это данные, собранные непосредственно из первоисточника и никаким образом не обработанные.

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

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

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

Пример: сбор и использование необработанных данных

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

Шаг 1: Соберите необработанные данные

Представьте, что баскетбольный скаут собирает следующие необработанные данные для 10 игроков профессиональной баскетбольной команды:

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

Шаг 2: Очистите необработанные данные

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

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

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

Шаг 3: Суммируйте данные

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

  • Среднее значение : 24 минуты
  • Медиана : 22 минуты
  • Стандартное отклонение : 9,45 минут

Шаг 4: Визуализируйте данные

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

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

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

Каждый из этих типов диаграмм может помочь ему понять данные.

Шаг 5: Используйте данные для построения модели

Наконец, после того, как данные были очищены, скаут может принять решение о применении какой-либо прогностической модели.

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

Подходящее уравнение регрессии:

Очки = 8,7012 + 0,2717 * (минуты)

Затем скаут может использовать это уравнение, чтобы предсказать количество очков, которое наберет игрок, исходя из количества сыгранных минут. Например, прогнозируется, что спортсмен, который играет 30 минут, наберет 16,85 балла:

Добавить комментарий

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