Data Science 2013 — различия между версиями
(Новая страница: «Лектор - Суворов Владимир Алексеевич (vladimir.suvorov@emc.com) == Лекции == == Домашние задания == == Спи…») |
|||
(не показано 7 промежуточных версий этого же участника) | |||
Строка 4: | Строка 4: | ||
== Домашние задания == | == Домашние задания == | ||
+ | |||
+ | === Домашнее задание 1 === | ||
+ | |||
+ | Скачать более 10 тыс записей с форума SQL.ru "просто треп" из ветки "ну что танковые задроты" | ||
+ | |||
+ | Продумать и реализовать механизм хранения этих записей в любой реляционной СУБД. (и собстно заполнить базу) Мин набор информации: | ||
+ | * дата | ||
+ | * автор | ||
+ | * текст | ||
+ | * цитирования | ||
+ | |||
+ | |||
+ | Мин. информация не является описанием названий полей а лишь предполагает что вы должны ее как то хранить. | ||
+ | Также примите во внимание особенности реализации цитирования на форуме. Еще примите во внимание что так как будет делаться аналитика хранить можно приближенно (допускается некий процент ошибок парсинга) | ||
+ | |||
+ | |||
+ | При этом примите во внимание что при сдаче задания будут формулироваться запросы из реальной жизни, которые выливаются для вас в SQL запросы и может немножко кода | ||
+ | |||
+ | |||
+ | Примеры заданий: | ||
+ | |||
+ | Например: Тред - набор из исх сообщения и всего что его цитирует | ||
+ | * Найти Среднее время жизни треда | ||
+ | * Найти топ 10 активных пользователей | ||
+ | * Определить ИС7 хороший или плохой танк | ||
+ | * Определить самые частые слова в тредах | ||
+ | * Построить график суточной активности | ||
+ | |||
+ | итд... (список четко не определен) | ||
+ | |||
+ | |||
+ | Смотреть буду на реализацию структуры базы и сам код парсера. | ||
+ | |||
+ | Также буду смотреть сколько заданий вы сможете исполнить на вашей базе. Поэтому пожалуйста не пихайте все в одну табличку и подумайте над возможными проблемами прежде чем писать. | ||
+ | |||
+ | === Домашнее задание 2 === | ||
+ | |||
+ | Биржа Eve-online | ||
+ | |||
+ | # Ознакомится с принципом биржи ( https://wiki.eveonline.com/en/wiki/Market_guide) | ||
+ | # Скачать данные по бирже отсюда - http://eve-central.com/dumps/ (Качать лучше за продолжительный период - год например) | ||
+ | # Спарсить и Загрузить их куда захотите. Выбор того куда загрузите хорошо бы обосновать. ( пример куда можно грузить - реляц БД, R, Hive, что еще захотите) | ||
+ | # Построить базовые статистические метрики выбранного участка базы. Участок можно выбирать любой (Пример - торговля внутри дня, внутри недели, внутри месяца, по выходным..., торговля минералами, торговля пушками и.т.д) Базовые метрики - как минимум графики распределений и оценка параметров распределений. Выбранные метрики обосновать. Если что то очень нужное не выбрали то буду карать при сдаче =) | ||
+ | # Построить не менее 4 разумных не совсем тривиальных гипотез на тему свойств биржи или предложения по торговле (тривиальность это мой мягкий субъективный критерий - сорри) и статистически обосновать. Проверить на отдельном датасете. | ||
+ | |||
+ | Если сомневаетесь в тривиальности гипотезы пишите мне - я отвечу | ||
+ | |||
+ | P.S. Не забывайте про репрезентативность выборки - для анализа внутридневной торговли брать только один день НИЗЯ!!!!! | ||
+ | |||
+ | [[Медиа:DataScience HW2.jpg | Дамп доски]] | ||
+ | |||
+ | === Домашнее задание 3 === | ||
+ | |||
+ | Необходимо сделать одно задание на выбор. | ||
+ | |||
+ | ==== Administrator Track ==== | ||
+ | |||
+ | Поставить single-node hadoop cluster. Hadoop брать с http://hadoop.apache.org/releases.html Релиз 2.2.0 или 1.2.1 на выбор | ||
+ | |||
+ | Дока по установке - http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/ | ||
+ | |||
+ | После установки проверить работу с помощью terasort или встроенных примеров (любого - можно из той же инструкции взять). Напоминаю что надо загрузить данные на HDFS перед тем как запускать задачу | ||
+ | |||
+ | Нельзя ставить сам Hadoop через apt-get и другие менеджеры пакетов. Если нужны будут пакеты (джава или еще что) - их можно ставить как угодно. Обязательно проверить что всё ок при перезагрузке машины. Проверить веб интерфейсы. | ||
+ | |||
+ | Бонусом задание (не обязательно)- скомпилировать hadoop из исходников | ||
+ | |||
+ | Допвопросы будут на конфигурационные файлы и общее понимание установки. | ||
+ | |||
+ | ==== Developer Track ==== | ||
+ | |||
+ | Hadoop взять с сайта Cloudera или поставить из репозитария apt-ом (в общем берите откуда хотите =)) http://www.cloudera.com/content/support/en/downloads/download-components/download-products.html?productID=F6mO278Rvo | ||
+ | |||
+ | Задание - написать ( на чем угодно ) таску Map-Reduce для подсчёта кол-ва слов в данных из лабы 1. (Собстно и посчитать эти слова выполнив таску на Hadoop) | ||
+ | Слова разделяются пробелами. Пунктуацию выкидывать. Слова считать ТОЛЬКО из больших букв и других символов (например "ИС-7") ИЛИ написанные латинскими буквами любого регистра (тоже могут содержать символы например "Pzkfg38"). | ||
+ | |||
+ | Смотреть буду код. Вопросы тоже по мелкой модификации кода или по реализации. | ||
+ | |||
+ | === Домашнее задание 4 === | ||
+ | |||
+ | Pig. | ||
+ | |||
+ | Реализовать задание Д/З N1 на скриптовом языке Pig. То есть загрузить данные и построить статистику упоминаний танков в сообщениях | ||
+ | |||
+ | === Домашнее задание 5 === | ||
+ | |||
+ | Hivе/Hbase | ||
+ | |||
+ | Выбрать ту или иную технологию (обосновать выбор). Загрузить туда данные из Д/3 N2 и уметь собирать статистики данных (уметь писать запросы или код). | ||
+ | |||
+ | Примером – | ||
+ | |||
+ | Какой временной период более часа имеет наибольшую удельную ликвидность (оборот рынка за период/время) | ||
+ | |||
+ | Какой товар имеет наиболее стабильный спред за заданный период, при этом брать 90% интервал по объему ( то есть сортируем сделки по объему сделки (цена*кол-во) и выкидываем 5% сверху и снизу) | ||
+ | |||
+ | Какая пара товаров лучше всего продается вместе. То есть смотреть сделки на одной планете в +/- одно время. Всё перебирать можно но не обязательно. Предлагаю подумать как итеративно подойти к процессу. | ||
+ | |||
+ | (Хинт (из очевидного) – ракеты одного типа но разного наименования должны хорошо покупаться вместе итд) | ||
+ | |||
+ | P.S. спред = разница между средней ценой покупки и средней ценой продажи | ||
+ | |||
+ | Стабильность – маленькая дисперсия. | ||
+ | |||
+ | P.S. Как вы понимаете считать надо так – берем маленькие временные интервалы. Там суммируем сделки выкидывая по 5% сверху и снизу. Получаем массив вида ( временной интервал, средняя цена покупки, средняя цена продажи) Это будет наша выборка. | ||
+ | |||
+ | Считать как то по другому ИМХО неправильно, но не факт, я могу быть не прав. Если кто то докажет мне иное – я готов к обсуждению. | ||
== Список литературы == | == Список литературы == | ||
== Ссылки == | == Ссылки == | ||
+ | [http://www.youtube.com/watch?v=bRzOBGLCRbc Recommender Systems - The Art and Science of Matching Items to Users] | ||
+ | |||
+ | [http://www.youtube.com/watch?v=RzdyNC2Ut5A Content recommendation on Yahoo! sites ] |
Текущая версия на 17:17, 4 декабря 2013
Лектор - Суворов Владимир Алексеевич (vladimir.suvorov@emc.com)
Содержание
Лекции
Домашние задания
Домашнее задание 1
Скачать более 10 тыс записей с форума SQL.ru "просто треп" из ветки "ну что танковые задроты"
Продумать и реализовать механизм хранения этих записей в любой реляционной СУБД. (и собстно заполнить базу) Мин набор информации:
- дата
- автор
- текст
- цитирования
Мин. информация не является описанием названий полей а лишь предполагает что вы должны ее как то хранить.
Также примите во внимание особенности реализации цитирования на форуме. Еще примите во внимание что так как будет делаться аналитика хранить можно приближенно (допускается некий процент ошибок парсинга)
При этом примите во внимание что при сдаче задания будут формулироваться запросы из реальной жизни, которые выливаются для вас в SQL запросы и может немножко кода
Примеры заданий:
Например: Тред - набор из исх сообщения и всего что его цитирует
- Найти Среднее время жизни треда
- Найти топ 10 активных пользователей
- Определить ИС7 хороший или плохой танк
- Определить самые частые слова в тредах
- Построить график суточной активности
итд... (список четко не определен)
Смотреть буду на реализацию структуры базы и сам код парсера.
Также буду смотреть сколько заданий вы сможете исполнить на вашей базе. Поэтому пожалуйста не пихайте все в одну табличку и подумайте над возможными проблемами прежде чем писать.
Домашнее задание 2
Биржа Eve-online
- Ознакомится с принципом биржи ( https://wiki.eveonline.com/en/wiki/Market_guide)
- Скачать данные по бирже отсюда - http://eve-central.com/dumps/ (Качать лучше за продолжительный период - год например)
- Спарсить и Загрузить их куда захотите. Выбор того куда загрузите хорошо бы обосновать. ( пример куда можно грузить - реляц БД, R, Hive, что еще захотите)
- Построить базовые статистические метрики выбранного участка базы. Участок можно выбирать любой (Пример - торговля внутри дня, внутри недели, внутри месяца, по выходным..., торговля минералами, торговля пушками и.т.д) Базовые метрики - как минимум графики распределений и оценка параметров распределений. Выбранные метрики обосновать. Если что то очень нужное не выбрали то буду карать при сдаче =)
- Построить не менее 4 разумных не совсем тривиальных гипотез на тему свойств биржи или предложения по торговле (тривиальность это мой мягкий субъективный критерий - сорри) и статистически обосновать. Проверить на отдельном датасете.
Если сомневаетесь в тривиальности гипотезы пишите мне - я отвечу
P.S. Не забывайте про репрезентативность выборки - для анализа внутридневной торговли брать только один день НИЗЯ!!!!!
Домашнее задание 3
Необходимо сделать одно задание на выбор.
Administrator Track
Поставить single-node hadoop cluster. Hadoop брать с http://hadoop.apache.org/releases.html Релиз 2.2.0 или 1.2.1 на выбор
Дока по установке - http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/
После установки проверить работу с помощью terasort или встроенных примеров (любого - можно из той же инструкции взять). Напоминаю что надо загрузить данные на HDFS перед тем как запускать задачу
Нельзя ставить сам Hadoop через apt-get и другие менеджеры пакетов. Если нужны будут пакеты (джава или еще что) - их можно ставить как угодно. Обязательно проверить что всё ок при перезагрузке машины. Проверить веб интерфейсы.
Бонусом задание (не обязательно)- скомпилировать hadoop из исходников
Допвопросы будут на конфигурационные файлы и общее понимание установки.
Developer Track
Hadoop взять с сайта Cloudera или поставить из репозитария apt-ом (в общем берите откуда хотите =)) http://www.cloudera.com/content/support/en/downloads/download-components/download-products.html?productID=F6mO278Rvo
Задание - написать ( на чем угодно ) таску Map-Reduce для подсчёта кол-ва слов в данных из лабы 1. (Собстно и посчитать эти слова выполнив таску на Hadoop) Слова разделяются пробелами. Пунктуацию выкидывать. Слова считать ТОЛЬКО из больших букв и других символов (например "ИС-7") ИЛИ написанные латинскими буквами любого регистра (тоже могут содержать символы например "Pzkfg38").
Смотреть буду код. Вопросы тоже по мелкой модификации кода или по реализации.
Домашнее задание 4
Pig.
Реализовать задание Д/З N1 на скриптовом языке Pig. То есть загрузить данные и построить статистику упоминаний танков в сообщениях
Домашнее задание 5
Hivе/Hbase
Выбрать ту или иную технологию (обосновать выбор). Загрузить туда данные из Д/3 N2 и уметь собирать статистики данных (уметь писать запросы или код).
Примером –
Какой временной период более часа имеет наибольшую удельную ликвидность (оборот рынка за период/время)
Какой товар имеет наиболее стабильный спред за заданный период, при этом брать 90% интервал по объему ( то есть сортируем сделки по объему сделки (цена*кол-во) и выкидываем 5% сверху и снизу)
Какая пара товаров лучше всего продается вместе. То есть смотреть сделки на одной планете в +/- одно время. Всё перебирать можно но не обязательно. Предлагаю подумать как итеративно подойти к процессу.
(Хинт (из очевидного) – ракеты одного типа но разного наименования должны хорошо покупаться вместе итд)
P.S. спред = разница между средней ценой покупки и средней ценой продажи
Стабильность – маленькая дисперсия.
P.S. Как вы понимаете считать надо так – берем маленькие временные интервалы. Там суммируем сделки выкидывая по 5% сверху и снизу. Получаем массив вида ( временной интервал, средняя цена покупки, средняя цена продажи) Это будет наша выборка.
Считать как то по другому ИМХО неправильно, но не факт, я могу быть не прав. Если кто то докажет мне иное – я готов к обсуждению.
Список литературы
Ссылки
Recommender Systems - The Art and Science of Matching Items to Users