Лого на 91. НЕГ „Проф. Константин Гълъбов“

Избираем модул · Урок 3

Данни, признаци и етикети

Как изглежда един набор от данни: редове, признаци и етикет. Числови и категорийни признаци, липсващи стойности и откъде изобщо идват данните.

Всичко започва от таблица

Каквото и да прави един модел — разпознава котки или предсказва цени — данните му се свеждат до таблица. Правилата за нея са три и си струва да се научат веднъж завинаги.

площстаиетажрайонцена6823Изток142 0009535Център231 0005421Люлин98 00012047Център310 000признаци (вход)етикет (изход)примери
Един ред е един пример. Колоните преди последната са признаците, последната е етикетът.

Пример (ред)

Един конкретен обект, за който имаме данни: един апартамент, един имейл, една снимка, един пациент.

Признак (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 обозначени как да е.