Mesterséges Intelligencia I. ID3 futás Futtassuk az ID3 algoritmust az S adatbázison az E(S) = 4p + p entrópia használatával. Kezdeti hívás: ID3(S,{Outlook, T emperature, Humidity, W ind}) 1. ábra. S adatbázis (eredeti) A következő Gain értékek maximumaként tudja az algoritmus kiválasztani az aktuális hívásban létrejövő csomópont címkéjét. E(S) = 4 9 5 14 14 = 90 98 Gain(S,Outlook) = 90 ( 5 98 14 4 3 55 + 4 14 44 0 44 + 5 14 43 55 Gain(S,Temp) = 90 ( 4 98 14 4 44 + 6 14 44 66 + 4 ) 14 43 1 44 Gain(S,Hum) = 90 ( 7 98 14 43 7 Gain(S,Wind) = 90 ( 8 98 ) = 90 98 4 35 = 0.3 = 90 98 37 4 = 0.03 4 7 + 7 ) 14 46 1 = 90 77 98 36 49 = 0.18 14 46 88 + 6 ) 14 43 3 = 90 66 98 6 7 = 0.06 Maximális a Sunny attributum ő lesz a gyökér, 3 leszármazottal.
. ábra. Első hívás által létrehozott csomópont Minden egyes leszármazott egy-egy rekurzív hívással lesz létrehozva. ASunny él mentén történő hívás:id3(s Outlook=Sunny,{Temperature,Humidity,Wind}) 3. ábra. S Outlook=Sunny adatbázis A következő Gain értékek maximumaként tudja az algoritmus kiválasztani az aktuális hívásban létrejövő csomópont címkéjét. E(S) = 4 3 55 = 4 5 Gain(S Outlook=Sunny,Temp) = 4 ( 5 5 40 + 5 41 Gain(S Outlook=Sunny,Hum) = 4 5 Gain(S Outlook=Sunny,Wind) = 4 ( 3 5 1 + 1 ) 5 41 0 11 ( 3 5 40 3 33 + ) 5 4 0 5 41 33 + ) 5 41 1 = 4 5 4 10 = 4 5 = 4 5 X > 0 Maximális a Humidity attributum ő lesz az Outlook csúcs Sunny él menti leszármazottja.
4. ábra. Második hívás által létrehozott csomópont Minden egyes leszármazott egy-egy rekurzív hívással lesz létrehozva. AHigh él mentén történő hívás:id3(s Outlook=Sunny Humidity=High,{Temperature,Wind}) 5. ábra. S Outlook=Sunny Humidity=High adatbázis Ahogy látható az adatbázis homogén (csak N o címkével rendelkező példákat tartalmaz), ami az ID3 algoritmus megállási feltétele. Tehát megállunk és egy No címkével 6. ábra. Második hívás által létrehozott csomópont
ANormal él mentén történő hívás:id3(s Outlook=Sunny Humidity=Normal,{Temperature,Wind}) 7. ábra. S Outlook=Sunny Humidity=Normal adatbázis Ahogy látható az adatbázis homogén (csak Yes címkével rendelkező példákat tartalmaz), ami az ID3 algoritmus megállási feltétele. Tehát megállunk és egy Y es címkével 8. ábra. Harmadik hívás által létrehozott csomópont Mivel a Humidity csomópont teljes részfáját létrehoztuk visszatér a rekurzió. 9. ábra. Visszatérünk a gyökér szintjére AOvercast él mentén történő hívás:id3(s Outlook=Overcast,{Temperature,Humidity,Wind})
10. ábra. S Outlook=Overcast adatbázis Ahogy látható az adatbázis homogén (csak Yes címkével rendelkező példákat tartalmaz), ami az ID3 algoritmus megállási feltétele. Tehát megállunk és egy Y es címkével 11. ábra. A következő hívás által létrehozott csomópont
ARain él mentén történő hívás:id3(s Outlook=Rain,{Temperature,Humidity,Wind}) 1. ábra. S Outlook=Rain adatbázis A következő Gain értékek maximumaként tudja az algoritmus kiválasztani az aktuális hívásban létrejövő csomópont címkéjét. E(S) = 4 3 55 = 4 5 Gain(S Outlook=Rain,Temp) = 4 5 Gain(S Outlook=Rain,Hum) = 4 ( 5 Gain(S Outlook=Rain,Wind) = 4 ( 3 5 ( 3 5 4 1 33 + ) 5 41 1 = 4 5 14 15 5 41 1 + 3 ) 5 4 1 = 4 33 5 14 15 5 43 0 33 + ) 5 40 = 4 5 Maximális a Wind attributum ő lesz az Outlook csúcs Rain él menti leszármazottja. 13. ábra. A következő hívás által létrehozott csomópont
Minden egyes leszármazott egy-egy rekurzív hívással lesz létrehozva. AWeak él mentén történő hívás:id3(s Outlook=Rain Wind=Weak,{Temperature,Humidity}) 14. ábra. S Outlook=Rain Wind=Weak adatbázis Ahogy látható az adatbázis homogén (csak Yes címkével rendelkező példákat tartalmaz), ami az ID3 algoritmus megállási feltétele. Tehát megállunk és egy Y es címkével 15. ábra. Következő hívás által létrehozott csomópont
AStrong él mentén történő hívás:id3(s Outlook=Rain Wind=Strong,{Temperature,Humidity}) 16. ábra. S Outlook=Rain Wind=Strong adatbázis Ahogy látható az adatbázis homogén (csak N o címkével rendelkező példákat tartalmaz), ami az ID3 algoritmus megállási feltétele. Tehát megállunk és egy No címkével 17. ábra. Következő hívás által létrehozott csomópont Mivel a Wind csomópont teljes részfáját létrehoztuk visszatér a rekurzió. Mivel a Outlook csomópont teljes részfáját létrehoztuk visszatér a rekurzió. A futás véget ér.
Ugyan ez a feladat Shanon entropiával számolva: E : p i log pi E(S) = 9 14 log 9 14 5 14 log 5 14 = 0.94 [ 4 Gain(S, Outlook) = 0.94 14 ( 4 4 log 4 4 0 4 log 0 4 )+ 5 14 ( 5 log 5 3 5 log 3 5 )+ 5 14 ( 3 5 log 3 5 ] 5 log 3 5 ) = 0.5 [ 4 Gain(S,Temp) = 0.94 14 ( 3 4 log 3 4 1 4 log 1 4 )+ 4 14 ( 4 log 4 4 log 4 )+ 6 14 ( 4 6 log 4 6 ] 6 log 6 ) = 0.09 [ 7 Gain(S,Hum) = 0.94 14 ( 3 7 log 3 7 4 7 log 4 7 )+ 7 14 ( 6 7 log 6 7 1 ] 7 log 1 7 ) = 0.15 [ 6 Gain(S,Wind) = 0.94 14 ( 3 6 log 3 6 3 6 log 3 6 )+ 8 14 ( 6 8 log 6 8 ] 8 log 8 ) = 0.048 E(S Outlook=Sunny ) = 5 log [ Gain(S Outlook=Sunny,Temp) = 0.97 [ 3 Gain(S Outlook=Sunny,Hum) = 0.97 [ Gain(S Outlook=Sunny,Wind) = 0.97 5 3 5 log 3 5 = 0.97 5 ( 0 log 0 log )+ 5 ( 1 log 1 1 log 1 )+ 1 5 ( 1 1 log 1 1 0 ] 1 log 0 1 ) 5 ( 0 3 log 0 3 3 3 log 3 3 )+ 5 ( log 0 ] log 0 ) = 0.97 5 ( 1 log 1 1 log 1 )+ 3 5 ( 1 3 log 1 3 ] 3 log 3 ) = 0.0 E(S Outlook=Rain ) = 3 5 log 3 5 5 log 5 = 0.97 [ Gain(S Outlook=Rain,Temp) = 0.97 0+ 3 5 ( 3 log 3 1 3 log 1 3 )+ 5 ( 1 log 1 1 ] log 1 ) = 0.0 [ Gain(S Outlook=Rain,Hum) = 0.97 5 ( 1 log 1 1 log 1 )+ 3 5 ( 3 log 3 1 ] 3 log 1 3 ) = 0.0 [ Gain(S Outlook=Rain,Wind) = 0.97 5 ( 0 log 0 log )+ 3 5 ( 3 3 log 3 3 0 ] 3 log 0 3 ) = 0.97