Всичко започва от таблица
Каквото и да прави един модел — разпознава котки или предсказва цени — данните му се свеждат до таблица. Правилата за нея са три и си струва да се научат веднъж завинаги.
Пример (ред)
Един конкретен обект, за който имаме данни: един апартамент, един имейл, една снимка, един пациент.
Признак (feature, колона)
Едно измеримо свойство на примера: площта, броят стаи, часът на изпращане, стойността на един пиксел.
Етикет (label, целева променлива)
Отговорът, който искаме моделът да научи да дава: цената, „спам или не“, диагнозата.
Означенията, които ще срещате навсякъде
Признаците се означават с X (главно, защото е таблица), а етикетите с y (малко, защото е една колона). Ще видите model.fit(X, y) в почти всеки пример на scikit-learn.
Видове признаци
| Вид | Пример | Какво може да се прави |
|---|---|---|
| Числов | площ 68 м², температура 36.8° | сравнява се, събира се, има разстояние |
| Категориен | район „Център“, цвят „червен“ | само равно / различно |
| Подреден | оценка слаб → отличен, размер S/M/L | сравнява се, но разликите не са равни |
| Двоичен | има ли асансьор: да/не | 0 или 1 |
Разликата не е формална. Алгоритъмът смята разстояния между примери, а разстояние между „Център“ и „Люлин“ няма смисъл. Затова категорийните признаци се превръщат в числа по специален начин — ще го направим в урок 14.
Класическа грешка
Ако кодираме районите като 1, 2, 3, моделът ще реши, че район 3 е три пъти повече от район 1 и че 2 е „между“ тях. Числата носят подредба, която в данните не съществува.
Откъде идват данните
- Собствени измервания — снимате, анкетирате, записвате. Бавно, но данните са точно за вашата задача.
- Публични набори — Kaggle, UCI, Hugging Face, отворените данни на държавата. Бързо и безплатно; внимавайте с лиценза.
- Системи, които вече работят — базата данни на училището, логовете на сайта. Най-ценният източник в една фирма.
- Сензори и устройства — метеостанция, часовник, телефон.
Правилото за личните данни
Снимки на съученици, имена, оценки, здравна информация — това са лични данни. За курса събирайте данни за предмети, не за хора, а ако в проекта има хора — с тяхното съгласие и без имена. Подробно в урок 32.
Данните почти никога не са готови
Липсващи стойности
В реален набор липсват стойности — анкетираният не е отговорил, сензорът е спрял. Три изхода: изхвърляме реда, изхвърляме колоната или запълваме липсата (например със средната стойност). Всеки от трите изкривява данните по различен начин.
Различен мащаб
Площта е между 40 и 200, а броят стаи — между 1 и 5. За алгоритъм, който смята разстояния, площта ще заглуши напълно броя стаи просто защото числата ѝ са по-големи. Затова признаците се нормализират — привеждат се към общ мащаб.
Колко данни са нужни
Точен отговор няма, но има ориентир: колкото по-сложна е закономерността и колкото повече признаци има, толкова повече примери трябват. За задача с 4 признака и 3 класа стигат стотици примера; за разпознаване на образи трябват десетки хиляди. И винаги е по-добре 1000 внимателно обозначени примера, отколкото 100 000 обозначени как да е.