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

  • Что такое алгоритм Find-S в машинном обучении?
  • Как это работает?
  • Ограничения алгоритма Find-S
  • Реализация алгоритма Find-S
  • Сценарий использования

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

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

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

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

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

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

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

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

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

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

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

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

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

S = {‘Φ’,’ Φ’,’ Φ’, ……,’Φ’}

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

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

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

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

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

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

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

Ниже перечислены некоторые ограничения алгоритма Find-S:

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

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

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

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

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

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

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

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

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

h1 = {"Утро", "Солнечно", "?", "Да", "?", "?"}

h2 = {‘?’, ‘Sunny’, ‘?’, ‘Да’, ‘?’, ‘?’}

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

Сценарий использования

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

import pandas as pd
import numpy as np
 
#to read the data in the csv file
data = pd.read_csv("data.csv")
print(data,"n")
 
#making an array of all the attributes
d = np.array(data)[:,:-1]
print("n The attributes are: ",d)
 
#segragating the target that has positive and negative examples
target = np.array(data)[:,-1]
print("n The target is: ",target)
 
#training function to implement find-s algorithm
def train(c,t):
    for i, val in enumerate(t):
        if val == "Yes":
            specific_hypothesis = c[i].copy()
            break
             
    for i, val in enumerate(c):
        if t[i] == "Yes":
            for x in range(len(specific_hypothesis)):
                if val[x] != specific_hypothesis[x]:
                    specific_hypothesis[x] = '?'
                else:
                    pass
                 
    return specific_hypothesis
 
#obtaining the final hypothesis
print("n The final hypothesis is:",train(d,target))

Вывод:

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

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

Обязательно обратите внимание на другие статьи в этой серии, которые объяснят различные другие аспекты Data Science.

1. Учебник по науке о данных

2. Математика и статистика для науки о данных

3. Линейная регрессия в R

4. Алгоритмы машинного обучения

5. Логистическая регрессия в R

6. Алгоритмы классификации

7. Случайный лес в R

8. Дерево решений в R

9. Введение в машинное обучение

10. Наивный Байес в R

11. Статистика и вероятность

12. Как создать идеальное дерево решений?

13. 10 главных мифов о роли специалистов по данным

14. Лучшие проекты в области науки о данных

15. Data Analyst vs Data Engineer vs Data Scientist

16. Типы искусственного интеллекта

17. R против Python

18. Искусственный интеллект против машинного обучения против глубокого обучения

19. Проекты машинного обучения

20. Интервью с аналитиком данных: вопросы и ответы

21. Инструменты для анализа данных и машинного обучения для непрограммистов

22. 10 лучших фреймворков машинного обучения

23. Статистика машинного обучения

24. Случайный лес в R

25. Алгоритм поиска в ширину

26. Линейный дискриминантный анализ в R

27. Предпосылки для машинного обучения

28. Интерактивные веб-приложения с использованием R Shiny

29. 10 лучших книг по машинному обучению

30. Обучение без учителя

31. 10 лучших книг по науке о данных

32. Обучение с учителем

Первоначально опубликовано на https://www.edureka.co