Введение в анализ текстов на Python для ФГН — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
Строка 16: Строка 16:
 
Почта курса: [http://lingvo-python-ml@yandex.ru lingvo-python-ml@yandex.ru]
 
Почта курса: [http://lingvo-python-ml@yandex.ru lingvo-python-ml@yandex.ru]
  
Чат курса в телеграм: [https://t.me/joinchat/C3XPaw39FpiCBNJKwmqw-g lingvo-python-ml]
+
Чат курса в телеграм: [https://t.me/joinchat/C3XPaw39FpiCBNJKwmqw-g LingvoX]
  
 
== 1 модуль ==
 
== 1 модуль ==

Версия 11:01, 28 июня 2018

Описание курса

О курсе

Курс читается на 3 курсе факультета гуманитарных наук для групп БКЛ151 и БКЛ152 в 1, 3 и 4 модулях.

Семинарист: Сергей Кабанов

Ассистенты: Алие Тефикова и Анастасия Родыгина

Семинары проходят по субботам, 3-я и 4-я пары, ауд. 509.

Просьба, по возможности, приходить со своими ноутбуками.

Полезные ссылки

Карточка курса и программа

Почта курса: lingvo-python-ml@yandex.ru

Чат курса в телеграм: LingvoX

1 модуль

Семинары

02.09.17 Ознакомительный семинар. Краткое описание курса. Повторение основ программирования на Python: функции и области видимости, встроенные типы данных, модули и пространство имен. Среда разработки IDLE PyCharm. Разработка через тестирование TDD (модули doctest, pytest). Стиль кодирования (PEP8). lab1 (решение Усти)

09.09.17 Введение в ООП-0. Абстракция данных, инкапсуляция, наследование, полиморфизм. Класс, объект. Конструктор и деструктор. Перегрузка операторов-0.

16.09.17 Продолжение ООП-1. Передача аргументов в функцию (args, kwargs). Перегрузка операторов-1. Итераторы и генераторы.

23.09.17 Замыкания. Декораторы.

30.09.17 Алгоритмы. RAM-модель. Сложность алгоритмов и нотация Big-O. Бинарный поиск. Задача сортировки массива: quick-sort, merge-sort, timsort.

30.09.17 Структуры данных. Ассоциативный массив. Хэш-таблицы. Обзор модуля collections.

07.10.17

14.10.17

14.10.17

21.10.17 Работа с Web. XML и HTML как деревья. Парсинг XML (модуль lxml).

28.10.17 Экзамен. Финальный тест. Последний срок сдачи финального проекта.

Правила оценивания

В модуле 10 семинаров.

10 домашних лабораторных работ стоимостью 10 баллов каждая.

Домашний мини-проект с ревью кода стоимостью 40 баллов.

Финальный тест в классе стоимостью 40 баллов.

По желанию: индивидуальное домашнее задание стоимостью 20 баллов.

Шкала перевода баллов в итоговую оценку представлена в таблице.

Итоговая оценка Суммарные баллы
Отлично (10) 140+
Отлично (9) 130+
Отлично (8) 120+
Хорошо (7) 100+
Хорошо (6) 90+
Удовлетворительно (5) 70+
Удовлетворительно (4) 60+
Незачет менее 60

Лабораторные работы отправлять на почту курса не позднее начала следующего семинара, если не оговорено иное. Правила формления: надо упаковать в архив все решения и тесты задач, решения называть solutionномер.py, архив назвать labномер-имя-фамилия-номер группы.rar, тема письма labномер-имя-фамилия-номер группы

Полезные литература и ссылки

  1. Лутц, Изучаем Python, 4-е издание, 2011
  2. Brad Miller, David Ranum, Problem Solving with Algorithms and Data Structures, Release 3.0, 2013
  3. Michael T. Goodrich, Data Structures and Algorithms in Python, 1st edition, 2013
  4. Т.Кормен, Ч.Лейзерсон, Р.Ривест, К.Штайн - Алгоритмы. Построение и анализ. Издание 3-е, 2013
  5. Умнов, Видиолекции ШАДа по Python
  6. PEP8, коротко, на русском
  7. Code Like a Pythonista: Idiomatic Python
  8. A Curious Course on Coroutines and Concurrency
  9. Python patterns OOP
  10. Awesome Python, Много разных библиотек

3 - 4 модули

Семинары

13.01.18 Ознакомительный семинар. Правила игры (правила оценивая курса). Постановки и примеры задач машинного обучения. Основные понятия. Задача классификации.

20.01.18 Метрические классификаторы-0. Метод ближайших соседей. Метрики качества: recall, precision, accuracy, f1-score. Скользящий контроль (k-fold CV).

27.01.18 Метрические классификаторы-1. Метод потенциальных функций. Метод окна Парзена.

03.02.18 Отбор признаков-0. Разбор 1-ой лабораторной работы. Метод Монте-Карло. Переборные алгоритмы отбора признаков: full search, add, del, add-del.

10.02.18 Линейный модели-0. Общий подход к построению линейных моделей. Линейная регрессия. Градиентный спуск.

17.02.18 Линейный модели-1. Логистическая регрессия. Метрики качества: roc-auc, pr-auc, log-loss.

24.02.18 Линейный модели-2. Переход в спрямляющее пространство. Метод опорных векторов. Kernel trick.

03.03.18 Векторные модели текста Разбор 2-ой лабораторной работы. Обзор векторных моделей текста. Расстояние между строками.

10.03.18 Байесовский классификатор Задача восстановления плотностей классов. Линейный дискриминант Фишера. Байесовский наивный классификатор.

17.03.18 Логические модели-0 Логические модели. Деревья решений.

24.03.18 Композиции моделей-0 Bias and variance tradeoff. Bootstrap aggregating. Случайный лес.

26.03.18 Композиции моделей-1 Разбор 3-ей и 4-ой лабораторных работ. Стекинг и блендинг моделей.

31.03.18 Отбор признаков-1 Статистические критерии. Регуляризация. Отбор на основе важности признаков.

07.03.18 Извлечение признаков Сингулярное разложение. Метод главных компонент.

14.04.18 Большие данные Визуализация больших данных. Алгоритм t-SNE. Разряженные матрицы. Библиотека Vowpal Wabbit.

21.04.18 Multi-label классификация Разбор 5-ой лабораторной работы. Методы решения multi label задач.

28.04.18 Композиции моделей-2 Градиентный бустинг.

07.05.18 Композиции моделей-2 xgboost vs. lightgbm vs. catboost

05.05.18 Разбор лаб. работ Разбор 6-ой и 7-ой лабораторных работ. Задача ранжирования поисковой выдачи.

12.05.18 Кластеризация-0 Постановка задач кластеризации. Алгоритмы: k-means, x-means, c-means, EM. Метрики качества.

19.05.18 Кластеризация-1 Алгоритмы: DBSCAN, спектральная кластеризация, графовые алгоритмы.

26.05.18 Полезные модули-0 Модули: hyperopt, scikit-optimize.

02.06.18 Полезные модули-1 Модули: scikit-multilearn, imbalanced-learn.

07.06.18 Разбор 8-ой лабораторной работы. Разбор финальных решений первого конкурса. Позные трюки при решении конкурсов.

14.06.18 Повторение пройденного Коллективный тест "Собеседование на позицию junior data scientist" :)

23.06.18 Экзамен Разбор финальных решений второго конкурса. Выставление оценок.

Правила оценивания

В 3 - 4 модулях ~20 семинаров.

~8 домашних лабораторных работ стоимостью 20 баллов каждая.

Конкурсное задание в конце 3-го модуля стоимостью 30 баллов.

Конкурсное задание в середине 4-го модуля стоимостью 30 баллов.

По желанию: в конце 4-го модуля можно будет увеличить оценку на 1 балл по десятибалльной шкале, доделав часть несданных лаб. работ.

Шкала перевода баллов в итоговую оценку представлена в таблице.

Итоговая оценка Суммарные баллы
Отлично (10) 160+
Отлично (9) 150+
Отлично (8) 140+
Хорошо (7) 120+
Хорошо (6) 110+
Удовлетворительно (5) 90+
Удовлетворительно (4) 70+
Незачет менее 70

Полезные литература и ссылки

  1. 28 jupyter-notebook tips and tricks
  2. Видеолекции Воронцова от ШАД
  3. Seabor vizualization tutorial
  4. 100 страничная брошюра кратко описывающая принципы работы с основные библиотеками курса (numpy, pandas, scipy, sklearn, nltk etc)