A continuación se describe la aplicaciónn del algoritmo de árbol de decisión ID3.
Se utiliza el dataset golf tomando Outlook, Temperature, Humidity, Windy como variables predictoras y PlayGolf como variable objetivo
1- Se calcula la entropia en la variable objetivo PlayGolf \[
E(S)=\sum_{i=1}^{C}-\mathit{p}{i}\log_{2}(p{i})
\] En el caso particular de una clasificación binaria (ejemplos positivos / negativos), la fórmula anterior queda: \[E(S)=-{P}log_{2}(P)-Nlog_{2}(N)\]
Donde:
N= 14
Entropy(PlayGolf)
=Entropy(5,9)
=Entropy(0.36,0.64)
=-(0.36*log2(0.36))-(0.64*log2(0.64))
[1] 0.9426832
¿Qué atributo crea las ramas más homogéneas y, por tanto, proporciona una ganancia de información mayor? Respondiendo a esta pregunta obtendríamos cuál sería la mejor pregunta posible en un determinado momento, para ello:
Se calcula la entropía del total. Se divide el conjunto de datos en función de los diferentes atributos. Se calcula la entropía de cada rama y se suman proporcionalmente las ramas para calcular la entropía del total:
E(T,X)=???c???Xp(c)E(Sc)
Se resta este resultado de la entropía original, obteniendo como resultado la Ganancia de Información (descenso de entropía) usando este atributo.
Gain(T,X)=E(T)???E(T,X)Gain(T,X)=E(T)???E(T,X)
El atributo con mayor Ganancia es selecciona como nodo de decisión.
Una rama con entropía 00 se convierte en una hoja (nodo-respuesta), ya que representa una muestra completamente homogénea, en la que todos los ejemplos tienen la misma clasificación. Si no es así, la rama debe seguir subdividiéndose con el fin de clasificar mejor sus nodos.
Atributo Outlook
| Sunny |
3 |
2 |
5 |
| Overcast |
4 |
0 |
4 |
| Rainy |
2 |
3 |
5 |
|
|
Total |
14 |
=E(PlayGolf,Outlook)
=P(Sunny)*E(3,2)+P(Overcast)*E(4,0)+P(Rainy)*E(2,3)
E(3,2)=entropy(2/5,3/5)=-2/5log(2/5)-3/5log(3/5)=0.971
E(4,0)=entropy(1,0)=-1/5log(1)-1log(1)=0
E(2,3)=entropy(3/5,2/5)=-3/5log(3/5)-2/5log(2/5)=0.971
=(5/14)*0.971 + (4/14)*0.0 +(5/14)* 0.971
[1] 0.6935714
Information gain: information before splitting - information after splitting ???
gain(Outlook ) = info([9,5]) - info([2,3],[4,0],[3,2]) = 0.940 - 0.693 = 0.247 bits
Information gain for attributes from weather data:
gain(Outlook ) = 0.247 bits
gain(Temperature ) = 0.029 bits
gain(Humidity ) = 0.152 bits
gain(Windy ) = 0.048 bits
http://www.cs.us.es/~fsancho/?e=104 http://accelera.uab.cat/help.php?file=advanced_markdown.html https://es.slideshare.net/marinasantini1/lecture-4-decision-trees-2-entropy-information-gain-gain-ratio-55241087
LS0tDQp0aXRsZTogIkFyYm9sZXMgZGUgZGVjaXNpb24iDQpvdXRwdXQ6DQogIGh0bWxfbm90ZWJvb2s6IGRlZmF1bHQNCiAgaHRtbF9kb2N1bWVudDogZGVmYXVsdA0KLS0tDQoNCg0KQSBjb250aW51YWNp824gc2UgZGVzY3JpYmUgbGEgYXBsaWNhY2nzbm4gZGVsIGFsZ29yaXRtbyBkZSDDoXJib2wgZGUgZGVjaXNpw7NuIElEMy4gDQoNClNlIHV0aWxpemEgZWwgZGF0YXNldCBnb2xmIHRvbWFuZG8gT3V0bG9vaywgVGVtcGVyYXR1cmUsIEh1bWlkaXR5LCBXaW5keSBjb21vIHZhcmlhYmxlcyBwcmVkaWN0b3JhcyB5IFBsYXlHb2xmIGNvbW8gdmFyaWFibGUgb2JqZXRpdm8NCmBgYHtyLCBlY2hvPUZBTFNFLCBldmFsPVRSVUV9DQpnb2xmDQpgYGANCjEtIFNlIGNhbGN1bGEgbGEgZW50cm9waWEgZW4gbGEgdmFyaWFibGUgb2JqZXRpdm8gKlBsYXlHb2xmKg0KJCQgDQpFKFMpPVxzdW1fe2k9MX1ee0N9LVxtYXRoaXR7cH17aX1cbG9nX3syfShwe2l9KQ0KJCQNCkVuIGVsIGNhc28gcGFydGljdWxhciBkZSB1bmEgY2xhc2lmaWNhY2nzbiBiaW5hcmlhIChlamVtcGxvcyBwb3NpdGl2b3MgLyBuZWdhdGl2b3MpLCBsYSBm83JtdWxhIGFudGVyaW9yIHF1ZWRhOg0KJCRFKFMpPS17UH1sb2dfezJ9KFApLU5sb2dfezJ9KE4pJCQNCg0KDQpEb25kZToNCg0KTj0gMTQNCg0KT3BjafNuIHwgQ2FudGlkYWQgKFEpIHwgUHJvYmFiaWxpZGFkIChRL04pfCANCnwgOi0tLS0tLS0gfCA6LS0tLS0tOiB8IC0tLS0tOiB8DQp5ZXMgfCA5IHwgMC42NCAgfCANCm5vIHwgNSB8IDAuMzYgfCANCg0KDQpgYGB7ciwgZWNobz1UUlVFLCBldmFsPUZBTFNFfQ0KRW50cm9weShQbGF5R29sZikNCj1FbnRyb3B5KDUsOSkNCj1FbnRyb3B5KDAuMzYsMC42NCkNCj0tKDAuMzYqbG9nMigwLjM2KSktKDAuNjQqbG9nMigwLjY0KSkNCmBgYA0KDQpgYGB7ciwgZWNobz1GQUxTRSwgZXZhbD1UUlVFfQ0KLSgwLjM2KmxvZzIoMC4zNikpLSgwLjY0KmxvZzIoMC42NCkpDQpgYGANCg0Kv1F16SBhdHJpYnV0byBjcmVhIGxhcyByYW1hcyBt4XMgaG9tb2fpbmVhcyB5LCBwb3IgdGFudG8sIHByb3BvcmNpb25hIHVuYSBnYW5hbmNpYSBkZSBpbmZvcm1hY2nzbiBtYXlvcj8gUmVzcG9uZGllbmRvIGEgZXN0YSBwcmVndW50YSBvYnRlbmRy7WFtb3MgY3XhbCBzZXLtYSBsYSBtZWpvciBwcmVndW50YSBwb3NpYmxlIGVuIHVuIGRldGVybWluYWRvIG1vbWVudG8sIHBhcmEgZWxsbzoNCg0KU2UgY2FsY3VsYSBsYSBlbnRyb3DtYSBkZWwgdG90YWwuDQpTZSBkaXZpZGUgZWwgY29uanVudG8gZGUgZGF0b3MgZW4gZnVuY2nzbiBkZSBsb3MgZGlmZXJlbnRlcyBhdHJpYnV0b3MuDQpTZSBjYWxjdWxhIGxhIGVudHJvcO1hIGRlIGNhZGEgcmFtYSB5IHNlIHN1bWFuIHByb3BvcmNpb25hbG1lbnRlIGxhcyByYW1hcyBwYXJhIGNhbGN1bGFyIGxhIGVudHJvcO1hIGRlbCB0b3RhbDoNCg0KRShULFgpPT8/P2M/Pz9YcChjKUUoU2MpDQoNClNlIHJlc3RhIGVzdGUgcmVzdWx0YWRvIGRlIGxhIGVudHJvcO1hIG9yaWdpbmFsLCBvYnRlbmllbmRvIGNvbW8gcmVzdWx0YWRvIGxhIEdhbmFuY2lhIGRlIEluZm9ybWFjafNuIChkZXNjZW5zbyBkZSBlbnRyb3DtYSkgdXNhbmRvIGVzdGUgYXRyaWJ1dG8uDQoNCkdhaW4oVCxYKT1FKFQpPz8/RShULFgpR2FpbihULFgpPUUoVCk/Pz9FKFQsWCkNCg0KRWwgYXRyaWJ1dG8gY29uIG1heW9yIEdhbmFuY2lhIGVzIHNlbGVjY2lvbmEgY29tbyBub2RvIGRlIGRlY2lzafNuLg0KDQpVbmEgcmFtYSBjb24gZW50cm9w7WEgMDAgc2UgY29udmllcnRlIGVuIHVuYSBob2phIChub2RvLXJlc3B1ZXN0YSksIHlhIHF1ZSByZXByZXNlbnRhIHVuYSBtdWVzdHJhIGNvbXBsZXRhbWVudGUgaG9tb2fpbmVhLCBlbiBsYSBxdWUgdG9kb3MgbG9zIGVqZW1wbG9zIHRpZW5lbiBsYSBtaXNtYSBjbGFzaWZpY2FjafNuLiBTaSBubyBlcyBhc+0sIGxhIHJhbWEgZGViZSBzZWd1aXIgc3ViZGl2aWRp6W5kb3NlIGNvbiBlbCBmaW4gZGUgY2xhc2lmaWNhciBtZWpvciBzdXMgbm9kb3MuDQoNCkF0cmlidXRvIE91dGxvb2sNCg0KT3V0bG9vayB8IFllcyB8IE5vfCBDYW50aWRhZCAoUSkgfA0KfCA6LS0tLS0tLSB8IDotLS0tLS06IHwgOi0tLS0tOiB8IC0tLS0tOiB8DQpTdW5ueSB8IDMgfDIgIHwgNXwgDQpPdmVyY2FzdCB8IDQgfCAwIHw0IHwgDQpSYWlueSB8IDIgfDMgfDUgfA0KfCB8IHxUb3RhbHwxNHwgDQoNCmBgYHtyLCBlY2hvPVRSVUUsIGV2YWw9RkFMU0V9DQoNCj1FKFBsYXlHb2xmLE91dGxvb2spDQo9UChTdW5ueSkqRSgzLDIpK1AoT3ZlcmNhc3QpKkUoNCwwKStQKFJhaW55KSpFKDIsMykNCkUoMywyKT1lbnRyb3B5KDIvNSwzLzUpPS0yLzVsb2coMi81KS0zLzVsb2coMy81KT0wLjk3MQ0KRSg0LDApPWVudHJvcHkoMSwwKT0tMS81bG9nKDEpLTFsb2coMSk9MCANCkUoMiwzKT1lbnRyb3B5KDMvNSwyLzUpPS0zLzVsb2coMy81KS0yLzVsb2coMi81KT0wLjk3MQ0KDQo9KDUvMTQpKjAuOTcxICsgKDQvMTQpKjAuMCArKDUvMTQpKiAwLjk3MQ0KDQpgYGANCmBgYHtyLCBlY2hvPUZBTFNFLCBldmFsPVRSVUV9DQooNS8xNCkqMC45NzEgKyAoNC8xNCkqMC4wICsoNS8xNCkqIDAuOTcxDQoNCmBgYA0KIEluZm9ybWF0aW9uIGdhaW46IGluZm9ybWF0aW9uIGJlZm9yZSBzcGxpdHRpbmcgLSBpbmZvcm1hdGlvbiBhZnRlciBzcGxpdHRpbmcgPz8/DQogDQogIGdhaW4oT3V0bG9vayApID0gaW5mbyhbOSw1XSkgLSBpbmZvKFsyLDNdLFs0LDBdLFszLDJdKSA9IDAuOTQwIC0gMC42OTMgPSAwLjI0NyBiaXRzDQogIA0KICANCkluZm9ybWF0aW9uIGdhaW4gZm9yIGF0dHJpYnV0ZXMgZnJvbSB3ZWF0aGVyIGRhdGE6IA0KDQogZ2FpbihPdXRsb29rICkgPSAwLjI0NyBiaXRzIA0KIA0KIGdhaW4oVGVtcGVyYXR1cmUgKSA9IDAuMDI5IGJpdHMgDQogDQogZ2FpbihIdW1pZGl0eSApID0gMC4xNTIgYml0cyANCiANCiBnYWluKFdpbmR5ICkgPSAwLjA0OCBiaXRzIA0KIA0KDQoNCmh0dHA6Ly93d3cuY3MudXMuZXMvfmZzYW5jaG8vP2U9MTA0DQpodHRwOi8vYWNjZWxlcmEudWFiLmNhdC9oZWxwLnBocD9maWxlPWFkdmFuY2VkX21hcmtkb3duLmh0bWwNCmh0dHBzOi8vZXMuc2xpZGVzaGFyZS5uZXQvbWFyaW5hc2FudGluaTEvbGVjdHVyZS00LWRlY2lzaW9uLXRyZWVzLTItZW50cm9weS1pbmZvcm1hdGlvbi1nYWluLWdhaW4tcmF0aW8tNTUyNDEwODc=