lec07, lab03
Этот коммит содержится в:
11
README.md
11
README.md
@@ -45,4 +45,15 @@
|
|||||||
* [Методические указания](labs/OATD_LR2_metod.ipynb)
|
* [Методические указания](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)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
165
labs/OATD_LR3.md
165
labs/OATD_LR3.md
@@ -1,82 +1,83 @@
|
|||||||
# Лабораторная работа №3. Классификация текстовых данных
|
# Лабораторная работа №3. Классификация текстовых данных
|
||||||
|
|
||||||
## Цель работы
|
## Цель работы
|
||||||
|
|
||||||
Получить практические навыки решения задачи классификации текстовых данных в среде Jupiter Notebook.
|
Получить практические навыки решения задачи классификации текстовых данных в среде Jupiter Notebook.
|
||||||
Научиться проводить предварительную обработку текстовых данных, настраивать параметры методов классификации и обучать модели, оценивать точность полученных моделей
|
Научиться проводить предварительную обработку текстовых данных, настраивать параметры методов классификации и обучать модели, оценивать точность полученных моделей
|
||||||
|
|
||||||
## Задание
|
## Задание
|
||||||
|
|
||||||
1. Загрузить выборки по варианту из лабораторной работы №2. Стемминг проводить не нужно.
|
1. Загрузить выборки по варианту из лабораторной работы №2. Стемминг проводить не нужно.
|
||||||
2. Используя GridSearchCV произвести предварительную обработку данных и настройку методов классификации в соответствие с заданием,
|
2. Используя GridSearchCV произвести предварительную обработку данных и настройку методов классификации в соответствие с заданием,
|
||||||
вывести оптимальные значения параметров и результаты классификации модели (полнота, точность, f1-мера и аккуратности) с данными параметрами.
|
вывести оптимальные значения параметров и качество классификации модели (f1-мера) с данными параметрами.
|
||||||
3. Перевести выборку к векторному представлению word embedding согласно варианту.
|
3. Перевести выборку к векторному представлению word embedding согласно варианту.
|
||||||
4. Провести обучение и настройку тех же алгоритмов классификации и с теми же параметрами, что и в п.2, но на векторизованной выборке
|
4. Провести обучение и настройку тех же алгоритмов классификации и с теми же параметрами, что и в п.2, но на векторизованной выборке
|
||||||
5. По каждому пункту работы занести в отчет программный код и результат вывода.
|
5. По каждому пункту работы занести в отчет программный код и результат вывода.
|
||||||
6. Оформить сравнительную таблицу с результатами классификации различными методами с разными настройками.
|
6. Оформить сравнительную таблицу с результатами классификации различными методами с разными настройками.
|
||||||
Сделать выводы о наиболее подходящем методе классификации ваших данных с указанием параметров метода и описанием предварительной обработки данных.
|
Сделать выводы о наиболее подходящем методе классификации ваших данных с указанием параметров метода и описанием предварительной обработки данных.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Варианты заданий
|
## Варианты заданий
|
||||||
|
|
||||||
| Вариант | Метод | Word embedding |
|
| Вариант | Метод | Word embedding |
|
||||||
| :--- | :--- | :--- |
|
| :--- | :--- | :--- |
|
||||||
| 1 | KNN, SVM | glove-wiki-gigaword-100 |
|
| 1 | KNN, SVM | glove-wiki-gigaword-50 |
|
||||||
| 2 | RF, MNB | glove-wiki-gigaword-50
|
| 2 | RF, MNB | glove-wiki-gigaword-100
|
||||||
| 3 | KNN, DT | glove-wiki-gigaword-200 |
|
| 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 |
|
| 5 | LR, MNB | word2vec-google-news-300 |
|
||||||
| 6 | DT, LR | glove-wiki-gigaword-200 |
|
| 6 | DT, LR | glove-wiki-gigaword-200 |
|
||||||
| 7 | RF, SVM | glove-twitter-100 |
|
| 7 | RF, SVM | glove-twitter-100 |
|
||||||
| 8 | SVM, DT | glove-twitter-200 |
|
| 8 | SVM, DT | glove-twitter-200 |
|
||||||
| 9 | RF, SVM | glove-twitter-100 |
|
| 9 | RF, SVM | glove-twitter-100 |
|
||||||
| 10 | MNB, SVM | glove-twitter-25 |
|
| 10 | MNB, SVM | glove-twitter-25 |
|
||||||
| 11 | MNB, DT | word2vec-google-news-300 |
|
| 11 | MNB, DT | word2vec-google-news-300 |
|
||||||
| 12 | RF, LR | glove-twitter-50 |
|
| 12 | RF, LR | glove-twitter-50 |
|
||||||
|
|
||||||
## Параметры, которые необходимо настроить
|
## Параметры, которые необходимо настроить
|
||||||
|
|
||||||
Помимо параметров предварительной обработки, таких как: взвешивание, отсечение стоп-слов,
|
Помимо параметров предварительной обработки, таких как: взвешивание, отсечение стоп-слов,
|
||||||
количество информативных терминов, для каждого метода классификации необходимо настроить следующие параметры:
|
количество информативных терминов, для каждого метода классификации необходимо настроить следующие параметры:
|
||||||
**К-ближайших соседей (KNN):**
|
**К-ближайших соседей (KNN):**
|
||||||
|
|
||||||
* количество ближайших соседей,
|
* количество ближайших соседей,
|
||||||
* метрика (евклидова, косинусная)
|
* метрика (евклидова, косинусная)
|
||||||
|
|
||||||
|
|
||||||
**Дерево решений (DT):**
|
**Дерево решений (DT):**
|
||||||
|
|
||||||
* критерий (параметр criterion: ‘gini’, ‘entropy’),
|
* критерий (параметр criterion: ‘gini’, ‘entropy’),
|
||||||
* глубина дерева (параметр max_depth: {5, 15, 50, 100}).
|
* глубина дерева (параметр max_depth: {5, 15, 50, 100}).
|
||||||
|
|
||||||
**Случайный лес (RF):**
|
**Случайный лес (RF):**
|
||||||
|
|
||||||
* количество деревьев решений (параметр n_estimators: {5, 30, 100}),
|
* количество деревьев решений (параметр n_estimators: {5, 30, 100}),
|
||||||
* критерий (параметр criterion: ‘gini’, ‘entropy’),
|
* критерий (параметр criterion: ‘gini’, ‘entropy’),
|
||||||
* глубина дерева (параметр max_depth: {5, 15, 50}).
|
* глубина дерева (параметр max_depth: {5, 15, 50}).
|
||||||
|
|
||||||
**Логистическая регрессия (LR):**
|
**Логистическая регрессия (LR):**
|
||||||
|
|
||||||
* метод нахождения экстремума (параметр solver: ‘newton-cg’, ‘lbfgs’, ‘sag’, ‘liblinear’),
|
* метод нахождения экстремума (параметр solver: ‘newton-cg’, ‘lbfgs’, ‘sag’, ‘liblinear’),
|
||||||
* регуляризация (параметр penalty: ‘L1’, ‘L2’)
|
* регуляризация (параметр penalty: ‘L1’, ‘L2’)
|
||||||
Обратить внимание, что разные виды регуляризации работают с разными методами нахождения экстремума.
|
Обратить внимание, что разные виды регуляризации работают с разными методами нахождения экстремума.
|
||||||
|
Предлагается сначала настроить модель для одного из типом регулязиации, затем для другого, и выбрать лучшую модель из двух.
|
||||||
**Метод опорных векторов (SVM):**
|
|
||||||
* функция потерь (параметр kernel: ‘linear’, ‘rbf’),
|
**Метод опорных векторов (SVM):**
|
||||||
* регуляризация (параметр C: {0.1, 1, 5})
|
* функция потерь (параметр kernel: ‘linear’, ‘rbf’),
|
||||||
Обратить внимание, что разные виды регуляризации работают с разными функциями потерь
|
* коэффициент регуляризации (параметр C: {0.1, 1, 5})
|
||||||
|
|
||||||
**Мультиномиальный Наивный Байесовский метод (MNB)**
|
|
||||||
* параметр сглаживания α (параметр alpha: {0.1, 1, 2})
|
**Мультиномиальный Наивный Байесовский метод (MNB)**
|
||||||
|
* параметр сглаживания α (параметр alpha: {0.1, 1, 2})
|
||||||
## Контрольные вопросы
|
|
||||||
|
## Контрольные вопросы
|
||||||
1. Алгоритм и особенности метода опорных векторов.
|
|
||||||
2. Алгоритм и особенности метода логистической регрессии.
|
1. Алгоритм и особенности метода опорных векторов.
|
||||||
3. Алгоритм и особенности метода деревьев решений.
|
2. Алгоритм и особенности метода логистической регрессии.
|
||||||
4. Что такое регуляризация?
|
3. Алгоритм и особенности метода деревьев решений.
|
||||||
5. Что такое метрика расстояния? Какие метрики вам известны?
|
4. Что такое регуляризация?
|
||||||
|
5. Что такое метрика расстояния? Какие метрики вам известны?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -99,7 +99,7 @@
|
|||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": [
|
||||||
"Далее необходимо создать объект класса `GridSearchCV`, передав в него объект `pipeline` или классификатор, список параметров сетки, а также при необходимости, задав прочие параметры, такие так количество задействованых ядер процессора `n_jobs`, количество фолдов кросс-валидации `cv` и другие"
|
"Далее необходимо создать объект класса `GridSearchCV`, передав в него объект `pipeline` или классификатор, список параметров сетки, а также при необходимости, задав прочие параметры, такие так количество задействованых ядер процессора `n_jobs`, количество фолдов кросс-валидации `cv`, метрику, по которой будем судить о качестве модели `scoring`, и другие"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -108,7 +108,7 @@
|
|||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"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')"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
Двоичные данные
lections/OATD_lec_7.pdf
Двоичные данные
lections/OATD_lec_7.pdf
Двоичный файл не отображается.
Двоичные данные
lections/OATD_lec_7.pptx
Двоичные данные
lections/OATD_lec_7.pptx
Двоичный файл не отображается.
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Ссылка в новой задаче
Block a user