Mokhov Andrey 2 месяцев назад
Родитель 1d578bcc3d 9537bd2afd
Сommit 062442a40c

@ -2,7 +2,7 @@
## Лекции
| Дата | Лекция |
| Дата |Лекция |
|:----------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 13.02.2024 | [Вводная лекция](lections/OATD_lec_1.pdf) [pptx](lections/OATD_lec_1.pptx) |
| 20.02.2024 | [Клаcсификация данных. Основные понятия](lections/OATD_lec_2.pdf) [pptx](lections/OATD_lec_2.pptx) |
@ -12,14 +12,21 @@
| 19.03.2024 | [Ансамблевые методы классификации](lections/OATD_lec_6.pdf) [pptx](lections/OATD_lec_6.pptx) |
| 26.03.2024 | [Кластеризация данных](lections/OATD_lec_7.pdf) [pptx](lections/OATD_lec_7.pptx) |
| 02.04.2024 | Кластеризация данных (продожение) |
| 09.04.2024 | [Нейронные сети в задаче анализа данных](lections/OATD_lec_8.pdf) [pptx](lections/OATD_lec_8.pptx) |
| 16.04.2024 | [Сверточные нейронные сети](lections/OATD_lec_9.pdf) [pptx](lections/OATD_lec_9.pptx) <br /> [Рекуррентные нейронные сети](lections/OATD_lec_10.pdf) [pptx](lections/OATD_lec_10.pptx) |
| 23.04.2024 | [Решение задач выявления плагиата](lections/OATD_lec_11.pdf) [pptx](lections/OATD_lec_11.pptx) |
| 23.04.2024 | [Решение задач выявления плагиата](lections/OATD_lec_11.pdf) [pptx](lections/OATD_lec_11.pptx) |
| 30.04.2024 | Лекция |
| 06.04.2024 | [Нейронные сети в задаче анализа данных](lections/OATD_lec_8.pdf) [pptx](lections/OATD_lec_8.pptx) |
| 06.04.2024 | [Сверточные нейронные сети](lections/OATD_lec_9.pdf) [pptx](lections/OATD_lec_9.pptx) <br /> [Рекуррентные нейронные сети](lections/OATD_lec_10.pdf) [pptx](lections/OATD_lec_10.pptx) |
| 09.04.2024 | [Трансформеры](lections/OATD_lec_12.pdf) [pptx](lections/OATD_lec_12.pptx) |
| 16.04.2024 | [Решение задач выявления плагиата](lections/OATD_lec_11.pdf) [pptx](lections/OATD_lec_11.pptx) | |
## [Журнал группы](https://docs.google.com/spreadsheets/d/1zqJdQO_HKVQjHRK1knrDeaT2SGrptDQ38FjlflW-Rn8/edit#gid=1516016995)
## Экзамен
* Консультация 20.05 в 9:20, аудитория М307.
* Экзамен 21.05 в 9:20 М-200з
* [Программа экзамена](assets/TDA_exam_program.docx)
* [Задачи к экзамену](assets/TDA_exam_tasks.docx)
## Лабораторные работы
### Лабораторная работа №1
@ -45,4 +52,24 @@
* [Методические указания](labs/OATD_LR2_metod.ipynb)
### Лабораторная работа №3
| Группа | Дата |
|:--------|:----------:|
| А-01-20 | 09.04.2024 |
| А-03-20 | 16.04.2024 |
* [Задание](labs/OATD_LR3.md)
* [Методические указания](labs/OATD_LR3_metod.ipynb)
### Лабораторная работа №4
| Группа | Дата |
|:--------|:----------:|
| А-01-20 | 09.04.2024 |
| А-03-20 | 16.04.2024 |
* [Задание](labs/OATD_LR4.ipynb)

Двоичные данные
assets/TDA_exam_program.docx

Двоичный файл не отображается.

@ -2,7 +2,7 @@
## Локально
Скачать и установить python (рекомендуется версия 3.9) https://www.python.org/downloads/, не забыв поставить галочку Add to PATH на самом первом экране
Скачать и установить python (рекомендуется версия 3.10) https://www.python.org/downloads/, не забыв поставить галочку Add to PATH на самом первом экране
![Установка python](install_py.png)
@ -11,14 +11,23 @@
```
python -m pip install --upgrade pip
python -m pip install notebook
python -m pip install sklearn
python -m pip install scikit-learn
python -m pip install matplotlib
```
Готово. Запускать Jupyter можно из командной строки командой `jupyter notebook`. Рабочей папкой будет та, из которой данная команда была выполнена.
## VS Code
Jupyter поддерживают некоторые распространенные IDE, в том числе [VS Code](https://code.visualstudio.com/). Поддержка нативная, однако рекомендуется установить расширение (extension) "Jupyter".
После создания нового файла с расширением `.ipynb` необходимо выбрать интерпретатор Python. При этом, рекомендуется работать в виртуальном окружении [виртуальном окружении (venv)](https://docs.python.org/3/library/venv.html).
Более подробная [инструкция](https://code.visualstudio.com/docs/datascience/jupyter-notebooks)
## Онлайн
[Онлайн версия Jupyter Notebook](https://mybinder.org/v2/gh/jupyterlab/jupyterlab-demo/HEAD?urlpath=lab/tree/demo) - может использоваться как временная замена локальной установке.
Допустимо вместо локальной установки Jupyter использовать [Google colab](https://colab.research.google.com/?hl=ru)
Допустимо вместо локальной установки Jupyter использовать [Google colab](https://colab.research.google.com/?hl=ru)

@ -26,7 +26,7 @@
* Метод к-ближайших соседей (`n_neighbors` = {1, 3, 9})
* Наивный байесовский метод
* Случайный лес (`n_estimators` = {5, 15, 50})
* Случайный лес (`n_estimators` = {5, 15, 50}, `random_state`=42)
9. По результатам п.8 занести в отчет таблицу с результатами классификации всеми методами.
10. Изучить, как изменится качество классификации в случае другого разбиения выборки на обучающую и тестовую. Для этого повторить пункты 6, передав в параметр `random_state` новое значение, и пункты 8-9 дважды.

@ -9,7 +9,7 @@
1. Загрузить выборки по варианту из лабораторной работы №2. Стемминг проводить не нужно.
2. Используя GridSearchCV произвести предварительную обработку данных и настройку методов классификации в соответствие с заданием,
вывести оптимальные значения параметров и результаты классификации модели (полнота, точность, f1-мера и аккуратности) с данными параметрами.
вывести оптимальные значения параметров и качество классификации модели (взвешенная f1-мера) с данными параметрами.
3. Перевести выборку к векторному представлению word embedding согласно варианту.
4. Провести обучение и настройку тех же алгоритмов классификации и с теми же параметрами, что и в п.2, но на векторизованной выборке
5. По каждому пункту работы занести в отчет программный код и результат вывода.
@ -22,10 +22,10 @@
| Вариант | Метод | Word embedding |
| :--- | :--- | :--- |
| 1 | KNN, SVM | glove-wiki-gigaword-100 |
| 2 | RF, MNB | glove-wiki-gigaword-50
| 1 | KNN, SVM | glove-wiki-gigaword-50 |
| 2 | RF, MNB | glove-wiki-gigaword-100
| 3 | KNN, DT | glove-wiki-gigaword-200 |
| 4 | RF, KNN | glove-wiki-gigaword-25 |
| 4 | RF, KNN | glove-wiki-gigaword-300 |
| 5 | LR, MNB | word2vec-google-news-300 |
| 6 | DT, LR | glove-wiki-gigaword-200 |
| 7 | RF, SVM | glove-twitter-100 |
@ -60,12 +60,13 @@
* метод нахождения экстремума (параметр solver: newton-cg, lbfgs, sag, liblinear),
* регуляризация (параметр penalty: L1, L2)
Обратить внимание, что разные виды регуляризации работают с разными методами нахождения экстремума.
Обратить внимание, что разные виды регуляризации работают с разными методами нахождения экстремума.
Предлагается сначала настроить модель для одного из типом регулязиации, затем для другого, и выбрать лучшую модель из двух.
**Метод опорных векторов (SVM):**
* функция потерь (параметр kernel: linear, rbf),
* регуляризация (параметр C: {0.1, 1, 5})
Обратить внимание, что разные виды регуляризации работают с разными функциями потерь
* коэффициент регуляризации (параметр C: {0.1, 1, 5})
**Мультиномиальный Наивный Байесовский метод (MNB)**
* параметр сглаживания α (параметр alpha: {0.1, 1, 2})

@ -99,7 +99,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Далее необходимо создать объект класса `GridSearchCV`, передав в него объект `pipeline` или классификатор, список параметров сетки, а также при необходимости, задав прочие параметры, такие так количество задействованых ядер процессора `n_jobs`, количество фолдов кросс-валидации `cv` и другие"
"Далее необходимо создать объект класса `GridSearchCV`, передав в него объект `pipeline` или классификатор, список параметров сетки, а также при необходимости, задав прочие параметры, такие так количество задействованых ядер процессора `n_jobs`, количество фолдов кросс-валидации `cv`, метрику, по которой будем судить о качестве модели `scoring`, и другие"
]
},
{
@ -108,7 +108,7 @@
"metadata": {},
"outputs": [],
"source": [
"gs_clf = GridSearchCV(text_clf, parameters, n_jobs=-1, cv=3)"
"gs_clf = GridSearchCV(text_clf, parameters, n_jobs=-1, cv=3, scoring = 'f1_weighted')"
]
},
{

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

@ -1,46 +0,0 @@
# Лабораторная работа №4. Использование нейронных сетей для генерации текста
## Цель работы
Получить практические навыки решения задачи генерации текста.
## Задание
1. Загрузить выборку стихотворений одного из поэтов в соответствии с вариантом.
2. Познакомиться с данными. Проанализировать статистические характеристики исходных данных (среднюю длину стихотворения, среднюю длину строки).
3. Подготовить выборку для обучения.
4. Построить нейронную сеть. Тип ячейки RNN выбрать в соответствии с вариантом.
5. Обучить нейронную сеть на разных количествах эпох (5, 15, 30, 50, 70) при зафиксированных параметрах embedding_dim = 256, rnn_units = 300, T = 0.3 и сравнить результаты генерации (тексты), перплексию и статистические характеристики сгенерированных текстов. Выбрать оптимальное количество эпох
7. Изменяя параметр температуры T проанализировать изменения сгенерированного текста. Выбрать оптимальное значение параметра.
8. Проанализировать зависимость перплексии, скорости обучения, результатов генерации от параметров нейронной сети embedding_dim, rnn_units:
embedding_dim = {vocab/4, vocab/2, vocab, vocab * 2, vocab * 4}, где vocab = размер словаря выборки.
rnn_units = {10, 100, 300, 500}
## Указания
Для работы рекомендуется вместо Jupyter Notebook использовать [Google Colab](https://colab.research.google.com/) и среду с GPU для ускорения расчетов. Для установки среды, использующей GPU в Google Colab нужно
выбрать пункт меню "Среда выполнения" -> "Сменить среду выполнения" -> выбрать аппаратный ускоритель "GPU".
## Варианты заданий
### Поэт
Четные номера по журналу - Пушкин, нечетные - Маяковский.
### Тип ячейки RNN
Остаток от деления номера по журналу на 3:
* 0 - https://keras.io/api/layers/recurrent_layers/simple_rnn/
* 1 - https://keras.io/api/layers/recurrent_layers/lstm/
* 2 - https://keras.io/api/layers/recurrent_layers/gru/
## Контрольные вопросы
1. В чем особенность рекуррентных нейронных сетей?
2. Типы рекуррентных сетей - обычная RNN
3. Типы рекуррентных сетей - LSTM
4. Типы рекуррентных сетей - GRU
5. Что такое и как вычисляется перплексия

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Двоичные данные
lections/OATD_lec_12.pdf

Двоичный файл не отображается.

Двоичные данные
lections/OATD_lec_12.pptx

Двоичный файл не отображается.

Двоичные данные
lections/OATD_lec_7.pdf

Двоичный файл не отображается.

Двоичные данные
lections/OATD_lec_7.pptx

Двоичный файл не отображается.

Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Загрузка…
Отмена
Сохранить