Бърз и лесен начин да видите вашите първоначални резултати от прогнози и точност

По време на първите няколко първоначални итерации на обучение на модел за проблем с класификация, обичам бързо да проверя колко добре се представят прогнозите ми и по-конкретно кои са някои от „попаденията“ и „ пропуски”.

Например:

В тази статия бих искал да споделя бърз начин да направите това с няколко реда код на Python.

Първо, нека приемем, че вече имаме панда рамка с данни (df_tst), която просто съдържа колона етикети съответна колона текст за всеки етикет. Колоната с етикет може да бъде двоична стойност, целочислена стойност на идентификатор или почти всичко друго, което вашият домейн използва, за да класифицира текста, свързан с него.

Нека приемем също, че имаме обучен (научен модел) обект със съответен метод за прогнозиране, който можем да извикаме, за да итерираме през нашата рамка от данни. В примера по-долу случайно извиквам метода learn.predict на fast.ai, но това очевидно може да бъде всяка ML библиотека, която поддържа извикване на някакъв вид метод за прогнозиране срещу вашия обучен модел.

В примера по-горе аз просто извличам списък на python от първите 100 известни етикета от рамката с данни. След това преминавам през същите тези 100 записа, но този път предавам стойността на текстовата колона на моя метод за прогнозиране, като по този начин изграждам съответен списък от „предсказани“ етикети, които моят обучен модел върна.

След това използвам „списъчното разбиране“ на Python, за да сравня просто известните (действителни) целеви етикети с предвидените етикети. Python има удобна вградена функция, наречена zip, която се справя доста ефективно с итерация през два или повече списъка.

Ако съвпадат, добавям визуално „ок“ към нов списък (res_lst). Ако не съвпадат, добавям визуално „XXX“ към този елемент от списъка.

Тъй като имам и броя на всеки, мога лесно да запазя процента на точност.

Сега мога лесно да покажа резултатите:

И за добра мярка мога да покажа процента на точност:

В този момент мога бързо и лесно да наблюдавам кои конкретни етикети не са класифицирани правилно и да направя допълнително проучване на данните, за да видя защо моят модел би предвидил етикета, както го направи.

Този подход не е предназначен да замени по-прецизно отчитане или визуални елементи, а вместо това е бърз начин да определите как се представя вашият модел първоначално и може би да започнете да проучвате всички неправилно класифицирани примери за данни.