IIS_2023_1/malkova_anastasia_lab_4/README.md

84 lines
4.4 KiB
Markdown
Raw Normal View History

2023-11-16 22:21:04 +04:00
# Лабораторная работа №4
> Кластеризация
### Как запустить лабораторную работу
1. Установить python, numpy, sklearn, matplotlib, plotly
2. Запустить команду `python tnse.py` в корне проекта
### Использованные технологии
* Язык программирования `python`
* Библиотеки `numpy, sklearn, matplotlib, plotly`
* Среда разработки `PyCharm`
### Что делает программа?
Цель программы: кластеризовать ценовые диапазоны автомобилей на вторичном рынке.
Используя метод кластеризации t-SNE, происходит обучение, оценка и вывод результатов кластеризации в виде графика.
Так как метод визуальный, то оценка будет проводится субъективно
по критериям общего цвета и отдалённости кластеров друг от друга.
#### Эксперимент
Текущие параметры:
- mileage
- year
- price
##### TSNE(learning_rate=100)
На размере данных в 1000 строк
![1 эксперимент на небольшом кол-ве данных](exp1_small.png)
На размере данных в 15000 строк
![1 эксперимент на большом кол-ве данных](exp1.png)
##### TSNE(learning_rate=200, perplexity=50, early_exaggeration=6)
early_exaggeration - определяет, насколько плотными будут естественные кластеры исходного пространстве
во вложенном пространстве и сколько места будет между ними. (12 по умолчанию)
На размере данных в 1000 строк
![2 эксперимент на небольшом кол-ве данных](exp2_small.png)
На размере данных в 15000 строк
![2 эксперимент на большом кол-ве данных](exp2.png)
##### TSNE(learning_rate=200, perplexity=50, early_exaggeration=6, angle=0.1)
angle - Используется только если метод='barnes_hut'
Это компромисс между скоростью и точностью в случае T-SNE с применением алгоритма Барнса-Хата. (0.5 по умолчанию)
На размере данных в 1000 строк
![3 эксперимент на небольшом кол-ве данных](exp3_small.png)
На размере данных в 15000 строк
![3 эксперимент на большом кол-ве данных](exp3.png)
**Выводы:**
Чем больше данных, тем лучше алгоритм выделяет кластеры.
Настроив параметры алгоритма удалось достичь улучшения результата,
но качество все равно можно считать неполностью удовлетворительным, так как кластеры выделяются с заметным уровнем шума.
Другие методы кластеризации справляются лучше, если провести дополнительный эксперимент,
то можно четко выделить ценовые диапазоны, например:
Ценовые диапазоны по пробегу
![дополнительный эксперимент 1](exp1_addi.png)
Ценовые диапазоны по году выпуска
![дополнительный эксперимент 2](exp2_addi.png)
В данных примерах можно особенно точно проследить зависимость между параметрами
#### Итоговые выводы
Алгоритм t-SNE визуальный и точность определяется восприятием графика. Поэтому использовать его лучше только в целях визуализации.
Для данной задачи алгоритм не подходит, так как решает её недостаточно качественно.