Кратко въведение в ML инструментите
Днес съществуват много инструменти за работа с машинно обучение (ML). Когато започнах да изучавам ML, инструментите бяха доста ограничени. Най-популярни бяха R и Matlab (Octave). Тези програми бяха сложни за усвояване и често изискваха лицензи. С течение на времето Python и неговите библиотеки като NumPy, SciPy, Pandas, Matplotlib, Scikit-learn, TensorFlow и PyTorch промениха ситуацията. Python стана основният език за ML и Data Science. Не се плашете от многото инструменти – основите на математиката остават същите, а инструментите се променят. Разбирането на основите ще ви помогне лесно да се адаптирате към нови инструменти и библиотеки.
Тази статия предполага, че вече сте запознати с основите на компютърната грамотност — знаете как да инсталирате програми, да работите с файлове и команден ред.
Що се отнася до Python, към момента на писане на статията той е най-популярният език за машинно обучение. Conda и Jupyter са инструменти, които улесняват работата с Python и неговите библиотеки. Нека ги разгледаме по-подробно.

Инсталиране на Python и защо е нужен Conda
Python е език за програмиране. Той не е обвързан с конкретна реализация и представлява набор от правила за писане на програми. Ако напишем програма на Python, тя ще работи на всяка платформа, където е инсталиран интерпретаторът на Python. Интерпретаторът е програма, която изпълнява код, написан на Python. Съществуват различни интерпретатори на Python, но най-популярен е CPython. Той е написан на C и е стандартната реализация на Python. Тоест, ако инсталирате CPython, ще можете да стартирате програми на Python. Но това не е единственият интерпретатор. Има и други, като PyPy, Jython и IronPython. Те имат своите особености и предимства, но CPython е най-разпространеният и поддържан, затова в тази статия ще използваме именно него.
Има няколко начина за инсталиране на Python. Можете да го изтеглите от официалния сайт python.org или да използвате пакетен мениджър, например apt за Ubuntu или brew за MacOS.
Но не бързайте да инсталирате Python от официалния сайт. Софтуерът се обновява постоянно, и това важи не само за библиотеките, но и за самия Python. Представете си, че сте инсталирали CPython 3.12, а след месец излиза версия 3.13. За да използвате новата версия, ще трябва да премахнете старата и да инсталирате новата. Но това не е единственият проблем. Ако използвате няколко библиотеки, те може да зависят от различни версии на Python. Например, една библиотека работи само с Python 3.8, а друга — само с Python 3.9. В този случай ще трябва да инсталирате няколко версии на Python и да ги управлявате ръчно, което е доста неудобно.
Conda и venv: защо са нужни среди
За да решите проблема с множество версии на CPython и библиотеки, е създаден пакетният мениджър Conda. Той позволява инсталиране и превключване между различни версии на Python. Conda използва така наречените среди — в командния ред можете да управлявате в коя среда работите. Всяка среда има своя версия на Python и свой набор от библиотеки. Библиотеките, инсталирани в една среда, не са достъпни в друга. Това улеснява управлението на зависимости и версии на библиотеките.
Важно: Средите позволяват изолиране на проектите един от друг, за да се избегнат конфликти между версиите на библиотеките и Python.
Въпреки че Conda позволява създаване на среди, той не е единственият инструмент за това. Съществува и вграденият инструмент на Python — venv (виртуална среда). Той създава виртуални среди. Разликата между Conda и venv е, че venv създава само под-среда, а Conda управлява и версиите на CPython и библиотеките (включително инструменти, необходими за компилиране на библиотеки за CPython).
Пример: разлика между Conda и venv
Conda-среда
- Инсталирате Conda и създавате две среди:
baseс версия Python 3.12 иpy311с версия Python 3.11. - В среда
baseинсталирате библиотека A, а в средаpy311— библиотека B (чрезconda install). - Ако искате да използвате библиотека A в среда
py311, трябва да я инсталирате отделно. Библиотеките са изолирани между средите.
- Инсталирате Conda и създавате две среди:
venv в Conda-среда
- Представете си, че работите в Conda-среда
py311и имате два проекта, които използват Python 3.11, библиотека A, но различни версии на библиотека B. - На помощ идва
venv: създайте две виртуални среди вpy311, напримерvenv1иvenv2. - Във всяка от тях може да инсталирате различна версия на библиотека B.
- Във виртуалната среда са достъпни всички библиотеки, инсталирани в Conda-средата.
- Ако в Conda-средата е инсталирана библиотека A, тя ще е достъпна във всички виртуални среди, създадени в нея.
- Ако във виртуалната среда инсталирате друга версия на библиотека A, тя ще е достъпна само там и ще се използва вместо библиотека A от Conda-средата.
- Представете си, че работите в Conda-среда
Как да инсталирате Conda
Инсталирането на Conda е лесно. Можете да го изтеглите и инсталирате от официалния сайт anaconda.com.
Може също да използвате Miniconda — това е олекотена версия на Anaconda, която съдържа само основни инструменти и библиотеки. Miniconda ви позволява да инсталирате само нужните пакети и заема по-малко място на диска. Можете да изтеглите Miniconda от официалния сайт и да го инсталирате, следвайки инструкциите.
След инсталиране на Conda ще можете да използвате командата conda в терминала.
Нека за пример създадем среда с Python 3.12, създадем директория за проект и инсталираме библиотеката numpy в средата. За целта изпълнете следните команди в терминала:
Забележка: Авторът използва bash. Ако сте с Windows, препоръчвам да използвате WSL (Windows Subsystem for Linux). WSL позволява стартиране на Linux приложения под Windows. Ако не искате да използвате WSL, командите ще са различни. Например, вместо mkdir използвайте md, за активиране на виртуална среда използвайте venv\Scripts\activate.bat и т.н.
# Създаване на среда с Python 3.12
conda create -n py3.12 python=3.12
# Активиране на средата
conda activate py3.12
# Създаване на директория за проект
mkdir my_project
# Влизане в директорията
cd my_project
# Създаване на виртуална среда в Conda-средата
python -m venv venv
# Активиране на виртуалната среда
source venv/bin/activate
# Инсталиране на библиотека numpy
pip install numpy

Забележка: В този пример създадохме виртуална среда в Conda-среда. Това изолира зависимостите на проекта и позволява отделно управление. Сега можете да използвате библиотеката
numpyвъв вашия проект. Също така командният ред показва името на активната среда и виртуалната среда, в която се намирате — това помага да не се объркате.За да излезете от виртуалната среда, използвайте командата
deactivate. За да излезете от Conda-средата — командатаconda deactivate.
PIP и Jupyter
Какво е PIP?
PIP е пакетен мениджър за Python. Позволява инсталиране и управление на библиотеки, написани на Python. PIP е стандартен инструмент за инсталиране на библиотеки и е част от Conda и CPython. Може да се използва за инсталиране на библиотеки, които не са част от стандартната библиотека. Например, за да инсталирате библиотеката numpy в предишния пример, използвахме командата
pip install numpy
PIP също така позволява инсталиране на библиотеки от архиви и Git-репозитории (но тук няма да навлизам в подробности).
Какво е Jupyter Notebook?
Един от най-популярните инструменти за работа с Jupyter е Jupyter Notebook. По същество това е уеб приложение, което се отваря в браузър. То представлява тетрадка, в която можете да пишете Python код, да го изпълнявате на части и да виждате резултата директно в браузъра. Jupyter Notebook позволява създаване на интерактивни документи, които съдържат текст, код и графика. Това е много удобно за ML и Data Science, тъй като позволява бързо тестване на идеи и споделяне на резултати.
Препоръчвам да инсталирате Jupyter Notebook във venv, за да вижда всички зависимости, инсталирани във venv. За целта, докато сте в активирана виртуална среда, изпълнете командата:
pip install notebook
# Стартиране на Jupyter Notebook
jupyter notebook

Примерен изход при стартиране на Jupyter Notebook
[I 2025-05-17 15:40:05.086 ServerApp] notebook | extension was successfully loaded.
[I 2025-05-17 15:40:05.087 ServerApp] Serving notebooks from local directory: /tmp
[I 2025-05-17 15:40:05.087 ServerApp] Jupyter Server 2.15.0 is running at:
[I 2025-05-17 15:40:05.087 ServerApp] http://localhost:8888/tree?token=7abd71ba4a969bcdd99c1e9054e5a68c1de46bcd1b56cfea
[I 2025-05-17 15:40:05.087 ServerApp] http://127.0.0.1:8888/tree?token=7abd71ba4a969bcdd99c1e9054e5a68c1de46bcd1b56cfea
[I 2025-05-17 15:40:05.087 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 2025-05-17 15:40:05.125 ServerApp]
To access the server, open this file in a browser:
file:///home/spgtty/.local/share/jupyter/runtime/jpserver-1269648-open.html
Or copy and paste one of these URLs:
http://localhost:8888/tree?token=e5a68c1de46bcd1b56cfea
http://127.0.0.1:8888/tree?token=e5a68c1de46bcd1b56cfea
[I 2025-05-17 15:40:05.322 ServerApp] Skipped non-installed server(s): bash-language-server, dockerfile-language-server-nodejs, javascript-typescript-langserver, jedi-language-server, julia-language-server, pyright, python-language-server, python-lsp-server, r-languageserver, sql-language-server, texlab, unified-language-server, vscode-css-languageserver-bin, vscode-html-languageserver-bin, vscode-json-languageserver-bin, yaml-language-server
Сега можете да отворите браузър и да посетите адреса от изхода на командата. В този пример това е http://127.0.0.1:8888/tree?token=<ваш токен>. Ще видите интерфейса на Jupyter Notebook, където можете да създавате и редактирате тетрадки.

Заключение
В тази статия разгледахме основните инструменти за работа с ML и Data Science. Научихме, че Python е език за програмиране, Conda – мениджър на CPython, пакети и среди, PIP – мениджър на пакети за Python, а Jupyter Notebook – интерактивна тетрадка за работа с код. Това е достатъчно, за да започнете да експериментирате. Jupyter Notebook е основният инструмент на автора на тази статия. В следващи публикации ще използвам Notebook за демонстрация на код. Сега можете да инсталирате Python, Conda и Jupyter Notebook и да започнете да учите ML и Data Science заедно с мен.
