Как реализовать алгоритм Find-S в машинном обучении?



В этой статье рассматривается концепция алгоритма find-s в машинном обучении. Он вращается вокруг различных терминологий гипотез на примере варианта использования.

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

Что такое алгоритм Find-S в машинном обучении?

Чтобы понять алгоритм Find-S, вам также необходимо иметь общее представление о следующих концепциях:





  1. Концептуальное обучение
  2. Общая гипотеза
  3. Конкретная гипотеза

1. Концептуальное обучение

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



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

Аналогично этому, машины также могут учиться на концепциях, чтобы определить, принадлежит ли объект к определенной категории или нет. Любые для поддержки концептуального обучения требуется следующее:

  • Данные обучения
  • Целевая концепция
  • Фактические объекты данных

2. Общая гипотеза



Гипотеза, в общем, есть объяснение чего-то. Общая гипотеза в основном устанавливает общую взаимосвязь между основными переменными. Например, общая гипотеза для заказа еды будет следующей: Я хочу бургер.

G = {‘?’, ‘?’, ‘?’,… .. ’?’}

3. Конкретная гипотеза

Конкретная гипотеза заполняет все важные детали о переменных, указанных в общей гипотезе. Более конкретные детали в приведенном выше примере будут такими: Я хочу чизбургер с начинкой из куриного пепперони и большим количеством салата.

S = {‘& Phi’, ’& Phi ',' & Phi ', ……,' & Phi '}

Теперь поговорим об алгоритме Find-S в машинном обучении.

Алгоритм Find-S следует шагам, описанным ниже:

  1. Инициализируйте 'h' для наиболее конкретной гипотезы.
  2. Алгоритм Find-S рассматривает только положительные примеры и исключает отрицательные примеры. Для каждого положительного примера алгоритм проверяет каждый атрибут в примере. Если значение атрибута совпадает со значением гипотезы, алгоритм продолжается без каких-либо изменений. Но если значение атрибута отличается от значения гипотезы, алгоритм меняет его на «?».

Теперь, когда мы закончили с основным объяснением алгоритма Find-S, давайте посмотрим, как он работает.

Как это работает?

алгоритм поиска блок-схем в машинном обучении - edureka

  1. Процесс начинается с инициализации «h» с наиболее конкретной гипотезой, как правило, это первый положительный пример в наборе данных.
  2. Проверяем на каждом положительном примере. Если пример отрицательный, мы перейдем к следующему примеру, но если это положительный пример, мы рассмотрим его на следующем шаге.
  3. Мы проверим, соответствует ли каждый атрибут в примере значению гипотезы.
  4. Если значение совпадает, то никаких изменений не производится.
  5. Если значение не совпадает, значение изменяется на «?».
  6. Мы делаем это, пока не дойдем до последнего положительного примера в наборе данных.

Ограничения алгоритма Find-S

Есть несколько ограничений алгоритма Find-S, перечисленных ниже:

  1. Невозможно определить, согласована ли гипотеза по всем данным.
  2. Несогласованные обучающие наборы могут фактически ввести алгоритм Find-S в заблуждение, поскольку он игнорирует отрицательные примеры.
  3. Алгоритм Find-S не предоставляет метод поиска с возвратом для определения наилучших возможных изменений, которые можно было бы сделать для улучшения итоговой гипотезы.

Теперь, когда мы знаем об ограничениях алгоритма Find-S, давайте посмотрим на практическую реализацию алгоритма Find-S.

Реализация алгоритма Find-S

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

Сортировка массива c ++

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

Время Погода Температура Компания Влажность ветер Идет
УтроСолнечныйТеплыйдаНезначительныйСильныйда
ВечерДождливыйХолодныйНетНезначительныйНормальныйНет
УтроСолнечныйУмеренныйдаНормальныйНормальныйда
ВечерСолнечныйХолодныйдаВысокоСильныйда

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

Итак, общая гипотеза такова:

час0= {«Утро», «Солнечно», «Теплое», «Да», «Мягкое», «Крепкое»}

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

часодин= {'Доброе утро', 'Солнечно', '?', 'Да', '?', '?'}

час2= {‘?’, ‘Sunny’, ‘?’, ‘Да’, ‘?’, ‘?’}

Мы заменили все различные значения в общей гипотезе, чтобы получить результирующую гипотезу. Теперь, когда мы знаем, как работает алгоритм Find-S, давайте взглянем на реализацию, использующую Python .

Пример использования

Давайте попробуем реализовать приведенный выше пример, используя . Код для реализации алгоритма Find-S с использованием приведенных выше данных приведен ниже.

import pandas as pd import numpy as np # для чтения данных из файла csv data = pd.read_csv ('data.csv') print (data, 'n') # создание массива всех атрибутов d = np.array (data) [:,: - 1] print ('n Атрибуты:', d) # разделение цели с положительными и отрицательными примерами target = np.array (data) [:, - 1] print ('n Цель: ', target) # обучающая функция для реализации алгоритма find-s def train (c, t): for i, val в enumerate (t): if val ==' Yes ​​': specific_hypothesis = c [i]. copy () break для i, val в перечислении (c): if t [i] == 'Да': для x в диапазоне (len (specific_hypothesis)): if val [x]! = specific_hypothesis [x]: specific_hypothesis [ x] = '?' else: pass return specific_hypothesis # получение окончательной гипотезы print ('n Последняя гипотеза:', train (d, target))

Вывод:

На этом мы подошли к концу статьи, где мы изучили алгоритм Find-S в Mach.In Learning с его реализацией и вариантом использования. Я надеюсь, что вы понимаете все, о чем вам рассказали в этом руководстве.

Если вы нашли эту статью «Алгоритм Find-S в машинном обучении» релевантной, ознакомьтесь с надежная компания онлайн-обучения с сетью из более чем 250 000 довольных учащихся по всему миру.

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

Если у вас возникнут какие-либо вопросы, не стесняйтесь задавать все свои вопросы в разделе комментариев «Алгоритм Find-S в машинном обучении», и наша команда будет рада ответить.