84 lines
4.4 KiB
Markdown
84 lines
4.4 KiB
Markdown
|
# Лабораторная работа №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 визуальный и точность определяется восприятием графика. Поэтому использовать его лучше только в целях визуализации.
|
|||
|
Для данной задачи алгоритм не подходит, так как решает её недостаточно качественно.
|
|||
|
|
|||
|
|