«Машинное обучение: компьютер может учиться на собственном опыте без специального программирования».
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — ——
Статья содержит:
- Постановка задачи
- Что такое машинное обучение?
- Почему машинное обучение важно?
- Какие существуют типы машинного обучения?
- Шаги, включенные в проект машинного обучения
а) Шаг 1. Сбор или сбор данных
б) Шаг 2. Предварительная обработка данных
c) Шаг 3. Тренировка тестового сплита
г)Шаг 4. Выбор алгоритма и построение модели
e) Шаг 5. Анализ и оценка
f) Шаг 6. Настройка гиперпараметров
г) Шаг 7. Прогноз
6. Проекты машинного обучения
— — — — — — — — — — — — — — — — —— — — — — — — — — — — — — — —
Постановка проблемы:
С моей точки зрения, как начинающего специалиста по данным, они не знают, как построить сквозной проект машинного обучения или глубокого обучения. Я также столкнулся с этой проблемой во время своих проектов. С помощью нескольких видеороликов я узнал о реальной процедуре проекта.
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Что такое машинное обучение?
Машинное обучение (МО) — это тип искусственного интеллекта (ИИ), который позволяет программным приложениям более точно прогнозировать результаты без явного программирования для этого. Алгоритмы машинного обучения используют исторические данные в качестве входных данных для прогнозирования новых выходных значений.
Механизмы рекомендаций — распространенный вариант использования машинного обучения. Другие популярные области применения включают обнаружение мошенничества, фильтрацию спама, обнаружение вредоносных программ, автоматизацию бизнес-процессов (BPA) и профилактическое обслуживание.
— — — — — — — — — — — — — — — — —— — — — — — — — — — — — — — —
Почему машинное обучение важно?
Машинное обучение важно, потому что оно дает предприятиям представление о тенденциях в поведении клиентов и бизнес-модели, а также поддерживает разработку новых продуктов. Многие современные ведущие компании, такие как Facebook, Google и Uber, делают машинное обучение центральной частью своей деятельности. Машинное обучение стало важным конкурентным преимуществом для многих компаний.
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Какие существуют типы машинного обучения?
Классическое машинное обучение часто классифицируют по тому, как алгоритм учится становиться более точными в своих прогнозах. Существует четыре основных подхода: контролируемое обучение, неконтролируемое обучение, частично контролируемое обучение и обучение с подкреплением. Тип алгоритма, который выбирают специалисты по данным, зависит от того, какой тип данных они хотят предсказать.
- Обучение под наблюдением. В этом типе машинного обучения специалист по данным предоставляет алгоритмам помеченные обучающие данные и определяет переменные, которые они хотят, чтобы алгоритм оценивал на предмет корреляции.
- Обучение без учителя. Этот тип машинного обучения включает алгоритмы, которые обучаются на неразмеченных данных. Алгоритм сканирует наборы данных в поисках любой значимой связи. При неконтролируемом обучении данные образуют группы и демонстрируют сходные свойства.
- Полууправляемое обучение. Этот подход к машинному обучению включает в себя сочетание двух предыдущих типов. Специалисты по обработке и анализу данных могут передавать алгоритму в основном помеченные обучающие данные, но модель может самостоятельно исследовать данные и разрабатывать свое собственное понимание набора данных.
- Обучение с подкреплением. Исследователи данных обычно используют обучение с подкреплением, чтобы научить машину выполнять многоэтапный процесс, для которого существуют четко определенные правила. Специалисты по данным программируют алгоритм для выполнения задачи и дают ему положительные или отрицательные сигналы, когда он решает, как выполнить задачу. Но по большей части алгоритм сам решает, какие шаги предпринять на этом пути.
Задачи контролируемого обучения:
Двоичная классификация. Разделение данных на две категории.
Многоклассовая классификация: выбор между более чем двумя типами ответов.
Регрессионное моделирование: прогнозирование непрерывных значений.
Ансамбль. Объединение прогнозов нескольких моделей машинного обучения для получения точного прогноза.
Задачи неконтролируемого обучения:
Кластеризация: разделение набора данных на группы на основе сходства.
Обнаружение аномалий. Выявление необычных точек данных в наборе данных.
Анализ ассоциаций. Определение наборов элементов в наборе данных, которые часто встречаются вместе.
Уменьшение размерности: уменьшение количества переменных в наборе данных.
Задачи полуконтролируемого обучения:
Машинный перевод: алгоритмы обучения переводу языка на основе менее чем полного словаря слов.
Обнаружение мошенничества. Выявление случаев мошенничества при наличии лишь нескольких положительных примеров.
Маркировка данных. Алгоритмы, обученные на небольших наборах данных, могут научиться автоматически применять метки данных к большим наборам.
Задачи обучения с подкреплением:
Робототехника. С помощью этой техники роботы могут научиться выполнять задачи в физическом мире.
Видеоигры. Обучение с подкреплением использовалось для обучения ботов играть в ряд видеоигр.
Управление ресурсами. При наличии ограниченных ресурсов и определенной цели обучение с подкреплением может помочь предприятиям спланировать, как распределять ресурсы.
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Шаги, включенные в проект машинного обучения
Шаг 1. Сбор или сбор данных
Это основной шаг в проекте машинного обучения или глубокого обучения. Мы должны работать над набором данных, но в первую очередь мы собираем информацию о проекте и делаем правильный набор данных. С помощью этого набора данных мы узнаем некоторые бизнес-идеи и применяем подходящие алгоритмы машинного обучения, чтобы мы могли прогнозировать выходные данные для будущих данных.
- Типы данных
- Структурированные данные: отображаются в табличном формате (стиль строк и столбцов, как в электронной таблице Excel). Он содержит различные типы данных, например числовые, категориальные и временные ряды.
Номинальное/категориальное — одно или другое (взаимоисключающие). Например, для автомобильных весов цвет является категорией. Автомобиль может быть синим, но не белым. Порядок не имеет значения.
Число: любое непрерывное значение, разница между которыми имеет значение. Например, при продаже домов 50 000 больше, чем 20 000.
Порядковый номер: данные, которые имеют порядок, но расстояние между значениями неизвестно. Например, на такой вопрос, как бы вы оценили свое здоровье по шкале от 1 до 5? 1 бедный, 5 здоровый. Вы можете ответить 1,2,3,4,5, но расстояние между каждым значением не обязательно означает, что ответ 5 в пять раз лучше, чем ответ 1.
Временные ряды: данные во времени. Например, историческая стоимость продажи бульдозеров с 2012 по 2018 год.
2. Неструктурированные данные: данные без жесткой структуры (изображения, видео, речь, текст на естественном языке).
Обработка несбалансированного набора данных: если значения одного класса намного выше, чем значения другого класса, набор данных несбалансирован. Методы следующие:
SMOTE (Техника передискретизации синтетического меньшинства)
Почти промах (в процессе выборки)
Передискретизация дублированием
Метод ансамбля
Очаговая потеря
— — — — — — — — — — — — — — — — — — — —— — — — — — — — — — — —
Шаг 2. Предварительная обработка данных
Предварительная обработка данных включает ряд методов.
- Понимание набора данных. Используйте некоторые методы pandas, чтобы найти некоторую базовую информацию, например количество столбцов, тип данных каждого столбца и найти значения каждого столбца с помощью функции описания (минимум, максимум, дисперсия, стандартное отклонение). , среднее, мода). Следующий процесс — выделение числовых, категориальных столбцов и столбцов DateTime.
Числовые переменные. Столбцы содержат только целые числа и значения с плавающей запятой.
Непрерывные числовые переменные. Числовые столбцы с количеством уникальных значений довольно велики.
Дискретные числовые переменные. Числовые столбцы с количеством уникальных значений довольно малы.
Категорические переменные. Содержит значения строкового типа.
Переменная DateTime. Столбец содержит такие значения, как дата и время.
2. Очистка данных
Если данные не очищаются, на следующих этапах возникают ошибки, поэтому это самый важный шаг в проекте. Кроме того, это напрямую повлияет на точность проекта машинного обучения. Если мы даем набор данных без очистки алгоритма, общая точность снижается.
A) Удаление нежелательных наблюдений: удалите повторяющиеся, повторяющиеся и нерелевантные наблюдения.
B) Исправление ошибок структуры:Например, «Индия» и «Индия» дают разные классы, которые снижают точность, и поэтому дают им одно имя.
C) Управление выбросами. Мы не должны удалять выбросы, пока у нас не будет законной причины для их удаления. Иногда выбросы повышают точность модели.
D) Обработка отсутствующих данных. Существуют различные методы обработки отсутствующих данных. Мы можем удалить строки, которые показывают нулевые значения, а также заполнить эти пустые ячейки с помощью средних/модовых/конкретных значений, но это приведет к несбалансированному набору данных.
Некоторые инструменты очистки данных: эти инструменты могут очищать данные автоматически. Например, Openrefine, Cloudingo, Tibco и т. д.
E) Обработка несбалансированного набора данных:
- УДАР
from imblearn.over_sampling import SMOTE
- Избыточная выборка
- Под выборкой
- Методы ансамбля
from imblearn.ensemble import BalancedRandomForestClassifier from imblearn.ensemble import RUSBoostClassifier from imblearn.ensemble import EasyEnsembleClassifier from imblearn.ensemble import BalancedBaggingClassifier
3.Исследовательский анализ данных (EDA)
EDA дает нам информацию о поведении данных и делает некоторые выводы. Используйте несколько графиков и графиков для лучшей визуализации.
Примеры графиков и графиков:
Точечная диаграмма, регрессионная диаграмма, совместная диаграмма, линейная диаграмма, столбчатая диаграмма, тепловая карта, графическая диаграмма, скрипичная диаграмма, круговая диаграмма, парная диаграмма, гистограмма и т. д.
4. Разработка функций
А. Кодирование признаков: почти все алгоритмы точно работают с числовыми значениями, поэтому преобразуйте категориальные признаки (столбцы) в числовые значения. Например, если у нас есть три настроения: положительное, отрицательное и нейтральное, назначьте 1 для положительного, 2 для отрицательного и 3 для нейтрального.
Номинальное кодирование (кодирование функций в номинальных функциях/столбцах):
Одно горячее кодирование: вставка новых столбцов в набор данных, количество которых равно количеству уникальных значений в столбце. Есть один недостаток, если количество значений увеличивается, а размерность увеличивается, и это влияет на большое время вычислений.
Одно горячее кодирование со многими категориями. Найдены наиболее часто повторяющиеся категории и применена кодировка только к ним.
Среднее кодирование. Основано на выводе и среднем значении. Возьмите среднее значение каждой категории и замените его этой конкретной категорией.
Порядковое кодирование (кодирование признаков в порядковых признаках/столбцах):
Кодировка меток. Присваивайте уникальные номера уникальным категориям в зависимости от их важности.
Направление на цель: это очень похоже на среднее кодирование, но из-за порядковых переменных мы не можем определить важность категорий. Дайте более высокую метку более высокой метке.
B) Масштабирование функций: это преобразует набор данных с нормализацией, что приводит к сокращению времени вычислений. Вот некоторые методы масштабирования объектов:
- StandardScaler:соответствует стандартному нормальному распределению (SND). Таким образом, он делает mean = 0 и масштабирует данные до единичной дисперсии.
- MinMaxScaler:масштабирует все функции данных в диапазоне [0, 1] или в диапазоне [-1, 1], если есть отрицательные значения в наборе данных.
- RobustScaler. Используя RobustScaler(), мы можем удалить выбросы, а затем использовать либо StandardScaler, либо MinMaxScaler для предварительной обработки набора данных.
- Преобразование предположений:
а) логарифмический
б) Взаимное преобразование
c) Преобразование квадратного корня
г) Экспоненциальное преобразование
д) Преобразование Бокскокса
C) Выбор функций: выберите те функции, которые важны для построения модели и влияют на целевую переменную. Это приведет к исчезновению ненужных данных, поэтому время хранения и вычислений сократится.
- Отбрасывать постоянные функции/отбрасывать менее важные функции: найдите одно пороговое значение отклонения и удалите все столбцы, которые дают значение отклонения ниже этого порогового значения.
2.Выбор со значением корреляции: удаление сильно коррелированных объектов напрямую, но есть некоторые условия. Не удаляйте функции, которые сильно коррелируют с выходной переменной, но удаляйте те функции, которые сильно коррелируют с другими входными функциями. Сильно положительные и отрицательные коррелированные значения не могут быть рассмотрены.
3. Взаимная информация: применима как к задачам классификации, так и к задачам регрессии. Узнайте оценку важности всех независимых функций, а затем выберите только те функции, которые имеют высокую оценку/значение важности.
4. Критерий хи-квадрат: он используется, когда нам нужно объяснить связь между категориальными переменными по отношению к выпуску.
Как выбрать метод выбора признаков:
D) Уменьшение размерности. Обычный метод уменьшения размерности, PCA или анализ основных компонентов, использует большое количество измерений (признаков) и использует линейную алгебру для их уменьшения до меньшего числа измерений. Например, если у вас есть 10 числовых функций, вы можете запустить PCA, чтобы уменьшить их до 3.
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Шаг 3. Тренировка тестового сплита
- Учебный набор (обычно 70–80% данных): модель учится на этом.
- Проверочный набор (обычно 10–15% данных): на него настраиваются гиперпараметры модели.
- Тестовый набор (обычно 10–15% данных): на нем оценивается окончательная производительность моделей. Если вы все сделали правильно, надеюсь, результаты набора тестов дадут хорошее представление о том, как модель должна работать в реальном мире. Не используйте этот набор данных для настройки модели.
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Шаг 4. Выбор алгоритма и построение модели.
Типичный вопрос, который задает новичок, сталкиваясь с широким спектром алгоритмов машинного обучения, звучит так: «Какой алгоритм мне следует использовать?» Ответ на этот вопрос зависит от многих факторов, в том числе:
- Размер, качество и характер обучающих данных.
- Точность и/или интерпретируемость выходных данных.
- Скорость или время обучения.
- Линейность.
- Количество функций.
С помощью этой шпаргалки мы можем выбрать подходящие алгоритмы машинного обучения.
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Шаг 5. Анализ и оценка
- Классификация — точность, точность, отзыв, F1, матрица путаницы, средняя точность (обнаружение объекта)
- Регрессия — MSE, MAE, R²
- Метрика на основе задачи — например. для беспилотного автомобиля вам может понадобиться узнать количество отключений
А также мы можем узнать разницу между фактическими значениями и прогнозируемыми значениями по некоторым графикам:
- Точность данных о поездах (узнайте этот график в моем проекте классификации, который называется «предсказание ценового диапазона мобильных устройств»)
2. Точность тестовых данных (узнайте этот график в моем проекте классификации, который называется «предсказание диапазона цен на мобильные устройства»)
Примечание. Если точность не очень высока, используйте настройку гиперпараметров.
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Шаг 6. Настройка гиперпараметров
Алгоритмы машинного обучения имеют ряд параметров. Если мы не укажем значения параметров лично, алгоритм может принять значения по умолчанию, и эти значения по умолчанию могут снизить точность модели. Поэтому нам требовались методы настройки гиперпараметров. При этом мы задаем диапазон или конкретные значения важным параметрам, а функция гиперпараметра выполняет итерацию по всем значениям. Этот процесс дает нам идеальные параметры, которые дают самое высокое значение точности, и это наши окончательные значения параметров.
- Рандомизированный поискрезюме
Если у нас хорошая точность в модели с параметрами по умолчанию, мы используем метод RandomizedSearchCV. Выберите случайные значения и выполните итерацию по ним. Это может быть уменьшить размер поиска, он сужается. Поэтому сначала используйте эту технику.
Модель с параметрами по умолчанию:
классsklearn.model_selection.RandomizedSearchCV(оценщик, param_distributions, *, n_iter=10 , оценка=Нет, n_jobs=Нет, refit=True, cv=Нет, verbose=0, pre_dispatch='2*n_jobs', random_state=None, error_score=nan, return_train_score=False)
2.GridSearchCV
Этот метод выполняет поиск по одному по всем значениям признаков. Это трудоемкий процесс, но выберите правильные и наилучшие значения для гиперпараметра. Итак, мы используем RandomSearchCV, а затем используем gridSearch CV.
Модель с параметрами по умолчанию:
классsklearn.model_selection.GridSearchCV(оценщик, param_grid, *, скоринг=нет , n_jobs=None, refit=True, cv=None, verbose=0, pre_dispatch='2*n_jobs', error_score=nan, return_train_score=False)
3. Автоматическая настройка гиперпараметров:
а) Оптимизация Байеона: используется для поиска минимальных функций. Этот метод оптимизации лучше, чем два вышеуказанных метода.
б) Генетический алгоритм: этот метод быстрее, чем RandomizedSearchCV и GridSearchCV.
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Шаг 7. Прогноз
После настройки гиперпараметров точность модели повышается. Тогда наш проект почти завершен. В будущем мы просто передаем набор данных и прогнозируем выходную переменную.
— — — — — — — — — — — — — — — — — —— — — — — — — — — — — — — —
Проекты машинного обучения
1.Название проекта – Прогноз диапазона цен на мобильные устройства (классификация)
Ссылка на проект-https://github.com/ImSumitJadhav/Mobile-Price-Range-Prediction/blob/main/Mobile_Price_Range_Prediction_CLASS_(ML).ipynb
2.Название проекта – Прогноз спроса на велосипеды в Сеуле (регрессия)
Ссылка на проект- https://github.com/ImSumitJadhav/Seoul-Bike-Sharing-DemandPrediction/blob/main/Seoul_Bike_Sharing_Demand_Prediction_REGG_(ML).ipynb
3.Название проекта – Система кластеризации и рекомендаций фильмов и телешоу Netflix
4.Название проекта: EDA в данных Play Store
Ссылка на проект — https://github.com/ImSumitJadhav/EDA-on-Play-StoreData/blob/main/EDA_on_Play_Store_Data.ipynb
5.Project Name-EDA об оттоке клиентов в сфере телекоммуникаций
Ссылка на проект — https://github.com/ImSumitJadhav/EDA-on-Telecom-ChurnAnalysis/blob/main/EDA_on_Telecom_Churn.ipynb
— — — — — — — — — — — — — — — — —— — — — — — — — — — — — — — —
Обо мне:
linkedin- linkedin.com/in/sumit-jadhav-7214b4239
GitHub- https://github.com/ImSumitJadhav
— — — — — — — — — — — — — — — — — — — — — —— — — — — — — — — —
Спасибо……………