Добивки:
- Способност да се дефинира типот на проблемот (класификација, регресија, кластерирање) и критериумите за успех според реалната цена на работата
- Способност искрено да се поделат податоците (без допирање на тест множеството; хронолошки во временската серија) и да се воспостави основа за проценка без протекување
- Способност да се избере интерпретабилен модел со започнување со едноставна основна линија и додавање на сложеност само кога тоа го заслужува.
Досега собиравме податоци, ги исчистивме, истраживме и продуциравме функции. Сега доаѓаме до вистинската работа, градење на модел. Моделот е математичка структура која учи шема од податоците и произведува предвидувања за нови ситуации. Но, најкритичниот дел од градењето на моделот не е самиот код, туку двете одлуки што му претходат: дефинирање на вистинскиот проблем и правилно разделување на податоците. Вештачката интелигенција е моќен советник за избор на алгоритам, пишување код и подесување на параметри; но човек треба да одлучи што да предвиди и што значи успех. Лошо дефинираниот проблем нема да работи дури и со совршено напишан модел.
Прво дефинирање на проблемот: што предвидуваме
Секоја работа во моделирање започнува со прашање, а ова прашање го одредува типот на моделот. Класификација - излезот е категорија: „Дали овој клиент ќе замине или ќе остане?“, „Дали оваа трансакција е лажна?“. Регресија (на англиски регресија - излезот е број): „Колку вреди оваа куќа?“, „Колку нарачки ќе дојдат следниот месец?“. Кластерирање (поделување на неозначени податоци во природни групи): „На колку природни сегменти се поделени моите клиенти?“.
Вториот дел од изјавата за проблемот е критериумот за успех: што значи овој модел да биде „добар“? Во моделот на измама, пропуштањето на измамник е многу поскапо од случајното блокирање на чесен клиент; Затоа, не доаѓа до израз „општата точност“, туку „стапката на фаќање измамници“. Ако не го дефинирате овој критериум од почеток, заедно со сопственикот на бизнисот, ќе завршите со „многу прецизен“ модел кој не функционира (ќе навлеземе подлабоко во метриката во единица 7).
Внимание: „точноста“ може да доведе до заблуда. Ако 10 од 1000 трансакции се лажни, глупав модел кој вели „ниту една не е измамничка“ ќе даде 99% точност, но нема да фати ниту еден измамник. Изберете критериуми за успех врз основа на реалната цена на проблемот.
Разделување на обука/тест: искрено испитување на моделот
Тестирањето на моделот со податоците што ги научил е исто како да му ги поставувате на студентот истите прашања што ги учел на испитот; Добива високи оценки, но не покажува што навистина знае. Така, ги делиме податоците на два (често три):
- Сет за обука (комплет за обука на англиски јазик, обично 70-80%): Моделот учи на ова.
- Тест сет (тест сет, обично 20-30%): Моделот воопшто не го гледа ова; овде се мери вистинските перформанси.
- Комплет за валидација: Средно множество што се користи за поставување на моделот (кој параметар е подобар); за да се одржи тест-сетот „чист“.
Најосновното правило: комплетот за тестирање никогаш не се допира за време на тренингот. Скалирање, кодирање, избор на карактеристики - сето тоа едноставно се учи од комплетот за обука, а потоа се применува на тестирање (принцип на истекување од единица 5). Тест сет е првиот пат кога моделот го гледа реалниот свет; Ако го вклучите прерано, никогаш нема да ги дознаете вистинските перформанси.
Исклучок од временски серии: Ако вашите податоци зависат од времето (продажба, берза, побарувачка), не се прави случајно разделување. Бидејќи случајното разделување предизвикува моделот да ја види иднината и да го предвиди минатото - ова е истекување. Наместо тоа, подели хронолошки: тренирај со стариот период, тестирај со новиот период.
Избор на алгоритам: од едноставни до сложени
Најчеста грешка на почетниците е да се започне со најкомплексниот модел. Точниот пристап е спротивен: прво воспоставете едноставна основна линија. „секогаш погоди ја мнозинската класа“ во класификација; „секогаш проценувај ја средната вредност“ во регресија. Овој глупав модел дава основна линија; Ако вашиот вистински модел не може да го помине ова, има проблем. Потоа преминете на едноставни и интерпретабилни модели.
модел
Тип на проблем
силна точка
слабост
Основна линија (мнозинство/просек)
и двете
Дава репер
не учи
Логистичка регресија
Класификација
Едноставно, интерпретабилно
Само линеарна врска
Линеарна регресија
регресија
Едноставно, брзо
линеарна претпоставка
дрво на одлуки
и двете
интерпретабилна
Лесно меморирање
случајна шума
и двете
Силен, издржлив
Помалку може да се толкува
Зголемување на градиент (XGBoost итн.)
и двете
многу силна
Тешко се прилагодува, ризик од меморирање
Правило: изберете го наједноставниот „доволно добар“ модел. Толкливоста е повредна од моќта во повеќето деловни контексти; Подобро е да се објасни одбивањето на заемот „затоа што соодносот долг/приход е висок“ отколку „затоа што црната кутија го кажа тоа“.
три мини футроли
Случај 1 - Неточна дефиниција на проблемот. Тим изгради модел на класификација врз основа на „дали клиентот е задоволен“, но ја избра „точноста“ како критериум за успех. Во податоците, 88% од клиентите биле задоволни; Моделот доби 88% точност со тоа што ги нарече сите „задоволни“ и никогаш не ги фати незадоволните луѓе - иако вистинската цел беше да ги пронајде. Лекција: изберете критериуми за успех врз основа на вистинската цел.
Случај 2 — Протекување на време во преградата. Во проектот за предвидување на побарувачката, податоците беа поделени по случаен избор. Моделот даде 93% прецизност, но падна во производството, бидејќи на обуката предвидуваше јануари, потоа ноември, со податоците од декември - ја виде иднината. Кога се префрливме на хронолошка поделба, реалните перформанси се зголемија на 74%. Лекција: хронолошка поделба во временски серии.
Случај 3 — Непотребна сложеност. Еден аналитичар започна директно со длабока невронска мрежа, ја подесуваше со недели и доби 81% точност. Потоа еден колега доби 80% со 20 линии на логистичка регресија - многу побрзо, толкуваливо и полесно за одржување. Лекција: започнете со основна линија и едноставен модел, додадете сложеност кога тоа го заслужува.
Четири шаблони за копирање
1) Појаснување на дефиницијата на проблемот:
Вашата улога: консултант за моделирање. Помогнете ми да ја дефинирам оваа работа: „Сакам да го намалам отфрлањето на клиентите“. Прашајте ме и појасни: (1) дали е ова класификација или регресија, (2) што точно е целната променлива и како треба да се дефинира, (3) кои треба да бидат критериумите за успех и зошто. Одлуката е моја; ги презентирате прашањата и опциите.
2) Безбеден оддел за обука/тест:
Поделете го мојот df на обука/тестирање 80%/20%. Одржување на распределбата на класите (stratify).random_state=42. Ова НЕ е ВРЕМЕНСКА СЕРИЈА (независни набљудувања). Отпечатете го соодносот на класите на секое множество по делењето. Само дајте го кодот за разделување на тест множеството без да примените каква било трансформација.
3) Хронолошка поделба на временски серии:
Податоците зависат од времето (колона за датум: нарачка_датум). НЕ случајно, поделете хронолошки: најстариот 80% тренинг, најновиот 20% тестирање. Испечатете го опсегот на датуми за обука и тестирање за да можам да проверам дека иднината не протекла.
4) Поставување основна линија:
Имам проблем со класификација (цел: разбива 0/1). Прво воспоставете основна линија: измерете ја точноста на обуката/тестирањето со DummyClassifier, кој секогаш ја предвидува мнозинската класа. Потоа обучете едноставна логистичка регресија и споредете дали ја надминува основната линија. Покажете ја метриката на двете рамо до рамо.
Слаб промпт / Силен промпт
Слаба навестување:
Изградете го најдобриот модел со овие податоци.
„Најдобро“ е недефинирано; Нема тип на проблем, нема цел, нема критериуми за успех и нема стратегија за поделба. Вештачката интелигенција генерира случаен образец, можеби протечен.
Моќен потсетник:
Вашата улога: асистент за моделирање. Проблем: класификација, целна „превртување“ (0/1), постои дисбаланс на класата (~12% пречка). Критериум за успех: Приоритет е да се потсетиме на оние што се разнежнуваат. Независно набљудување со податоци (не временски серии). Задача: (1) 80/20% стратификувано поделба, (2) Основна линија на DummyClassifier, (3) логистичка регресија, сите трансформации во нафтоводот и научени само од обуката. Не допирајте го комплетот за тестирање пред да се разделите.
Овде видот на проблемот, нерамнотежата, критериумот и мерката за истекување се јасни.
Вообичаени грешки
- Не избирање на критериумите за успех според вистинската цел. „Точноста“ во неурамнотежените податоци е погрешна; Ако сакате да ја доловите малцинската класа, потсетувањето доаѓа до израз.
- Допирање на тест сет за време на тренингот. Вршењето скалирање/кодирање пред разделување е протечено и ги крие вистинските перформанси.
- Случајно разделување во временски серии. Моделот ја гледа иднината, пропаѓа во производството; Хронолошката поделба е суштинска.
- Скокање во сложен модел без да се воспостави основна линија. Без репери не можете да знаете дали моделот е навистина добар или не.
- Игнорирање на интерпретабилноста. Во деловните одлуки, едноставен објаснлив модел често е повреден од црната кутија.
Совет: Пред да започнете да градите модел, напишете една реченица: „Овој модел ќе предвиди _____, неговиот успех ќе се мери со метриката _____, бидејќи вистинската цена на работата е _____. Ако не можете да ја пополните оваа реченица, сè уште не сте подготвени да напишете код.
Сумирано
Најкритичниот дел од градењето на моделот не е кодот, туку одлуките што му претходат: дефинирање на вистинскиот проблем (класификација или регресија, која е целта, кој е критериум за успех) и правично делење на податоците (без допирање на тест множеството; хронолошки во временската серија). Секогаш започнувајте со едноставна основна линија и додавајте сложеност само кога тоа го заслужува; интерпретабилноста се цени над моќта во повеќето деловни контексти. ВИ е моќен советник за избор на алгоритам и код, но човекот одлучува што предвидувате и зошто.
Задача за апликација
Дефинирајте проблем со предвидување и пополнете ја следната реченица во писмена форма: „Овој модел ќе предвиди ___ (класификација/регресија), целта е ___, критериумот за успех е ___ затоа што ___. Потоа поделете ги податоците со вистинската стратегија (хронолошки ако се работи за временска серија), воспоставете основна линија и измерете дали едноставна шема ја нарушува таа основна линија.
листа за проверка
- [ ] Дали јасно ги дефинирав типот на проблемот (класификација/регресија) и целта?
- [ ] Дали ги избрав критериумите за успех врз основа на реалните трошоци за работата?
- [ ] Дали го оставив тест-сетот недопрен за време на тренингот?
- [ ] Ако е временска серија, дали сум ја поделил хронолошки?
- [ ] Дали воспоставив основна линија пред да преминам на сложениот модел?