Что такое наука о данных?

Сегодня в мире миллионы и миллиарды терабайт данных, но какая от этого польза? Наука о данных призвана решить эту проблему. Это исследование получения действенной информации из данных, чтобы она приносила пользу конкретной компании или бизнесу.

Проект по науке о данных имеет одну из трех целей — либо дать знания, либо составить причинно-следственную связь, либо сделать прогнозы и прогнозы на будущее. Их можно сделать с помощью анализа данных, статистики и машинного обучения соответственно.

Чему я научился на Summer Analytics 2022

Данный тренинг проводился Клубом консалтинга и аналитики, ИИТ-Гувахати. Они также ежегодно помогают более чем 25 000 студентов и молодых специалистов. Они распространены более чем в 50 странах мира. С 23 мая по 10 июля 2022 г. у меня был реальный практический опыт работы с Python, машинным обучением, глубоким обучением, а также очисткой данных. Обучение также помогло мне понять разницу между контролируемым и неконтролируемым машинным обучением, а также новейшие инструменты, ресурсы и алгоритмы, используемые в отраслях.

Ниже приведены мои выводы из каждой недели в течение периода обучения:

1 неделя

В течение первой недели нас познакомили со многими новыми технологиями. Сначала мы установили Anaconda на нашу машину с Windows 11, чтобы начать работу над Jupyter Notebook, работающим на Python. Затем мы изучили основы Python с нуля. Начиная с переменных и продвигаясь к методам и функциям. После этого мы начали изучать специальные библиотеки машинного обучения, такие как NumPy и Pandas. NumPy помогает работать с числовыми данными, тогда как Pandas используется для управления данными путем изменения формы, нарезки, слияния и объединения наборов данных, а также обработки отсутствующих значений в нашем DataFrame.

Затем мы начали с самой интересной части — визуализации данных. Кому не нравится визуально видеть информацию, которую вы получили из данных? Мы начали с Matplotlib, который помогает нам видеть интерактивные визуализации данных, над которыми мы работаем, демонстрируя графики, гистограммы, круговые диаграммы и многое другое. Затем мы изучили Seaborn, который основан на Matplotlib, но помогает нам строить статистические графики. Каждую неделю есть задание, которое мы должны выполнить и отправить. Задание первой недели включало анализ данных о покемонах. Подробности набора данных можно найти здесь. После задания проводится викторина по материалу, который мы изучали всю неделю вместе с вопросами по заданию.

Неделя-2

С этой недели мы начали узнавать о том, что такое выбросы в наборе данных и как мы можем их удалить. Выбросы — это, по сути, «исключения» в данных. Предположим, набор данных показывает баллы учеников в классе: 3, 45, 56, 60, 65 и 99. Таким образом, 3 и 99 будут выбросами. Затем мы узнали, как работать с отсутствующими данными в нашем наборе данных. Либо мы можем удалить их, заменив их наиболее частым значением в этом столбце (режим), либо средним (средним) значением в наборе данных.

Затем мы узнали о различных алгоритмах машинного обучения, начиная с простой линейной регрессии, множественной линейной регрессии, а также освежая в памяти линейную алгебру. Затем мы начали с классификации, начиная с логистической регрессии, используя обучение scikit. Для задания этой недели мы работали с набором данных радужной оболочки глаза, который можно найти здесь. В этом задании мы должны были предсказать класс растения на основе их длины чашелистика, ширины, длины лепестка и ширины. Этот набор данных широко используется в сообществе специалистов по данным, поскольку он основан на реальных данных и прост для понимания новичками.

Неделя-3

Теперь, когда мы просмотрели и изучили базовые модели машинного обучения, мы узнали о недообучении, переоснащении, а также о компромиссе смещения и дисперсии. Эти методы помогают нам выяснить сложность нашей модели.

Разница между предсказанием нашей модели и фактическим значением, т. е. истинным значением, дисперсия определяется как изменчивость модели, которую мы создали. После этого мы узнали о различных методах регуляризации, таких как регуляризация L1 и L2. Пока мы занимались этим, мы также изучили различные типы разработки функций или методы масштабирования функций, такие как MinMaxScaler, StandardScaler и многие другие. После этого мы научились быстро кодировать категориальные переменные, такие как названия стран, пин-коды и т. д.

Далее мы коснулись различных показателей оценки. Одним из них была матрица путаницы, по которой мы можем узнать оценку наших прогнозов. Он сообщает нам об истинно положительных (TP), истинно отрицательных (TN), которые были предсказаны правильно, а также о ложных положительных результатах (FP) и ложных отрицательных значениях (FN), которые были предсказаны неправильно.

И последнее, но не менее важное: задание этой недели было основано на Космическом корабле Титаник, в котором мы должны были предсказать, был ли пассажир перенесен в другое измерение или нет, основываясь на различных характеристиках, таких как его родная планета, возраст и был ли он VIP. или нет и т.д.

Неделя-4

Эта неделя началась с введения в ансамблевые модели, такие как случайный лес и дерево решений. Постепенно мы дошли до некоторых продвинутых алгоритмов, таких как XGBoost, LightGBM и CatBoost. После этого мы изучили регрессию, повышающую градиент, и начали изучать алгоритм наивного Байеса, который представляет собой алгоритм обучения с учителем, основанный на знаменитой теореме Байеса о вероятности.

После алгоритма наивного Байеса мы узнали о KNN или алгоритме K-ближайших соседей. Короче говоря, в KNN значение конкретной точки данных определяется точками данных вокруг нее. Если значение k равно 4, проверяются все классы 4 ближайших точек. Таким образом, прогнозирование осуществляется по большинству всех классов. Хотя расстояния могут быть измерены с использованием различных показателей, наиболее распространенным из них является «евклидово расстояние».

Для задания этой недели нам нужно было поработать над набором данных для оценки автомобиля, в котором мы должны были предсказать приемлемость автомобиля, используя такие атрибуты, как цена, комфорт, багажник, количество дверей и т. д.

Неделя -5

За последнюю неделю перед финальным проектом мы узнали об основах глубокого обучения. Начиная с искусственных нейронных сетей, которые являются частью алгоритмов обучения без учителя. Наряду с этим мы также изучили библиотеку Keras, чтобы наиболее оптимально использовать методы глубокого обучения. Затем мы коснулись алгоритма кластеризации K-средних. После этого мы узнали о методах уменьшения размерности, таких как анализ главных компонентов.

Для задания этой недели мы работали над логистической регрессией с мышлением нейронной сети, подробности о которой можно найти здесь. В этом задании мы рассчитали функцию стоимости и ее градиент, используя алгоритм оптимизации, называемый градиентным спуском.

Хакатон шестой недели

И последнее, но не менее важное: на последней неделе мы участвовали в хакатоне на Kaggle для финального проекта.

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

Для хакатона нас заставили провести вымышленную рекламную кампанию для интернет-магазина и предложить им скидки, рассчитывая, что это увеличит наши продажи. Нам были предоставлены описания товаров на Amazon и Flipkart, включая их название, обзоры, рейтинги и фактическую цену. На этом хакатоне мы прогнозировали цены со скидкой на данные продукты на основе оценок, отзывов и фактических цен.

Метрикой оценки хакатона была среднеквадратичная ошибка (RMSE). Он определяется как квадрат разницы между значениями, предсказанными моделью или оценщиком, и наблюдаемыми значениями, разделенный на общее количество значений и извлеченный из этого результата квадратный корень.

В этом хакатоне есть две таблицы лидеров, публичная и частная. Как только мы отправляем наши прогнозы, наши прогнозы оцениваются по 60% тестовых данных, и нам присваивается позиция в общедоступной таблице лидеров. Окончательные результаты будут основаны на остальных 40% данных, отображаемых в частной таблице лидеров, поэтому они могут отличаться или не отличаться.

Я использовал модель случайного лесного регрессора, чтобы получить максимальную точность на проверочном наборе. Наконец, после отправки я получил показатель RMSE 190,603 и занял 165-е место из 526 в таблице лидеров.

В целом, эти 6 недель обучения были отличным опытом, и я с нетерпением жду возможности узнать больше о науке о данных в своих будущих начинаниях.