Kaip įdiegti „Find-S“ algoritmą mokantis mašinoje?



Šiame straipsnyje aptariama mašinų mokymosi algoritmo samprata. Jis sukasi aplink įvairias hipotezės terminologijas, pavyzdžiu panaudodamas naudojimo atvejį.

Į , koncepcijos mokymąsi galima pavadinti „ ieškojimo iš anksto nustatytos potencialios hipotezės erdvės problema hipotezei, kuri geriausiai tinka mokymo pavyzdžiams “- Tomas Mitchellas. Šiame straipsnyje mes apžvelgsime vieną tokį koncepcijos mokymosi algoritmą, žinomą kaip „Find-S“ algoritmas. Šiame straipsnyje aptariamos šios temos.

Kas yra mašininio mokymosi „Find-S“ algoritmas?

Norėdami suprasti „Find-S“ algoritmą, turite turėti pagrindinę šių sąvokų idėją:





java konvertuoti eilutę į datą
  1. Koncepcijos mokymasis
  2. Bendroji hipotezė
  3. Specifinė hipotezė

1. Koncepcijos mokymasis

Pabandykime suprasti koncepcijos mokymąsi pateikdami realaus gyvenimo pavyzdį. Daugelis žmonių mokosi remdamiesi praeities pavyzdžiais ar patirtimi. Pvz., Mes galime nustatyti bet kokio tipo transporto priemones pagal tam tikrą funkcijų rinkinį, pvz., Markę, modelį ir kt., Kuris yra apibrėžtas per daug funkcijų.



Šios specialios savybės išskiria lengvųjų automobilių, sunkvežimių ir kt. Rinkinį nuo didesnio transporto priemonių rinkinio. Šios savybės, apibrėžiančios automobilių, sunkvežimių ir kt. Rinkinį, yra žinomos kaip sąvokos.

Panašiai, mašinos taip pat gali mokytis iš sąvokų, kad nustatytų, ar objektas priklauso konkrečiai kategorijai, ar ne. Bet koks kuris palaiko mokymąsi koncepcijos, reikia:

  • Treniruočių duomenys
  • Tikslinė koncepcija
  • Faktiniai duomenų objektai

2. Bendroji hipotezė



Hipotezė apskritai yra kažko paaiškinimas. Bendroji hipotezė iš esmės nurodo bendrą ryšį tarp pagrindinių kintamųjų. Pavyzdžiui, būtų hipotezė užsisakyti maistą Noriu mėsainio.

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

3. Specifinė hipotezė

Specifinė hipotezė užpildo visas svarbias detales apie kintamuosius, pateiktus bendroje hipotezėje. Pirmiau pateiktame pavyzdyje būtų tikslesnė informacija Noriu sūrio burgerio su vištienos pepperoni įdaru su daugybe salotų.

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

„cloudera“ sertifikuotas „Apache hadoop“ kūrėjas

Dabar pakalbėkime apie mašininio mokymosi „Find-S“ algoritmą.

„Find-S“ algoritmas atlieka toliau nurodytus veiksmus:

  1. Inicijuokite „h“ pagal konkrečiausią hipotezę.
  2. „Find-S“ algoritmas atsižvelgia tik į teigiamus pavyzdžius ir pašalina neigiamus pavyzdžius. Kiekvieno teigiamo pavyzdžio atveju algoritmas tikrina kiekvieną pavyzdyje esantį atributą. Jei atributo reikšmė yra tokia pati kaip hipotezės reikšmė, algoritmas juda be jokių pakeitimų. Bet jei atributo vertė skiriasi nuo hipotezės vertės, algoritmas pakeičia ją į „?“.

Dabar, kai baigsime pagrindinį „Find-S“ algoritmo paaiškinimą, pažiūrėkime, kaip jis veikia.

Kaip tai veikia?

mašininio mokymosi schemos-radimo algoritmas - edureka

  1. Procesas pradedamas inicializuojant „h“ su konkrečia hipoteze, paprastai tai yra pirmasis teigiamas pavyzdys duomenų rinkinyje.
  2. Mes tikriname kiekvieną teigiamą pavyzdį. Jei pavyzdys yra neigiamas, mes pereisime prie kito pavyzdžio, tačiau jei jis yra teigiamas, mes jį apsvarstysime kitam žingsniui.
  3. Mes patikrinsime, ar kiekvienas pavyzdžio atributas yra lygus hipotezės vertei.
  4. Jei vertė sutampa, pakeitimai neatliekami.
  5. Jei vertė nesutampa, vertė pakeičiama į „?“.
  6. Tai darome tol, kol pasiekiame paskutinį teigiamą pavyzdį duomenų rinkinyje.

„Find-S“ algoritmo apribojimai

Žemiau pateikiami keli „Find-S“ algoritmo apribojimai:

  1. Jokiu būdu negalima nustatyti, ar hipotezė yra nuosekli visuose duomenyse.
  2. Nenuoseklūs mokymo rinkiniai iš tikrųjų gali klaidinti „Find-S“ algoritmą, nes jame nepaisomi neigiami pavyzdžiai.
  3. „Find-S“ algoritmas nepateikia „backtracking“ technikos, leidžiančios nustatyti geriausius įmanomus pakeitimus, kuriuos būtų galima padaryti siekiant pagerinti gautą hipotezę.

Dabar, kai žinome apie „Find-S“ algoritmo apribojimus, pažvelkime į „Find-S“ algoritmo praktinį įgyvendinimą.

„Find-S“ algoritmo įgyvendinimas

Norėdami suprasti įgyvendinimą, pabandykime jį įdiegti į mažesnį duomenų rinkinį su daugybe pavyzdžių, kad nuspręstume, ar žmogus nori eiti pasivaikščioti.

Šios konkrečios problemos koncepcija bus ta, kuriomis dienomis žmogus mėgsta vaikščioti.

Laikas Orai Temperatūra Įmonė Drėgmė Vėjas Eina
RytasSaulėtaŠiltaTaipŠvelnusStiprusTaip
VakarasLietingaŠaltaNeŠvelnusNormalusNe
RytasSaulėtaVidutinisTaipNormalusNormalusTaip
VakarasSaulėtaŠaltaTaipAukštasStiprusTaip

Žvelgdami į duomenų rinkinį, turime šešis atributus ir galutinį atributą, apibrėžiantį teigiamą arba neigiamą pavyzdį. Šiuo atveju taip yra teigiamas pavyzdys, o tai reiškia, kad žmogus eis pasivaikščioti.

Taigi dabar hipotezė yra tokia:

h0= {„Rytas“, „Saulėta“, „Šilta“, „Taip“, „Švelnus“, „Stiprus“}

Tai yra mūsų bendra hipotezė, ir dabar mes apsvarstysime kiekvieną pavyzdį po vieną, bet tik teigiamus pavyzdžius.

hvienas= {„Rytas“, „Saulėta“, „?“, „Taip“, „?“, „?“}

h2= {’?“, „Saulėta“, „?“, „Taip“, „?“, „?“}

Mes pakeitėme visas skirtingas bendrosios hipotezės reikšmes, kad gautume rezultatą. Dabar, kai žinome, kaip veikia „Find-S“ algoritmas, pažvelkime į įgyvendinimą „Python“ .

Naudojimo atvejis

Pabandykime įgyvendinti aukščiau pateiktą pavyzdį naudodami . Žemiau pateikiamas kodas „Find-S“ algoritmui įgyvendinti naudojant aukščiau pateiktus duomenis.

importuoti pandas kaip pd importuoti numerį kaip np # norint perskaityti duomenis csv faile data = pd.read_csv ('data.csv') print (duomenys, 'n') #daryti visų atributų masyvą d = np.array (duomenys) [:,: - 1] spausdinti ('n Atributai yra:', d) #grupuoti tikslą, turintį teigiamų ir neigiamų pavyzdžių target = np.array (duomenys) [:, - 1] print ('n Tikslas yra: ', target) #training funkcija, siekiant įgyvendinti radimo algoritmą def train (c, t): i, val in enumerate (t): jei val ==' Taip ': specifinė_hipotezė = c [i]. copy () lūžis i, val išvardytame (c): jei t [i] == 'Taip': x diapazone (len (specifinė_hipotezė)): jei val [x]! = specifinė_hipotezė [x]: specifinė_hipotezė [ x] = '?' else: praeiti grąžinti specifinę_hipotezę # gauti galutinę hipotezės atspaudą ('n Galutinė hipotezė yra:', traukinys (d, taikinys))

Išvestis:

kas yra virtuali funkcija java

Tai priveda mus prie šio straipsnio pabaigos, kur mes išmokome „Find-S“ algoritmą iš „Mach“Mokymasis su jo įgyvendinimu ir naudojimu. Tikiuosi, kad jums aišku viskas, kas su jumis buvo pasidalinta šioje pamokoje.

Jei jums pasirodė šis straipsnis apie „Find-S algoritmą mašininiame mokyme“, patikrinkite patikima internetinė mokymosi įmonė, turinti daugiau nei 250 000 patenkintų besimokančiųjų tinklą, pasklido po visą pasaulį.

Mes norime jums padėti kiekviename žingsnyje ir parengti mokymo programą, skirtą studentams ir specialistams, norintiems būti . Kursas sukurtas tam, kad galėtumėte pradėti pažvelgti į „Python“ programavimą ir išmokyti pagrindines ir pažangiausias „Python“ koncepcijas kartu su įvairiomis Kaip , ir kt.

Jei kyla klausimų, nedvejodami užduokite visus klausimus komentarų skyriuje „Find-S algoritmas mašininiame mokymesi“, ir mūsų komanda mielai atsakys.