Giter Club home page Giter Club logo

technosphere's Introduction

Домашние задания по курсам Техносферы@Mail.Ru

Семестр 1

Курс "Алгоритмы интеллектуальной обработки больших данных"

Программа курса на сайте Техносферы@Mail.Ru

data_mining_1/

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

K-Means

hw1-kmeans/ (С вариациями K-Means++ и MiniBatchKMeans) Проверка на описаяних интересов профилей студентов (даны ключевые слова, указанные в интересах профилей facebook)

DBCSAN

hw2-clusters/ Проверка на данных Всемирного банка по странам

Дерево решений

hw3-tree/ Проверка на задаче кредитного скоринга

Логистическая регрессия (обучение с L2 регуляризацией с помощью метода Mini Batch Stochastic Gradient Descent)

hw4-lin-model/ (с выводом правила обновлния весов) Проверка: предсказание исхода раунда в Hearthstone

SVM

hw5-svm/ Проверка на частях текста "Войны и мира" на 2 языках (нужно использовать для определения языка SVM с ядром, зависящим от расстояния Левенштейна)

Курс "Введение в анализ данных"

Программа курса на сайте Техносферы@Mail.Ru

intro/

Список домашних заданий

ДЗ 1 (сбор данных, визуализация)

hw1_kuznetsova.ipynb

Выкачать с помощью API ВК места, где совершаются чекины; нанести точки на карту (folium); построить графики с распределением по типам объектов и т. д. (matplotlib)

ДЗ 2 (ускорение Python)

hw2_kuznetsova.ipynb

Реализации K-Means c помощью:

  • numpy
  • Cython

ДЗ 3 (предсказание рейтинга выходящих скоро фильмов на кинопоиске)

flask/

СР по bash

bash_scripts/

Сравнить скорость выполнения задач с помощью чистого python. pandas и bash:
  1. У вас есть файлы лога с полями timestamp, IP, method (GET/POST). Поля разделены табуляциями '\t'. Имена файлов - logs_%Y-%m-%d__%h.tsv.
$ ls /logs/
...
logs_2017-10-31-08.tsv
logs_2017-10-31-09.tsv
logs_2017-10-31-10.tsv
logs_2017-10-31-11.tsv
logs_2017-10-31-12.tsv
...

Ваша задача - вывести топ-10 самых частых IP, которые выполняли метод GET с 10 до 17 часов 2017-10-31

  1. Найти список всех файлов с расширением tsv, размер которых превышает 10 мб и запустить архивацию в фоновом режиме

  2. В директории /data_for_cool_science/ лежат файлы следующуего формата: целевой класс, табуляция, список английский слов через запятую. Ваша задача, найти уникальные слова для класса bad, которые содержатся в трёх самых больших файлах. Помните, DOG и dog - одно и то же слово

Курс "Углубленное программирование на C/C++"

Программа курса на сайте Техносферы@Mail.Ru

cpp/

Список домашних заданий Копия папки `Kuznetsova/` из [репозитория курса](https://github.com/mtrempoltsev/msu_cpp_autumn_2017)

ДЗ 2 (калькулятор рекурсивным спуском)

02/ Используя метод рекурсивного спуска, написать простой калькулятор. Следует использовать функции, классы и переменные разделяемые между функциями использовать нельзя. Поддерживаемые операции: умножение, деление, сложение, вычитание, унарный минус.

ДЗ 3 (рефакторинг калькулятора (использование классов; скобки и константы в грамматике))

03/ Рефакторим калькулятор!

Делаем класс, теперь вместо передачи результата через функции можно использовать поля класса Добавляем скобки ( ) Добавляем константы, например Pi

ДЗ 4 (перегрузка операторов)

04/ Нужно написать класс-матрицу, тип элементов double. В конструкторе задается количество рядов и строк. Поддерживаются оперции: получить количество строк/столбцов, получить конкретный элемент, умножить на вектор (в качестве вектора использовать класс std::vector), умножить на число, сравнение на равенство/неравенство.

Чтобы реализовать семантику [][] понадобится прокси-класс. Оператор матрицы возращает другой класс, в котором тоже используется оператор [] и уже этот класс возвращает значение.

ДЗ 5 (шаблоны, перемещение)

05/ Написать для класса матрицы из предыдущей работы конструкторы и операторы копирования и перемещения. Сделать класс шаблонным.

ДЗ 6 (шаблоны свойств, классы стратегий)

06/ Берем уже сделанный калькулятор, делаем из него шаблон. Пишем свойства для типов int, long, double (std::numeric_limits в помощь). Пишем стратегию parse, которая из строки делает число и проверяет, что оно в допустимых пределах. Собираем все вместе, теперь калькулятор должен уметь работать с int, long, double и проверять, что в выражениях числа не больше размера используемого типа (в качестве ошибки достаточно написать в консоль сообщение).

ДЗ 7 (обработка ошибок, умные указатели)

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

ДЗ 8 (STL, контейнеры)

08/ Написать свой контейнер Vector, аналогичный std::vector и итератор для него. Из поддерживаемых методов достаточно operator[], push_back, pop_back, empty, size, clear, begin, end, rbegin, rend, resize.

ДЗ 9 (STL)

09/ Программе через аргументы командной строки передают два имени файлов. Первое имя - текстовый файл в котором слова разделены пробелами, его надо прочесть, составить частотный словарь "слово" - "сколько раз встречается". После этого надо отсортировать словарь по частоте и вывести во второй файл (его имя - второй аргумент).

ДЗ 10 (multithreading)

10/ Классическая задача.

Два потока по очереди выводят в консоль сообщение. Первый выводит ping, второй выводит pong.

Вывод: ping pong ping pong ping pong …

Семестр 2

Курс "Нейронные сети в машинном обучении"

Программа курса на сайте Техносферы@Mail.Ru

Репозиторий с курсовым проектом (сегментация для стикеров в телеграме)

Курс "Информационный поиск. Часть 1"

Программа курса на сайте Техносферы@Mail.Ru

information_retrieval_1/

Список домашних заданий

ДЗ 1 (фокусировка поискового робота)

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

ДЗ 2 (булев поиск)git

hw2_index/ Создание поискового индекса (со сжатием последовательности документов, соотвествующей терму), и разбор булевых запросов с поиском по индексу.

ДЗ 3 (поиск дубликатов)

hw3_duplicates/ Дубликаты ищутся алгоритмом Бродера (сравниваются хэшированные шинглы - идущие внахлест подпоследовательности)

ДЗ 5 (детектирование концов предложений)

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

ДЗ 6 (исправление опечаток)

hw6_spellchecker/ В этой домашней работе нужно разработать систему исправления опечаток. Компоненты системы: модель языка, модель ошибок, генератор исправлений с помощью нечеткого поиска в бора, итерации, разные типы исправлений: словарные, split, join и раскладка

Курс "Многопоточное программирование на языке программирования С/С++"

Программа курса на сайте Техносферы@Mail.Ru

Форк репозитория курса

Список домашних заданий

Контейнеры

src/storage/ Написать реализацию интерфейса хранилища для кэша, используя любой ассоциативный контейнер из C++11. Хранилище должно реализовывать LRU логику для вытеснения, т.е удалять самый не используемый элемент.

Блокирующий ввод-вывод

src/network/blocking/ Задача в том, чтобы реализовать общение по memcached протоколу (сервер на блокирующем API).

Ожидаемое поведение:

[user@domain build] ./src/afina --network mt_block --storage mt_lru

Запустит приложение, к которому можно подсоединиться по порту 8080. Теперь туда можно отправлять команды на исполнение (выполнять действия над хранилищем).

[user@domain build] echo -n -e "set foo 0 0 6\r\nfooval\r\n" | nc localhost 8080

Асинхронный ввод-вывод

src/network/nonblocking/ Написать реализацию однопоточного асинхронного сервера.

Кооперативная многозадачность

src/coroutine/ Цель задания - написать движок для выполнения функций в режиме кооперативной многозадачности. Программа минимум - научиться переключаться между 2 функция во время их выполнения в рамках одного потока. (Реализовать переключение между функциями через управление слепком регистров)

Семестр 3

Курс "Методы распределенной обработки больших объемов данных в Hadoop"

Программа курса на сайте Техносферы@Mail.Ru

hadoop/

Список домашних заданий

InputFormat

inputformat/ Имеется дамп страниц новостного сайта. Ваша задача - реализовав собственный InputFormat, посчитать, в скольких документах встречается каждое слово. Реальное применение задачи - подсчет IDF по новостному корпусу.

Формат входных данных: сжатые с помощью deflate страницы находятся в файле .pkz. Как вы помните из лекции, такие файлы не разделяются, т.к. deflate не имеет зарезервированных последовательностей. Поэтому, отдельно расположен файл .pkz.idx, представляющий из себя размеры каждой записи [int, 4 байта].

SEO (композитный ключ)

hw2-clusters/ Вам даны пары <запрос, URL>, вам необходимо найти лучший запрос к каждому хосту. Напомню что, хост эта часть схемы URL: протокол://хост[:порт]/путь?параметры. Напомню, Hadoop не сортирует значения, и для решения "в лоб" нам необходимо держать все запросы соответствующие данному хосту в памяти. И разнообразие запросов к определенным хостам, таким как ru.wikipedia.org или otvet.mail.ru может сделать это проблемным. Поэтому необходимо использовать композитный ключ.

Курс "Дополнительные главы машинного обучения"

Программа курса на сайте Техносферы@Mail.Ru

data_mining_3/

Список домашних заданий

iGBRT

igbrt/ Первое домашнее задание посвящено реализации алгоритмов обучения для композиций моделей. Реализация алгоритма iGBRT с квадратичной фунцией потерь.

Активное обучение

active/ Имеется неизвестная 10-мерная функция, с областью определения [0, 10] по всем координам, значения которой могут быть получены по индивидуальной внешней ссылке. Вам необходимо использовать данную ссылку для набора обучающих данных. (Используется подход query by comittee)

ImplicitALS (рекомендательные системы: факторизация матриц)

ials/ В третьем домашнем задании вам требуется реализовать алгоритм Implicit ALS для обучения модели matrix factorization.

technosphere's People

Contributors

vengodelsur avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.