Набор данных для задачи классификации: я выбрала небольшой датасет laptop_price, который содержит данные о ценах на ноутбуки, включая их технические характеристики. Среди них:
1 Company- String -Laptop Manufacturer
2 Product -String -Brand and Model
3 TypeName -String -Type (Notebook, Ultrabook, Gaming, etc.)
4 Inches -Numeric- Screen Size
5 ScreenResolution -String- Screen Resolution
6 Cpu- String -Central Processing Unit (CPU)
7 Ram -String- Laptop RAM
8 Memory -String- Hard Disk / SSD Memory
9 GPU -String- Graphics Processing Units (GPU)
10 OpSys -String- Operating System
11 Weight -String- Laptop Weight
12 Price_euros -Numeric- Price (Euro)
Данные из этого датасета подходят для анализа рынка ноутбуков, включая исследование факторов, влияющих на цену, что полезно как для бизнеса, так и для покупателей, желающих понимать, что влияет на стоимость устройств. Кроме того, с его помощью можно автоматизировать выбор ноутбука по заданным параметрам, что может быть актуально для интернет-магазинов или приложений сравнения товаров.
Набор данных для задачи регрессии: тот же датасет laptop_price.
В качестве метрик я использовала accuracy, precision, recall и F1-score для задачи классификации и MAE и MSE для задачи регрессии.
Посмотрим метрики качества на тестовом наборе данных для каждой из реализаций алгоритмов (для классификаций показана F1, для регрессии - MAE); через / показаны метрики на тренировке и на тесте соответственно:
| Алгоритм | Задача | Бейзлайн | Улучшенный бейзлайн | Самостоятельная имплементация алгоритма |
|---|---|---|---|---|
| KNN | Классификация | 0.86/0.75 | 0.92/0.77 | 0.93/0.78 |
| --- | --- | --- | --- | --- |
| KNN | Регрессия | 183/262 | 119/195 | 123/193 |
| --- | --- | --- | --- | --- |
| Линейные модели | Классификация | 0.72/0.69 | 0.98/0.80 | 0.52/0.47 |
| --- | --- | --- | --- | --- |
| Линейные модели | Регрессия | 370/377 | 42/190 | 261/272 |
| --- | --- | --- | --- | --- |
| Решающее дерево | Классификация | 0.99/0.80 | 0.96/0.72 | 0.94/0.75 |
| --- | --- | --- | --- | --- |
| Решающее дерево | Регрессия | 1.42/213 | 87/218 | 87/225 |
| --- | --- | --- | --- | --- |
| Случайный лес | Классификация | 0.99/0.86 | 0.99/0.81 | 0.74/0.73 |
| --- | --- | --- | --- | --- |
| Случайный лес | Регрессия | 70/167 | 71/228 | 276/282 |
| --- | --- | --- | --- | --- |
| Градиентный бустинг | Классификация | 0.95/0.84 | 0.97/0.81 | 0.67/0.54 |
| --- | --- | --- | --- | --- |
| Градиентный бустинг | Регрессия | 142/171 | 56/181 | 34/193 |
Самостоятельная реализация демонстрирует конкурентоспособные результаты и иногда даже превосходит библиотечные версии, особенно в классификации. Улучшение бейзлайна достигается за счёт подбора гиперпараметров и правильной предобработки данных.
Библиотечные реализации значительно превосходят самостоятельные, особенно в классификации. Это связано с использованием более сложных оптимизаций и регуляризаций, доступных в стандартных библиотеках.
Самостоятельная имплементация близка к библиотечному бейзлайну, но уступает в стабильности метрик на тестовом наборе данных. Улучшенный бейзлайн выигрывает за счёт тонкой настройки глубины дерева и других параметров.
Библиотечные версии превосходят собственные, особенно в задачах регрессии, где наблюдается значительная разница в MAE. Это указывает на необходимость дальнейшей оптимизации собственной реализации.
Самостоятельная реализация показывает посредственные результаты на тесте, особенно в задачах классификации, где разрыв с библиотечными версиями наиболее заметен. Улучшенный бейзлайн эффективно использует настройки гиперпараметров для увеличения производительности.
Библиотечные реализации обычно показывают лучшие результаты благодаря внутренним оптимизациям и использованию передовых алгоритмов. Однако самостоятельные реализации позволяют лучше понять устройство алгоритмов и дают потенциал для их кастомизации. Улучшение бейзлайнов возможно за счёт тщательной настройки гиперпараметров и предварительной обработки данных.