Ако искате да започнете да изучавате наука за данни през 2023 г., ето пътната карта, която да следвате:
Въведение
Data Science е бързо развиваща се област и става все по-търсена от организации по целия свят. Амбициозни учени в областта на данните и професионалисти от други области търсят начини да започнат бързо своето пътуване в науката за данни, за да останат конкурентоспособни в индустрията. За да им помогне да постигнат тази цел, този блог ще представи цялостна пътна карта за науката за данни, която кандидатите да следват през 2023 г.
Тази пътна карта ще покрие основните теми и умения, необходими, за да станете успешен учен по данни, и ще предостави отправна точка за тези, които искат да пробият в индустрията за наука за данни. Освен това, този блог ще обсъди различните ресурси и инструменти, достъпни за използване от аспирантите в науката за данни, и ще предостави общ преглед на текущия пейзаж в науката за данни. В следващите раздели ще направя общ преглед на пътната карта за науката за данни, ще обсъдя необходимите теми и умения и ще очертая наличните ресурси и инструменти.
ЗАБЕЛЕЖКА: Тази статия първоначално е публикувана в DataKwery — единственият сайт в света за търсене на ресурси за наука за данни и машинно обучение на едно място. (Връзка към оригиналната статия — Щракнете тук)
Пътна карта за науката за данни:
- Основи на езика за програмиране Python
- Основни неща в областта на статистиката и математиката
- Разбор на данни и визуализация с помощта на pandas, NumPy, matplotlib, seaborn и scipy библиотеки на python в среда на преносим компютър jupyter
- Езици за програмиране SQL и хранилище за данни MySQL
- Машинно обучение с помощта на sci-kit learn
- Дълбоко обучение с помощта на Keras
- НЛП концепции и техники
- Внедряване с помощта на streamlit, flask, docker, AWS/Azure/GCP
- Портфолио проекти
- Подготовка за интервю и кандидатстване за работа
- Основи на езика за програмиране Python
Python е един от най-широко използваните езици за програмиране в днешно време. Той е обявен за един от най-популярните езици за програмиране според проучването на разработчиците на StackOverflow през 2022 г.
Ето списъка с основите, които човек трябва да научи:
- Основни типове данни: int, float, str, bool
- Променливи и оператори за присвояване
- Изявления за контрол на потока: оператори if-else, цикли for и while
- Функции и модули
- Списъци, кортежи и масиви
- Речници и комплекти
- Обработка на изключения
- Концепции за обектно-ориентирано програмиране (ООП) като класове, обекти, методи и наследяване
- Операции за въвеждане/извеждане на файлове
- Основни регулярни изрази
2. Основни неща за статистиката и математиката
След като научите езика за програмиране Python, трябва да научите основните неща в областта на статистиката и математиката, за да научите технологичния стек за наука за данни и да станете опитен специалист по данни.
- Описателна статистика: мерки за централна тенденция (средна стойност, медиана, мода), мерки за променливост (диапазон, стандартно отклонение, дисперсия) и мерки за форма (изкривяване, ексцес).
- Вероятност: основни концепции за вероятността, като условна вероятност, теорема на Байс и случайни променливи. Заедно с това вероятностните разпределения, оценката, тестването на хипотези и байесовите методи са задължителни
- Изводна статистика: понятия като оценка, тестване на хипотези, p-стойности и доверителни интервали.
- Линейна алгебра: понятия като вектори, матрици и матрични операции са важни за разбирането на линейната регресия и други алгоритми за машинно обучение.
- Изчисление: понятия като градиент, частични производни и оптимизация са важни за разбирането на алгоритмите за машинно обучение.
- Многопроменливо смятане: концепции като градиенти, Якобиан, Хесиан и оптимизация, които са важни за разбирането на невронните мрежи и други алгоритми за машинно обучение.
- Анализ на времеви редове: концепции като подвижни средни, експоненциално изглаждане, ARIMA модели
3. Разбор на данни и визуализация на данни в среда на преносим компютър jupyter
Борбата с данни и манипулирането на данни е решаващо умение, което трябва да развиете като специалист по данни. Python разполага с широк набор от библиотеки за изпълнение на различни задачи за манипулиране на данни и визуализиране на разпределението на данни, за да намерите ключови прозрения от вашите набори от данни.
Библиотеки на Python като Pandas, NumPy, seaborn, matplotlib, plotly, sklearn и scipy, човек трябва да овладее, за да стане експерт в обработката на данни и визуализациите.
Ето някои задачи и библиотеки в тази стъпка:
- Разбор на данни: Това включва задачи като почистване, трансформиране и обединяване на данни от различни източници. Учените, занимаващи се с данни, трябва да са опитни в използването на библиотеки като Pandas и NumPy за тези задачи.
- Изследване на данни: Това включва задачи като идентифициране на модели, извънредни стойности и аномалии в данните. Учените по данни трябва да владеят умения в използването на библиотеки като Matplotlib и Seaborn за визуализация и изследване на данни.
- Трансформация на данни: Това включва задачи като нормализиране, кодиране на категорични променливи и мащабиране на данни. Учените, занимаващи се с данни, трябва да са опитни в използването на библиотеки като sklearn за тези задачи.
- Инженеринг на функции: Това включва създаване на нови функции от съществуващи данни, избиране на най-подходящите функции и обработка на липсващи данни.
- Визуализация на данни: Специалистите по данни трябва да са опитни в създаването на различни видове визуализации, като линейни диаграми, стълбовидни диаграми, точкови диаграми, топлинни карти и други, като използват библиотеки като Matplotlib и Seaborn.
- Разказване на данни: Учените по данни трябва да могат да представят информация и констатации на нетехнически заинтересовани страни по ясен и завладяващ начин.
4. Език за програмиране SQL и база данни MySQL
Заедно с Python, специалистите по данни също трябва да владеят езика за програмиране SQL, за да съхраняват и манипулират релационни бази данни, за да работят с огромно количество данни.
Ето ключови SQL концепции, които трябва да овладеете като специалист по данни:
- Изявление SELECT:използва се за запитване и извличане на данни от таблица на база данни.
- Клауза JOIN: използва се за комбиниране на редове от множество таблици въз основа на свързана колона между тях.
- Клауза GROUP BY: използва се за групиране на редове въз основа на една или повече колони и извършване на обобщени функции като SUM, COUNT и AVG.
- Клауза WHERE: използва се за филтриране на редове въз основа на определено условие.
- SUBQUERY и INNER JOIN:използвани за комбиниране на данни от множество таблици и филтриране на резултатите.
- ИНДЕКСИРАНЕ: се използва за подобряване на ефективността на заявките чрез създаване на индекс върху една или повече колони на таблица.
- Инструкции CREATE и ALTER: използвани за създаване и модифициране на структурата на таблици и други обекти на база данни.
- Инструкции INSERT, UPDATE и DELETE: използвани за вмъкване, актуализиране и изтриване на данни в таблица.
- Разширени концепции като прозоречни функции, общи таблични изрази (CTE) и съхранени процедури
5. Машинно обучение с помощта на sci-kit learn
Машинното обучение без съмнение е неразделна част от всеки процес на наука за данни в индустриите. след като разберете добре езика за програмиране python и неговите библиотеки, тогава трябва да научите практическо машинно обучение, като използвате библиотеката за обучение на sci-kit.
Ето някои ключови концепции и умения, които ще ви помогнат да овладеете машинното обучение с помощта на scikit-learn:
- Учене под наблюдение: понятия като регресия и класификация и алгоритми като линейна регресия, логистична регресия и дървета на решенията.
- Неконтролирано обучение: концепции като групиране и намаляване на размерността и алгоритми като k-средни стойности, йерархично групиране и PCA.
- Оценка на модела: техники като комплекти за обучение и тестване, кръстосано валидиране и показатели като точност, прецизност, припомняне и F1-резултат.
- Настройка на хиперпараметри: техники като търсене в мрежа и произволно търсене за оптимизиране на производителността на модел за машинно обучение.
- Избор на функции и инженеринг: техники за избор на най-подходящите функции и създаване на нови функции от съществуващи данни.
- Тръбопроводи: Техники за верижно свързване на множество стъпки от процес на машинно обучение, като подготовка на данни, избор на функции и обучение на модел, в един оценител на scikit-learn
- Ансамбълни методи: концепции като пакетиране и усилване и алгоритми като произволна гора и градиентно усилване
- Невронни мрежи:разбиране на концепциите и използването на MLP и други архитектури на невронни мрежи
6. Задълбочено обучение с помощта на Keras
Дълбокото обучение е мощна техника, която човек трябва да научи като специалист по данни. Като учен по данни може да се наложи да се справите с неструктурирани данни като изображения, текст, видео и т.н., където техниките за дълбоко обучение играят решаваща роля.
Ето някои ключови техники за задълбочено обучение, които изследователите на данни трябва да научат с помощта на Keras:
- Изкуствени невронни мрежи: Концепции като мрежи за предаване напред, обратно разпространение и функции за активиране.
- Конволюционни невронни мрежи (CNN): използвани за класификация на изображения и задачи за разпознаване на обекти
- Повтарящи се невронни мрежи (RNN): използвани за последователни данни, като текст и времеви серии
- Автокодери: използвани за неконтролирано обучение на функции и намаляване на размерността
- Генеративни модели: като генериращи състезателни мрежи (GAN) и вариационни автоенкодери (VAE)
- Трансфер на обучение: Техники за използване на предварително обучени модели, като VGG или ResNet, за подобряване на производителността при нова задача
- Настройка на хиперпараметри: техники като търсене в мрежа и произволно търсене за оптимизиране на производителността на модел за дълбоко обучение.
- Tensorboard: за визуализиране на обучението и ефективността на модел за дълбоко обучение
7. Техники и концепции за обработка на естествен език (НЛП)
НЛП е подполе на машинното обучение, което използва анализ, генериране и разбиране на човешки езици, за да извлече смислени прозрения от него.
Ето някои ключови НЛП концепции и техники, които изследователите на данни трябва да научат:
- Предварителна обработка на текст: Техники като токенизиране, коренно извеждане и лематизация за преобразуване на необработен текст във формат, който може лесно да се анализира.
- Извличане на текстови характеристики: Техники като торба с думи, n-грами и вграждане на думи за представяне на текст като числени характеристики за използване в модели за машинно обучение.
- Сортиране на текст: Техники за класифициране на текст в предварително дефинирани категории, като анализ на настроението и откриване на спам.
- Разпознаване на наименувани обекти: Техники за идентифициране и извличане на наименувани обекти от текст, като хора, организации и местоположения.
- Маркиране на части от речта: Техники за идентифициране на частите на речта на думите в изречение, като съществителни, глаголи и прилагателни.
- Генериране на текст: Техники за генериране на нов текст въз основа на даден вход, като машинен превод и резюмиране на текст.
- Текст към говор и говор към текст: Техники за преобразуване на говор в текст и текст в говор.
- Разширени концепции като модели, базирани на вниманието, трансформатори и BERT
8. Внедряване на модел за машинно обучение
Повечето работни места в науката за данни изискват високо ниво на умения за разработване на качествени модели за машинно обучение, но доброто разбиране и известен опит в внедряването на модели ще ви даде предимство като учен по данни.
- Сервиране на модели:Техники за обслужване на модели за машинно обучение в производствена среда, като например използване на REST API или специален сървър за модели.
- Контейнеризация:Техники за опаковане на модели за машинно обучение и зависимости в контейнер, като Docker, за осигуряване на последователни и възпроизводими внедрявания.
- Внедряване в облак: Техники за внедряване на модели за машинно обучение в облачни платформи, като AWS SageMaker, Azure Machine Learning и Google Cloud ML Engine.
9. Портфолио проектите
След като научите всички умения, сега е моментът да изградите проекти за портфолио, за да покажете на потенциалните рекрутери своите умения и опит по предмети.
Някои от идеите за проекти, върху които можете да работите:
- Прогнозиране на тежестта на пътнотранспортното произшествие
- Прогноза за енергийна интензивност
- Предсказание за диво синьо зрънце
- Прогноза за преживяемостта на пациентите
- Откриване на кибертормоз чрез НЛП техники
- Проект за предвиждане на следваща дума
10. Подготовка за интервю и кандидатстване за работата
Сега е време да се подготвите за интервюта като учен по данни и да кандидатствате за работни места, които са подходящи за вас.
Ето няколко съвета за интервюта за работа в науката за данни:
- Разберете компанията и работата: Проучете компанията и конкретната роля, за която кандидатствате, за да разберете техните цели, ценности и вида работа, която извършват.
- Освежете ключови умения: Прегледайте и практикувайте ключовите умения, необходими за работата, като езици за програмиране, статистически анализ и техники за машинно обучение.
- Подгответе се за общи въпроси за интервю: Бъдете готови да отговорите на често срещани въпроси за интервю за наука за данни като „какъв е вашият опит с X техниката“ или „как бихте решили този проблем“.
- Практикувайте въпроси, базирани на данни: Бъдете готови да отговаряте на въпроси, базирани на данни, и проблеми с анализа на данни, като например „как бихте анализирали този набор от данни“ или „какъв е вашият подход към изграждането на модел“.
- Умейте да обяснявате работата си: Умейте да обяснявате миналите си проекти и методите, които сте използвали, по ясен и стегнат начин.
- Покажете страстта си: Покажете ентусиазма си за науката за данни и желанието си да учите и да растете в тази област.
- Бъдете готови да задавате въпроси: Подгответе списък с обмислени въпроси, които да зададете на интервюиращия за компанията, ролята и екипа, с който ще работите.
Следвайте Ismail LAMAAKAL за повече информация