Печалби:
- Способност за разпознаване на различни източници на данни (база данни, API, файл, уеб скрапинг) и клопките на всеки и правилно разбиране на схемата
- Възможност за извършване на повторяемо вземане на проби чрез оценка дали извадката представлява популацията и пристрастията на селекцията
- Възможност за премахване на изтичането на данни на етапа на събиране и спазване на правните/етичните граници чрез задаване на въпроса „Ще го имам ли по време на прогнозиране“ във всяка колона?
Всеки анализ е толкова добър, колкото и качеството на данните, които събирате. Дори и най-напредналият модел в света ще даде ненадеждни резултати, ако работи с данни, които са събрани неправилно, извадки са предубедени или съдържат информация за бъдещето. В компютърните науки този принцип се обобщава като „боклук вътре, боклук вън“ (боклук вътре, боклук вън). В този раздел ще разгледаме фазата на събиране на данни: разбиране на източника, вземане на проби, задаване на въпроси за качеството и внимание към риска от изтичане на данни от първия ден. Изкуственият интелект е мощна помощ на този етап; Пише SQL заявка, обобщава API документ, изготвя договор за данни. Но човешкото същество е това, което решава какви данни събирате и дали тези данни представляват вас.
Запознаване с източници на данни
Данните идват от различни места и всеки източник има свои собствени капани. Базата данни (структурирани данни, съхранявани в таблици, обикновено запитвани с SQL) е най-често срещаният източник; Той е надежден, но е необходимо да се разбере добре неговата схема. API (интерфейс за програмиране на приложения) предоставя данни на живо, но носи риск от ограничения на скоростта и промени във формата. Файловете (CSV, Excel, JSON) са гъвкави, но склонни към несъответствие във формата. Уеб скрейпингът е мощен, но има законови и етични ограничения; Не всеки сайт може да бъде скрапиран.
Внимание: За уеб скрапинг и автоматично събиране на данни спазвайте условията за ползване на сайта, файла robots.txt и KVKK/GDPR. Неразрешеното събиране на данни създава правна отговорност. В контекста на информационната сигурност използвайте инструменти за събиране на данни само на системи, за които сте упълномощени и за целите на защитата/анализа; Неоторизиран достъп или изстъргване е забранено.
Разбиране на схемата: запознаване с данните
Преди да съберете набор от данни, трябва да разберете неговата схема (имената на колоните, техните типове данни, техните значения и връзките им една с друга). AI е много полезен тук при създаването на „речник на данни“ — таблица, обясняваща какво означава всяка колона. Но обясненията, които AI произвежда, са прогнози; Потвърдете истинското значение на всяка колона с екипа, който е създал данните. Например колона с име "статус" може да съдържа 0/1/2; Само първоначалният екип знае дали те са „чакащи/одобрени/отменени“ или нещо друго.
Следващата таблица обобщава основните типове ресурси и предупреждения:
Източник
силна страна
капан
Как AI помага
SQL база данни
Структурен, надежден
Сложни JOINs
Пише чернова на заявка
API
живи данни
Ограничение на скоростта, промяна на формата
Резюмета на документи, код за изтегляне
CSV/Excel
Гъвкав, бърз
Несъответствие на формата
Прочетете/анализирайте кода
уеб скрапинг
Широк обхват
Законово/етично ограничение
Анализ на черновата (в рамките на пълномощията)
Данни за дневник/събитие
подробно
огромен обем
Заявка за филтриране
Илюстрация: частта представя ли цялото?
През повечето време работите с извадка (подмножество, избрано от популацията), а не с целите данни. Критичният въпрос е: тази извадка представя ли населението? Пристрастията при подбора са най-често срещаният капан. Например, ако извадите потребители само от мобилното приложение, няма да видите уеб потребители и резултатите ви ще бъдат подвеждащи. Произволното вземане на проби (всеки запис има равен шанс да бъде избран) е най-безопасно в повечето случаи; но в данните от времеви редове, разделянето се извършва хронологично, а не произволно (ще видим това в Раздели 7 и 10).
Изтичане на осведоменост от първия ден
Изтичането на данни е източникът на повечето бедствия и обикновено възниква по време на фазата на събиране на данни. Пример: когато прогнозирате „анулирано ли е“, ако добавите колоната „дата на анулиране“ към данните, моделът гледа в бъдещето. По време на фазата на събиране задайте по един въпрос за всяка колона: „Наистина ли ще имам тази информация в момента, в който направя прогнозата?“ Ако отговорът е не, тази колона тече. Ще разгледаме тази тема в дълбочина в Раздел 10; Но осъзнаването трябва да започне от първия ден.
три мини калъфа
Случай 1 — Проблемът с представителството. Една банка събра данни само за одобрени кредити за своя модел на кредитен риск (18 500 записа). Отказите не бяха в данните. Моделът беше грешен в реалния свят, защото никога не видя как ще се държат отхвърлените. Урок: извадката трябва да е представителна за цялата съвкупност, от която вземате решението си.
Случай 2 — Тиха промяна на формата. Екип извличаше данни за цените от API всеки ден. Един ден доставчикът на API промени валутата от USD на EUR, но името на домейна остана същото. Данните са събрани в грешен модул за 12 дни; 3200 реда бяха повредени. Урок: Редовно проверявайте обема и съгласуваността на формата в API данните.
Случай 3 — Ранно изтичане. Анализатор включи колоната „причина за закриване на акаунта“, когато събира данни за оценка на „отлив“. Тази колона е попълнена едва след напускане на клиента. Моделът дава 97% точност на тестовата серия; Не работи в производството, защото тази колона беше празна в момента на прогнозиране. Урок: задайте на всяка колона въпроса "имам ли го по време на прогнозата?"
Четири копируеми шаблона
1) Извличане на речник на данни:
Вашата роля: асистент на специалист по данни. По-долу са имената на колоните и примерните (анонимни) стойности на таблица. За всяка колона избройте нейното очаквано значение, тип данни и потенциални рискове за качеството в таблица. Маркирайте колоните, в които не сте сигурни, като „изисква се потвърждение“; създаване на смисъл. Колони: [поставете тук]
2) Код за вземане на проби (произволен, повтарящ се):
Имам панди df. Напишете код, който извлича представителна 5% произволна извадка от 200 000 реда. Използвайте random_state=42 (за възпроизводимост). Добавете код, за да проверите дали класовото разпределение на извадката е подобно на популацията.
3) Въпрос за сканиране на течове:
Ще ви дам този списък с колони. Целта ми е да предскажа "отменено ли е" (0/1). За всяка колона преценете дали действително ще я имам по време на прогнозата и я маркирайте като „безопасно / подозрително / изтичане“. Напишете обосновката си в едно изречение. Колони: [списък]
4) Чернова на заявка за изтегляне на SQL:
Имам таблици „поръчки“ и „клиенти“ в PostgreSQL. Напишете JOIN заявка, която комбинира поръчките от последните 90 дни с града на клиента и връща общата сума и броя на поръчките за град. Обяснете филтъра за дати и как се обработват NULL градове. Ще изпълня заявката и ще я проверя.
Слаба подкана / Силна подкана
Слаба подкана:
Изтеглете ми добри примерни данни от тази база данни.
„Добър“ е двусмислен; Коя картина, кой период, какъв размер, каква цел не е ясно. AI ще създаде само обща, вероятно грешна заявка.
Мощна подкана:
Вашата роля: SQL асистент. Имам таблица „транзакции“: колони id, customer_id, дата (timestamp), сума (числова), канал (текст: „web“/„mobile“). Задача: Напишете повтаряща се (детерминирана с ORDER BY) заявка, която връща 10 000 представителни реда от всеки канал за 2024 г. Цел: сравнителен анализ на канала. Избройте предположенията на вашето запитване.
Тук таблицата, предназначението, размерът и повторяемостта са ясни.
Често срещани грешки
- Не поставя под въпрос представителността на извадката. Лесно достъпните данни не са точни данни; отклонението при избора изкривява резултата.
- Адаптиране на значенията на колоните към AI. Екипът източник знае значението; Не използвайте AI прогнозата, без да я потвърдите.
- Не се проследява промяна на формат/единица на API. Тихата промяна събира повредени данни в продължение на дни.
- Пренебрегване на теча на етапа на събиране. Ако въпросът „Имам ли го в момента на прогнозиране“ не бъде зададен рано, моделът ще даде фалшив успех.
- Събиране на неоторизирани или незаконни данни. Нарушаването на robots.txt, условията за ползване и KVKK е сериозен риск.
Съвет: Съхранявайте „карта с данни“ от една страница за всеки нов източник на данни: източник, дата на изтегляне, брой редове, известни граници и колони с риск от изтичане. Тази карта спестява въпроса „какви бяха тези данни“ и възпроизводимостта месеци по-късно.
В обобщение
Качеството на анализа е ограничено от качеството на събраните данни. Познавайте добре източника (база данни, API, файл, скрейп) и схемата; уверете се, че извадката е представителна за популацията; Елиминирайте изтичането от първия ден, като попитате всяка колона „имам ли го по време на прогнозата?“ AI е чудесен ускорител за работа със заявки и документи, но хората решават какви данни да събират и тяхната представителност. Ограниченията на властта, законът и поверителността винаги са на първо място.
Задача за приложение
Изберете източник на данни (от вашия собствен бизнес или хипотетичен). Вземете чернова на речник на данни от AI с шаблона „извличане на речник на данни“ по-горе; След това ръчно оценете всяка колона, за да видите дали е изтекла. Опитайте се да намерите поне една подозрителна/теч колона и напишете с едно изречение защо е рисковано.
контролен списък
- [ ] Потвърдих ли източника на данни и схемата с екипа източник?
- [ ] Проверих ли дали извадката е представителна за популацията?
- [] Зададох ли на всяка колона въпроса „ще го имам ли по време на оценката?“
- [ ] Направил ли съм вземането на проби повторяемо (фиксирано семе)?
- [ ] Проверих ли правните/етичните (орган, robots.txt, KVKK) ограничения за събиране?