You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ML-For-Beginners/translations/bg/1-Introduction/4-techniques-of-ML/README.md

22 KiB

Техники на машинното обучение

Процесът на създаване, използване и поддържане на модели за машинно обучение и данните, които те използват, е много различен от много други работни потоци за разработка. В този урок ще разясним процеса и ще очертаем основните техники, които трябва да знаете. Ще:

  • Разберете процесите, които стоят в основата на машинното обучение на високо ниво.
  • Изследвате основни концепции като „модели“, „предсказания“ и „обучаващи данни“.

Тест преди лекцията

ML за начинаещи - Техники на машинното обучение

🎥 Кликнете върху изображението по-горе за кратко видео, което разглежда този урок.

Въведение

На високо ниво, изкуството на създаване на процеси за машинно обучение (ML) се състои от няколко стъпки:

  1. Определете въпроса. Повечето процеси за ML започват с въпрос, който не може да бъде отговорен чрез проста условна програма или система, базирана на правила. Тези въпроси често се въртят около предсказания, базирани на съвкупност от данни.
  2. Съберете и подгответе данни. За да можете да отговорите на въпроса си, ви трябват данни. Качеството и, понякога, количеството на вашите данни ще определят колко добре можете да отговорите на първоначалния си въпрос. Визуализирането на данни е важен аспект на тази фаза. Тази фаза включва и разделяне на данните на групи за обучение и тестване, за да се изгради модел.
  3. Изберете метод за обучение. В зависимост от въпроса ви и естеството на данните, трябва да изберете как искате да обучите модел, за да отразява най-добре данните и да прави точни предсказания. Това е частта от процеса на ML, която изисква специфична експертиза и често значително количество експериментиране.
  4. Обучете модела. Използвайки обучаващите си данни, ще използвате различни алгоритми, за да обучите модел да разпознава модели в данните. Моделът може да използва вътрешни тегла, които могат да бъдат коригирани, за да се даде предимство на определени части от данните пред други, за да се изгради по-добър модел.
  5. Оценете модела. Използвате данни, които моделът никога не е виждал преди (вашите тестови данни), за да видите как се представя моделът.
  6. Настройка на параметри. Въз основа на представянето на модела, можете да повторите процеса, използвайки различни параметри или променливи, които контролират поведението на алгоритмите, използвани за обучение на модела.
  7. Предсказание. Използвайте нови входни данни, за да тествате точността на модела.

Какъв въпрос да зададете

Компютрите са особено добри в откриването на скрити модели в данните. Тази способност е много полезна за изследователи, които имат въпроси за дадена област, които не могат лесно да бъдат отговорени чрез създаване на система, базирана на правила. Например, при актюерска задача, специалист по данни може да създаде ръчно изработени правила за смъртността на пушачи спрямо непушачи.

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

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

Задачи преди изграждането

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

Данни

За да можете да отговорите на въпроса си с някаква сигурност, ви е необходим достатъчен обем данни от правилния тип. На този етап трябва да направите две неща:

  • Съберете данни. Имайки предвид предишния урок за справедливостта в анализа на данни, събирайте данните си внимателно. Бъдете наясно с източниците на тези данни, всякакви присъщи пристрастия, които може да имат, и документирайте техния произход.
  • Подгответе данни. Има няколко стъпки в процеса на подготовка на данни. Може да се наложи да съберете данни и да ги нормализирате, ако идват от различни източници. Можете да подобрите качеството и количеството на данните чрез различни методи, като например преобразуване на текстови низове в числа (както правим в Клъстеризация). Може също да генерирате нови данни, базирани на оригиналните (както правим в Класификация). Можете да почистите и редактирате данните (както ще направим преди урока за Уеб приложение). Накрая, може да се наложи да ги рандомизирате и разбъркате, в зависимост от техниките за обучение.

След като съберете и обработите данните си, отделете момент, за да видите дали тяхната структура ще ви позволи да адресирате въпроса си. Възможно е данните да не се представят добре в дадената задача, както откриваме в нашите уроци за Клъстеризация!

Характеристики и цел

Характеристика е измерима собственост на вашите данни. В много набори от данни тя е изразена като заглавие на колона, като „дата“, „размер“ или „цвят“. Вашата променлива за характеристика, обикновено представена като X в кода, представлява входната променлива, която ще се използва за обучение на модела.

Целта е това, което се опитвате да предскажете. Целта, обикновено представена като y в кода, представлява отговора на въпроса, който се опитвате да зададете на данните: през декември, какъв цвят тикви ще бъдат най-евтини? В Сан Франциско, кои квартали ще имат най-добри цени на недвижими имоти? Понякога целта се нарича и атрибут на етикета.

Избор на променлива за характеристика

🎓 Избор на характеристики и извличане на характеристики Как да разберете коя променлива да изберете при изграждането на модел? Вероятно ще преминете през процес на избор на характеристики или извличане на характеристики, за да изберете правилните променливи за най-добре представящия се модел. Те обаче не са едно и също: „Извличането на характеристики създава нови характеристики от функции на оригиналните характеристики, докато изборът на характеристики връща подмножество от характеристиките.“ (източник)

Визуализирайте данните си

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

Разделете набора си от данни

Преди обучението трябва да разделите набора си от данни на две или повече части с неравни размери, които все пак добре представят данните.

  • Обучение. Тази част от набора от данни се използва за обучение на модела. Този набор представлява по-голямата част от оригиналния набор от данни.
  • Тестване. Тестовият набор от данни е независима група от данни, често събрана от оригиналните данни, която използвате, за да потвърдите представянето на изградения модел.
  • Валидация. Наборът за валидация е по-малка независима група от примери, която използвате, за да настроите хиперпараметрите или архитектурата на модела, за да го подобрите. В зависимост от размера на данните и въпроса, който задавате, може да не е необходимо да изграждате този трети набор (както отбелязваме в Прогнозиране на времеви серии).

Изграждане на модел

Използвайки обучаващите си данни, целта ви е да изградите модел, или статистическо представяне на данните, използвайки различни алгоритми за обучение. Обучението на модел го излага на данни и му позволява да прави предположения за възприети модели, които открива, валидира и приема или отхвърля.

Изберете метод за обучение

В зависимост от въпроса ви и естеството на данните, ще изберете метод за обучение. Преглеждайки документацията на Scikit-learn - която използваме в този курс - можете да изследвате много начини за обучение на модел. В зависимост от опита ви, може да се наложи да опитате няколко различни метода, за да изградите най-добрия модел. Вероятно ще преминете през процес, при който специалистите по данни оценяват представянето на модела, като му подават невиждани данни, проверяват за точност, пристрастия и други проблеми, които намаляват качеството, и избират най-подходящия метод за обучение за дадената задача.

Обучете модел

С обучаващите си данни сте готови да ги „поставите“ в модела, за да го създадете. Ще забележите, че в много библиотеки за ML ще намерите кода 'model.fit' - това е моментът, когато подавате променливата за характеристика като масив от стойности (обикновено 'X') и целевата променлива (обикновено 'y').

Оценете модела

След като процесът на обучение приключи (може да отнеме много итерации, или „епохи“, за да се обучи голям модел), ще можете да оцените качеството на модела, като използвате тестови данни, за да прецените представянето му. Тези данни са подмножество на оригиналните данни, които моделът не е анализирал преди. Можете да отпечатате таблица с метрики за качеството на модела.

🎓 Приспособяване на модела

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

🎓 Недостатъчно обучение и прекомерно обучение са често срещани проблеми, които намаляват качеството на модела, тъй като моделът се приспособява или недостатъчно добре, или прекалено добре. Това води до предсказания, които са или твърде тясно свързани, или твърде свободно свързани с обучаващите данни. Прекомерно обучен модел предсказва обучаващите данни твърде добре, защото е научил детайлите и шума в данните твърде добре. Недостатъчно обучен модел не е точен, тъй като не може нито точно да анализира обучаващите данни, нито данни, които не е „виждал“.

модел с прекомерно обучение

Инфографика от Jen Looper

Настройка на параметри

След като първоначалното обучение приключи, наблюдавайте качеството на модела и обмислете подобряването му чрез настройка на неговите „хиперпараметри“. Прочетете повече за процеса в документацията.

Предсказание

Това е моментът, в който можете да използвате напълно нови данни, за да тествате точността на модела. В „практическа“ среда за ML, където изграждате уеб активи за използване на модела в продукция, този процес може да включва събиране на потребителски вход (например натискане на бутон), за да зададете променлива и да я изпратите на модела за извод или оценка.

В тези уроци ще откриете как да използвате тези стъпки, за да подготвите, изградите, тествате, оцените и предскажете - всички жестове на специалист по данни и още, докато напредвате в пътуването си да станете „пълен стек“ инженер за ML.


🚀Предизвикателство

Начертайте диаграма на потока, отразяваща стъпките на специалист по ML. Къде виждате себе си в процеса в момента? Къде предвиждате, че ще срещнете трудности? Какво ви изглежда лесно?

Тест след лекцията

Преглед и самостоятелно обучение

Търсете онлайн интервюта със специалисти по данни, които обсъждат ежедневната си работа. Ето едно.

Задание

Интервюирайте специалист по данни


Отказ от отговорност:
Този документ е преведен с помощта на AI услуга за превод Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматичните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия изходен език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален превод от човек. Ние не носим отговорност за каквито и да е недоразумения или погрешни интерпретации, произтичащи от използването на този превод.