Тази публикация е от Grokking Python, безплатен бюлетин, достъпен в Substack от Educative, най-добрата в света платформа за обучение за разработчици на софтуер. Там ще споделяме най-добрата информация и ресурси на нашия екип, свързани с Python – неща, които смятаме, че наистина могат да подобрят вашето разбиране.

Здравейте, читатели на Grokking Python!

Повечето хора взаимодействат с процесите на машинно обучение всеки ден, въпреки че може не винаги да го осъзнават. Машинното обучение е подполе на изкуствения интелект (AI); работи, като пуска данни чрез „алгоритми“, които обучават софтуера да взема решения, класификации и прогнози въз основа на определени входни данни. Всеки път, когато срещнете автоматизирана система, която взема решения или препоръки в отговор на даден набор от входни данни, тази система вероятно е продукт на машинно обучение.

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

Новодошлите в областта на машинното обучение и „науката за данни“ обикновено искат да знаят какъв език за програмиране трябва да използват. Няма лесен отговор на това, тъй като различните езици имат различни предимства и недостатъци. Един език може да се поддава на някои задачи за машинно обучение, но не и на други. Въпреки че може да няма „най-добър“ език за машинно обучение, определено има един, който е най-популярен. Този език е „Python“.

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

Как работи машинното обучение

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

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

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

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

Машинното обучение за подсилване е малко по-различно; работи, като извършва действия и получава положителна или отрицателна обратна връзка за тези действия. С течение на времето системата научава какви действия да извърши, за да увеличи максимално положителната обратна връзка.

Какъв език за програмиране трябва да използвате за машинно обучение?

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

Python обаче неизменно се класира като най-широко използвания език за машинно обучение поради удобния си синтаксис, преносимостта и изобилните си библиотеки с отворен достъп (някои от които са предназначени специално за проекти за машинно обучение).

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

Защо Python?

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

Синтаксисът на Python е изключително лесен за научаване (поне в сравнение с други езици за програмиране). Като безплатен език с отворен код също така е лесно да получите достъп до Python и да го приложите към набор от програмни задачи.

Python също е преносим, което означава, че приложенията на Python могат да работят на множество операционни системи, включително Windows и MacOS.

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

И накрая, за целите на машинното обучение, най-важната отличителна черта на Python е, че той има множество експанзивни библиотеки. Някои от тези „библиотеки на Python“ са компилирани специално за използване в машинно обучение и наука за данни. Ето някои от най-често използваните библиотеки за машинно обучение.

  • 1. NumPy е библиотека на Python с отворен код, която се използва за сложни математически операции. Той е съвместим с някои от другите библиотеки, изброени по-долу, като Pandas, Matplotlib и Scikit-learn.
  • 2. SciPy е библиотека с отворен код, която се основава на NumPy с набор от алгоритми за научни компютърни приложения.
  • 3. Pandas е друга библиотека с отворен код. Той предоставя набор от инструменти за анализ и манипулиране на данни и често се използва във връзка с NumPy, SciPy и Matplotlib.
  • 4. Matplotlib е най-популярната библиотека на Python за визуализация на данни и 2-D чертане.
  • 5. Seaborn е изграден на Matplotlib и може да се използва за начертаване на статистики и генериране на достъпни графики.
  • 6. TensorFlow е платформа за машинно обучение с отворен код. В допълнение към предоставянето на стабилни библиотеки за машинно обучение в Python, той включва набор от инструменти и потребителски ресурси, които улесняват преносимите модели за машинно обучение.
  • 7. Scikit-learn е друга популярна библиотека на Python с отворен код. Изграден върху NumPy, SciPy и Matplotlib, той често се използва за изпълнение на алгоритми за класификация, регресия и групиране.

Приготвяме се да започнем

Сега, след като знаете основите на машинното обучение в Python, как можете да започнете да надграждате знанията си и да развивате някои практически умения? Уводният курс на Educative относно наука за данни и машинно обучение може да бъде добро място за начало. В допълнение към предоставянето на по-задълбочена поредица от уроци по тези теми, курсът предоставя и практически среди за кодиране, които ще ви позволят да практикувате умения за машинно обучение.

Ако вече имате известен опит с науката за данни и машинното обучение и се подготвяте за интервю за работа, помислете за курса на Educative Grokking the Machine Learning Interview.

Има ли случай на използване на Python, който бихте искали да разгледаме в бъдеща част от Python в действие? Уведомете ни в коментарите или като отговорите на този имейл.

Както винаги, приятно учене!

Започнете дискусия

Коя библиотека на Python искате да изпробвате най-много? Полезна ли беше тази публикация? Кажете ни в коментарите по-долу!