www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home
Занимательная история, выдающиеся люди, малоизвестные факты, находки, открытия, фальсификации. Присоединяйся!

Автоматизация и выборка

Дата публикации Sep 18, 2018

Как я упоминал ранее, я перешел с Ericsson на Shopify. В рамках этого перехода я начинаю ощущать общественный транспорт (раньше работа была в 15 минутах езды от дома, теперь, работая в центре города, мне нужно сесть на поезд, чтобы доехать). Этим утром рядом со мной была женщина, которая работала на своем компьютере, по-видимому, редактировала документ или, скорее всего, писала в нем комментарии. Через несколько минут в своих правках она звонит по телефону, просит кого-то по телефону изменить какую-либо формулировку в документе и мучительно диктует эти изменения (несколько слов). Эта игра шла несколько раз; писать комментарии в документе, а затем вызывать кого-то для внесения соответствующих изменений. То, что могло бы быть простым редактированием, а затем отправка отредактированного документа по электронной почте, стало явно болезненным упражнением в диктовке. Дело не в том, чтобы выяснить, почему она не отправляла документ по электронной почте, это может быть так же просто, как не иметь тарифный план на передачу данных и не желать ждать подключения к Wi-Fi, кто знает, но использовать неавтоматизированный « процесс »сделал что-то, что обычно довольно просто (редактирование пары предложений в документе), болезненный опыт диктовки. Это также имеет следствие ограниченной пропускной способности, и поэтому лишь несколько комментариев могут внести свои коррективы в этот документ.

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

В Shopify я имею удовольствие иметь доступ к автоматизированному процессу ETL (Extract Transform and Load) для данных, по которым я, возможно, захочу провести анализ. Если вы хотите получить представление о том, что доступно на Shopify в отношении ETL, я приглашаю вас посмотретьНаука о данных в Shopifyвидео-презентация от Франсуазы Провеншер, которая немного коснулась этого, а также других аспектов работы ученого в Shopify. Короче мы используемpysparkс помощью пользовательских библиотек, разработанных нашими инженерами по обработке данных для извлечения, преобразования и загрузки данных из наших источников в базу данных вспомогательного помещения, которую каждый сотрудник компании может использовать для получения информации и понимания нашего бизнеса. Если вы послушаете видео Франсуазы, вы поймете, что одно из преимуществ этой автоматической схемы ETL заключается в том, что мы преобразуем необработанные данные (в основном непригодные для использования) в информацию, которую мы храним в базе данных передней комнаты. Эта информация затем доступна для дальнейшей обработки, чтобы извлечь ценную информацию для компании. Вы сразу видите выгоду. Как только такой конвейер создан, он выполняет свою работу автономно и в качестве дополнительного преимущества, благодаря нашей команде по разработке данных, постоянно контролирует себя. Очевидно, что если что-то пойдет не так, кому-то придется действовать и исправлять ситуацию, но в противном случае вы можете забыть об этом конвейере, и его постоянно обновляемые данные доступны всем. Не нужно одному человеку тратить значительное количество времени на мониторинг и импорт данных вручную. Следствием этого является то, что пропускная способность для новой информации довольно высока, и мы получаем много информации, на которой мы можем провести наш анализ.

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

Существуют математические и аналитические способы определения размера выборки, но быстрый способ сделать это правильно - начать со скромной случайной выборки, выполнить анализ, посмотреть на результаты и сохранить их. Затем вы повторяете цикл несколько раз и смотрите, продолжаете ли вы получать те же результаты. Если ваши результаты сильно различаются, у вас, вероятно, недостаточно большой образец. Иначе ты хороший Если важно, чтобы повторяемость в будущем была как можно более эффективной, вы можете попытаться уменьшить размер выборки до тех пор, пока результаты не начнут изменяться (с этого момента вам следует вернуться к предыдущему размеру выборки), но если нет, то достаточно хороший - это хорошо достаточно! Просто помните, что эти образцы должны быть случайными! Если вы повторяете анализ, используя один и тот же образец снова и снова, вы ничего не доказали. В терминах SQL это разница между:

SELECT * FROM table 
TABLESAMPLE BERNOULLI(10)

Что даст случайную выборку 10%стол, с другой стороны:

SELECT * FROM table 
LIMIT 1000

Скорее всего, всегда будет производить одинаковые первые 1000 элементов ... это не случайная выборка!

Другое соображение, которое вы должны иметь в виду, это то, что вы должны выбрать, какую популяцию вы хотите наблюдать. Допустим, в качестве примера в жаргоне Shopify, у меня есть таблица всех моих клиентов-торговцев, которые помимо прочего содержат внешний ключ к таблице заказов. Если я хочу получить представление о том, сколько заказов выполняет клиент, наблюдаемое население - это клиенты, а не заказы. Другими словами, в этом случае я должен случайно выбрать моих клиентов, а затем посмотреть, сколько у них заказов. Я не должен проверять заказы, чтобы объединить их по клиентам, и желаю, чтобы это дало ожидаемые результаты.

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

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

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


Фото на обложкеСтефан Швайхофер в Pixabay,

Первоначально опубликовано наthelonenutblog.wordpress.com18 сентября 2018 года.

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map