Как да приложим алгоритъма Find-S в машинното обучение?



Тази статия обхваща концепцията за алгоритъм за намиране в машинно обучение. Той се върти около различни терминологии на хипотези, използвайки пример за употреба.

В , концептуалното обучение може да се определи като „ проблем за търсене в предварително дефинирано пространство на потенциална хипотеза за хипотезата, която най-добре отговаря на примери за обучение ”- Том Мичъл. В тази статия ще преминем през един такъв концептуален алгоритъм за обучение, известен като алгоритъм Find-S. Следните теми са обсъдени в тази статия.

Какво представлява алгоритъмът Find-S в машинното обучение?

За да разберете алгоритъма Find-S, трябва да имате основна представа и за следните концепции:





  1. Учене на концепции
  2. Обща хипотеза
  3. Специфична хипотеза

1. Учене на концепция

Нека се опитаме да разберем концептуалното обучение с пример от реалния живот. Повечето от човешкото обучение се основава на минали случаи или опит. Например, ние сме в състояние да идентифицираме всеки тип превозно средство въз основа на определен набор от функции като марка, модел и т.н., които са дефинирани за голям набор от функции.



Тези специални характеристики разграничават набора от автомобили, камиони и т.н. от по-големия набор от превозни средства. Тези характеристики, които определят набора от автомобили, камиони и т.н., са известни като понятия.

Подобно на това, машините могат също да се учат от концепции, за да идентифицират дали даден обект принадлежи към определена категория или не. Всякакви което поддържа концепцията за обучение изисква следното:

  • Данни за обучение
  • Целева концепция
  • Действителни обекти на данни

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



Хипотезата като цяло е обяснение за нещо. Общата хипотеза основно посочва общата връзка между основните променливи. Например, обща хипотеза за поръчка на храна би била Искам бургер.

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

3. Специфична хипотеза

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

S = {„& Phi“, „& Phi“, „& Phi“, ……, „& Phi“}

Сега, нека поговорим за алгоритъма Find-S в машинното обучение.

проста реализация на hashmap в java

Алгоритъмът Find-S следва стъпките, написани по-долу:

  1. Инициализирайте „h“ до най-конкретната хипотеза.
  2. Алгоритъмът Find-S разглежда само положителните примери и елиминира отрицателните примери. За всеки положителен пример алгоритъмът проверява за всеки атрибут в примера. Ако стойността на атрибута е същата като стойността на хипотезата, алгоритъмът продължава без никакви промени. Но ако стойността на атрибута е различна от стойността на хипотезата, алгоритъмът я променя на ‘?’.

След като приключихме с основното обяснение на алгоритъма Find-S, нека да разгледаме как работи.

Как работи?

алгоритъм на flowchart-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

За да разберем изпълнението, нека се опитаме да го приложим към по-малък набор от данни с куп примери, за да решим дали човек иска да излезе на разходка.

как да пишете в java -

Концепцията на този конкретен проблем ще бъде в кои дни човек обича да ходи на разходка.

Време Метеорологично време Температура Търговско дружество Влажност Вятър Отива
СутринСлънчевоТоплоДаЛекСилнаДа
ВечерДъждовноСтудНеЛекНормалноНе
СутринСлънчевоУмеренДаНормалноНормалноДа
ВечерСлънчевоСтудДаВисокоСилнаДа

Разглеждайки набора от данни, имаме шест атрибута и последен атрибут, който определя положителния или отрицателния пример. В този случай да е положителен пример, което означава, че човекът ще излезе на разходка.

И така, общата хипотеза е:

з0= {„Сутрин“, „Слънчево“, „Топло“, „Да“, „Меко“, „Силно“}

Това е нашата обща хипотеза и сега ще разгледаме всеки пример един по един, но само положителните примери.

зедин= {‘Сутрин’, ‘Слънчево’, ‘?’, ‘Да’, ‘?’, ‘?’}

з2= {‘?’, ‘Слънчево’, ‘?’, ‘Да’, ‘?’, ‘?’}

Заменихме всички различни стойности в общата хипотеза, за да получим резултатна хипотеза. Сега, след като знаем как работи алгоритъмът Find-S, нека да разгледаме изпълнение, използващо Python .

Случай за употреба

Нека се опитаме да приложим горния пример, използвайки . Кодът за прилагане на алгоритъма Find-S, използващ горните данни, е даден по-долу.

импортиране на панди като pd импортиране на numpy като np # за четене на данните в csv файла data = pd.read_csv ('data.csv') print (data, 'n') # създаване на масив от всички атрибути d = np.array (данни) [:,: - 1] print ('n Атрибутите са:', d) #segragating the target that has positive and negative examples target = np.array (data) [:, - 1] print ('n Целта е: ', target) #training функция за внедряване на алгоритъм за намиране s def def (c, t): за i, val в enumerate (t): ако val ==' Да ': specific_hypothesis = c [i] copy () прекъсване за i, val в enumerate (c): ако t [i] == 'Да': за x в обхват (len (специфична_хипотеза)): ако val [x]! = специфична_хипотеза [x]: specific_hypothesis [ x] = '?' else: pass return специфична_хипотеза #получаване на отпечатъка на крайната хипотеза ('n Крайната хипотеза е:', train (d, target))

Изход:

Това ни води до края на тази статия, където научихме алгоритъма Find-S в Machine Learning с неговото прилагане и използване. Надявам се да сте наясно с всичко споделено с вас в този урок.

Ако сте намерили тази статия за „Алгоритъм на Find-S в машинно обучение“ подходяща, разгледайте доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят.

Ние сме тук, за да ви помогнем при всяка стъпка по вашето пътуване и да изготвим учебна програма, предназначена за студенти и професионалисти, които искат да бъдат . Курсът е предназначен да ви даде начален старт в програмирането на Python и да ви обучи както за основните, така и за напредналите концепции на Python, заедно с различни като , и т.н.

Ако попаднете на някакви въпроси, не се колебайте да зададете всичките си въпроси в раздела за коментари на „Find-S Algorithm In Machine Learning“ и нашият екип ще се радва да отговори.