Введение в анализ текстов на Python для ФГН
Содержание
[убрать]Описание курса
О курсе
Курс читается на 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).
09.09.17 Введение в ООП-0 Абстракция данных, инкапсуляция, наследование, полиморфизм. Класс, объект. Конструктор и деструктор. Перегрузка операторов-0.
16.09.17 Продолжение ООП-1 Передача аргументов в функцию (args, kwargs). Перегрузка операторов-1. Итераторы и генераторы.
23.09.17 Замыкания Декораторы.
30.09.17 Алгоритмы-0 RAM-модель. Сложность алгоритмов и нотация Big-O. Бинарный поиск. Задача сортировки массива: quick-sort, merge-sort, timsort.
30.09.17 Структуры данных Ассоциативный массив. Хэш-таблицы. Обзор модуля collections.
07.10.17 Алгоритмы-1 Графовые алгоритмы: Дейкстры, Прима, Крускала. Обзор модуля networkx.
14.10.17 Продолжение ООП-2 Метапрограммирование. Паттерны проектирования. Модуль abc.
14.10.17 Работа с Web XML и HTML как деревья. Парсинг XML (модуль lxml).
21.10.17 Обзор полезных модулей Некоторые полезные модули.
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номер-имя-фамилия-номер группы
Полезные литература и ссылки
- Лутц, Изучаем Python, 4-е издание, 2011
- Brad Miller, David Ranum, Problem Solving with Algorithms and Data Structures, Release 3.0, 2013
- Michael T. Goodrich, Data Structures and Algorithms in Python, 1st edition, 2013
- Т.Кормен, Ч.Лейзерсон, Р.Ривест, К.Штайн - Алгоритмы. Построение и анализ. Издание 3-е, 2013
- Умнов, Видиолекции ШАДа по Python
- PEP8, коротко, на русском
- Code Like a Pythonista: Idiomatic Python
- A Curious Course on Coroutines and Concurrency
- Python patterns OOP
- 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 |