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

У нас есть множество игровых наборов данных в виде регрессии, двоичной классификации, многомерной классификации, НЛП и многих других. Некоторые из них - набор данных Iris, набор данных прогнозирования ссуды, набор данных Boston Housing, набор данных качества вина, набор данных рака груди и т. Д. Здесь давайте попробуем разобраться в наиболее универсальном, легком и находчивом наборе данных в литературе по распознаванию образов, то есть IRIS DATASET. Я пробовал это на разных платформах, например, использую некоторые алгоритмы машинного обучения, нейронные сети и тензорный поток. И результаты каждый раз немного меняются. У вас может возникнуть вопрос: что такое набор данных IRIS?

О наборе данных IRIS: -
Он также известен как набор данных игрушек, поскольку его легко понять, поскольку вся работа выполняется только в одном файле CSV. Набор данных IRIS - это цветы трех разных видов. Можно сказать, что это лейблы для нас: Iris-Setosa; Ирис-Вирджиния; Ирис-разноцветный.
Набор данных содержит 150 образцов, а также четыре функции; длина и ширина чашелистиков и лепестков и 50 образцов этих трех видов. Эти меры были использованы для создания линейной дискриминантной модели для классификации видов. Набор данных часто используется в примерах интеллектуального анализа данных, классификации и кластеризации, а также для тестирования алгоритмов. Это один из распространенных и известных примеров обучения без учителя. Обучение без учителя - это не что иное, как изучение одного и того же предмета (в данном случае цветок ИРИС) и их классификация (его 3 разных вида).

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

ВИЗУАЛИЗАЦИЯ: -
Визуализация и анализ данных - самая важная часть любого новичка, потому что только тогда вы сможете узнать, о чем нам говорят графики. Доступны различные графики, такие как одномерный график и многомерный график. Итак, для построения графиков и их визуализации с помощью наших органов чувств Python предоставляет некоторые библиотеки, такие как seaborn и matplotlib. Seaborn - это библиотека визуализации данных Python, основанная на matplotlib. Он предоставляет высокоуровневый интерфейс для рисования привлекательных и информативных статистических графиков, тогда как Matplotlib используется для построения графиков. В графиках с метками каждой функции доступны различные виды графиков в соответствии с нашими потребностями, такие как прямоугольный график, гистограмма, парный график. , точечная диаграмма, трехмерная диаграмма, диаграмма скрипки (говорит о плотности объекта в качестве основы) и т. д. Визуализируя и анализируя, мы можем узнать разницу между каждым видом по различным доступным характеристикам. После этого процесса мы переходим к следующему шагу.

ЧАСТЬ I
Использование алгоритма машинного обучения

Здесь мы собираемся использовать алгоритм кластеризации K-средних. При этом происходит формирование кластеров одного и того же типа, в то время как кластеры разных типов разнесены на некоторое расстояние. Кластеризация - это метод анализа данных о структуре данных. Другими словами, мы пытаемся найти однородные подгруппы в данных, чтобы точки данных в каждом кластере были как можно более похожими в соответствии с такой мерой сходства, как расстояние на основе Евклида или расстояние на основе корреляции. Это метод обучения без учителя, поскольку мы определяем структуру данных, группируя точки данных в отдельные подгруппы. Теперь давайте сосредоточимся на алгоритме K-средних. Алгоритм K-средних нацелен на выбор центроидов, которые минимизируют инерцию или критерий суммы квадратов внутри кластера. Инерцию можно определить как меру того, насколько кластеры внутренне связаны.

Алгоритм кластеризации K-средних -
1. Это итеративный алгоритм, который пытается разделить набор данных на K заранее определенных отдельных неперекрывающихся подгрупп, где все данные точки, представляющие только одну группу.
2. Между каждым кластером есть центроид, и каждый раз, когда точки данных перемещаются на каждом шаге, можно визуализировать с помощью библиотек seaborn и matplotlib, и это выглядит очень удивительный. Каждое перемещение точки данных сохраняется и визуализируется.
3. Если в кластерах меньше вариаций, то точки данных более однородны в одном кластере.
4. Здесь в K-средствах K - это предопределенный ввод.
5. Работа-
(i) Сначала инициализируйте центроид путем перетасовки набор данных, а затем случайным образом выберите K точек для замены центроидов.
(ii) Итерация выполняется до тех пор, пока центроиды не изменятся.
(iii) Вычислить сумму квадрата расстояния между точками данных и все центроиды и расстояние вычисляются с помощью евклидова расстояния.
(iv) Назначьте каждую точку кластеру данных (центроиду).
(v) Вычислите центроиды для кластеров, взяв среднее значение всех точек данных которые принадлежат каждому кластеру, и здесь используется метод минимизации.
6. Мы можем застрять на локальном оптимуме, когда инициализируем любое случайное значение K на раннем уровне. Чтобы избежать этого алгоритма запуска, используйте другую инициализацию центроида. (Этого не происходит в случае набора данных IRIS)
7. Это реализуется из библиотеки scikit-learn.
8. Это можно применить к числовые или непрерывные данные с меньшими размерами, его можно применить к любому сценарию, в котором мы хотим создать группу из случайных групп. например. Классификация документов, содержащих различные текстовые файлы, форматы изображений, текстовые файлы, файлы PDF и т. Д.
Преобразование точек данных показано на графиках ниже.

9. Понимание значения K -
(i) K = 1 - наихудший сценарий, который мы можем найти при вычислении общей вариации.
(ii) Каждый раз, если мы увеличиваем кластер, вариация уменьшается, если кластеры равны точкам данных, тогда вариация будет равна 0.
10. Это реализовано в системе рекомендаций, которая у нас есть в Amazon, Netflix и многие другие.

Основные моменты для начала:

1. Создайте набор данных.
Он включает в себя импорт всех необходимых библиотек, таких как matplotlib, sklearn для выбора модели, pandas для загрузки CSV-файла набора данных IRIS.
Перед этим вы можете загрузить набор данных из Kaggle или репозиторий машинного обучения UCI. После импорта всех модулей вам просто нужно открыть / загрузить этот файл CSV через pandas. Помните, что у вас должен быть тот же путь к местоположению файла, иначе он не может быть импортирован.

2. Постройте модель
(i) Перед построением вы должны понять, что ваша модель будет делать за вас. Эту часть мы выполнили в визуализации, которая была объяснена ранее.
(ii) После этого вам нужно выбрать алгоритм, который вы хотите реализовать в модели. Здесь мы выбираем алгоритм K-средних или машину опорных векторов. Работа KNN описана выше, а работа SVM - ниже. Перед тем, как продолжить, мы также можем определить, что из логистической регрессии (LR), линейного дискриминантного анализа (LDA), K-ближайшего соседа (KNN), дерева классификации и регрессии (CART), Gaussian Naive Bayes (NB) и машины опорных векторов (SVM). ). Здесь KNN и SVM имеют почти одинаковую оценку перекрестной проверки, но более заметной с точки зрения точности и меньшего количества ошибок является SVM.
(iii) Затем создайте матрицу корреляции, используя тепловую карту библиотеки seaborn.
(iv) При визуализации мы можем наблюдать, что, когда мы выбираем отличать длину чашелистика от ширины чашелистника, Iris-Setosa формирует однородный кластер, но есть один выброс, в то время как гетерогенный кластер формируется между Iris-Vriginica и Iris- Versicolor. И когда функция была выбрана в соответствии с длиной лепестка и шириной лепестка, тогда было очень небольшое перекрытие, которое было у Iris-Vriginica и Iris-Versicolor. Итак, отсюда мы можем выделить три из них как характеристики, взятые как длина лепестка по сравнению с шириной лепестка.

3. Обучите модель
(i) Здесь нам нужно разделить набор данных на отделы обучения и тестирования. Обычно при тестировании у нас есть 30% данных, а остальные - 70%, а случайное начальное число здесь принимается равным 7. После разделения данных мы используем функцию соответствия, которая используется во время обучения данных.
(ii) Раньше мы просто визуализировали данные только через эти точки данных. Но теперь мы можем увидеть там точность по сравнению с предыдущей, взяв за черты чашелистик и лепесток (длину и ширину).
(iii) Затем мы формируем корреляционную матрицу из этих характеристик, и ее формирование происходит через sklearn. библиотека метрик, которую необходимо импортировать.
(iv) Мы также можем обучать модели, используя любые функции, такие как любая комбинация лепестков и чашелистиков с их длиной и шириной.

4. Делайте прогнозы.
(i) Мы предоставляем Iris-Setosa; Ирис-Вирджиния; Iris-Versicolor со следующими метками соответственно как [1,0,0]; [0,1,0]; [0,0,1]. И, видя эти метки, мы можем понять, что наша модель может предсказать.
(ii) Форсайт создается сразу после формирования корреляционной матрицы, и по ним мы можем легко их идентифицировать. Среднее значение записывается для всех наблюдений.
Таким образом, наша модель делает прогнозы с большей точностью.

ЧАСТЬ II
Использование модели глубокого обучения

Мы собираемся создать простейшую нейронную сеть под названием Искусственная нейронная сеть. Эта сеть - самая старая форма нейронной сети.
Машина действует как нейрон, и это системы, вдохновленные мозгом, которые предназначены для воспроизведения того, как мы, люди, учимся. Нейронные сети состоят из входного и выходного слоев, а также (в большинстве случаев) скрытого слоя, состоящего из модулей, которые преобразуют входные данные во что-то, что может использовать выходной слой. Итак, давайте начнем с некоторых библиотек, которые мы собираемся использовать и реализовать набор данных IRIS.

Загрузка набора данных (файла CSV) выполняется так же, как было упомянуто выше.

(i) Керас - очень известная библиотека глубокого обучения, которую мы здесь используем. Легко переваривается. Keras - это высокоуровневый API нейронной сети, написанный на Python и способный работать поверх TensorFlow, Microsoft CNTK или Theano. Он позволяет легко и быстро создавать прототипы (благодаря удобству для пользователя, модульности и расширяемости) и поддерживает как сверточные сети, так и повторяющиеся сети, а также их комбинации. Основная структура данных Keras - это модель, способ организации слоев. Самый простой тип модели - это последовательная модель, линейный набор слоев, который мы тоже здесь использовали.

(ii) Для предварительной обработки и выбора модели и определения ее оценки мы используем библиотеку sklearn.

(iii) Для обучения модели нам просто нужно сначала закодировать метки и отправить их для обучения модели с помощью функции .fit (). Примерка приравнивается к тренировке. Затем, после обучения, модель можно использовать для прогнозирования, обычно с помощью вызова метода .predict (). Затем просто преобразуйте их, чтобы преобразовать вектор класса (целые числа от 0 до nb_classes) в матрицу двоичного класса для использования с потерями categoryorical_crossentropy. Если мы используем эту потерю, мы обучим CNN выводить вероятность по классам C для каждого изображения. Используется для мультиклассовой классификации.

(iv) Теперь нам необходимо создать нейронную сеть, состоящую как минимум из трех слоев, для получения лучших результатов. А функции активации, которые мы использовали, - это «relu» и «softmax». Softmax, который мы использовали, предназначен для выходных слоев, и это нормализованная экспоненциальная функция, которая принимает в качестве входных данных вектор из K действительных чисел и нормализует его в распределение вероятностей, состоящее из K вероятностей, в то время как Relu используется для входного слоя, а ReLU означает выпрямленное линейное единицей и представляет собой тип функции активации. Математически это определяется как y = max (0, x). ReLU - наиболее часто используемая функция активации в нейронных сетях, особенно в CNN. Если вы не уверены, какую функцию активации использовать в своей сети, ReLU обычно является хорошим первым выбором.

(v) С помощью KerasClassifier мы разделяем наш набор данных на batch_size. Размер партии должен быть небольшим по количеству, но не слишком большим, так как у нас всего 150 сэмплов, а также мы устанавливаем количество эпох. Эпоха, эпоха - это гиперпараметр, который определяется перед обучением модели. Одна эпоха - это когда весь набор данных передается как вперед, так и назад через нейронную сеть только один раз, а валидаторы, такие как KFold, разбивают набор данных и перемешивают их, предварительно определив «начальное число».

(vi) Мы можем оценить наш результат с помощью оценки перекрестной проверки, и в результате у нас есть как среднее значение, так и стандартное отклонение. Полученное значение составляет 97,33% и 4,42% соответственно.

Дополнительная информация

Мы также можем использовать Tensorflow для определения нашего результата, мы можем визуально видеть потери в нашем наборе данных на каждом этапе. В тензорном потоке мы используем GradientDecentOptimizer, и потеря может начинаться с 2,5, но не паникуйте, она уменьшается до 0,07, и здесь результат будет лучше, как - Точность обучения: 97,1% и
Точность проверки: 97,8%

Для получения информации о коде и дополнительных вопросов свяжитесь со мной по электронной почте [email protected] и просмотрите его тоже. Это только начало, есть еще много чего поехать.