Ver Mensaje Individual
  #3 (permalink)  
Antiguo 23/06/2010, 15:28
paridin
 
Fecha de Ingreso: abril-2009
Mensajes: 26
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Diccionarios Dentro de Diccionarios

Hola razpeitia, lo que quiere hacer concretamente es un algoritmo ID3, que es generar arboles, con nodos, y hojas, para hacer esto se necesita calcular la entropia, y para obtener está entropía debo calcular la sumatoria de los valores que se repiten ejemplo

si tengo mi tabla 1 :
Código:
Alta : si
Alta : no
Alta : si
Baja : no
Media : si
Baja : si
Alta : si
deberia estar obteniendo algo así tabla 2:
Código:
Alta : si => 3.0
Alta : no => 1.0
Media : si => 1.0. 
Baja : si => 1.0
Baja : no => 1.0
Entonces de aqui ya podria calcular la entropia

que seria la suma de Alta en si, Alta en no, Media en si, Baja en si, y Baja en noy cada una sobre el número que tiene. ejemplo:
Tabla 3
Código:
Alta              si                                no 
   = -  ( (3/4 * log2 (3/4 ) + ( 1/4 * log2 (1/4) )
Media          si
   = -  ( 1/1 * log2 (1/1) )
Baja            si                                 no 
   = -  ( 1/2 * log2 (1/2) ) + ( 1/2 * log2 (1/2) )
y ya posteriormente sacaria mi ganancia
mi problema básicamente si has corrido mi ejemplo es que me quede la como la tabla 2
y mi pregunta es, estoy haciendolo de manera correcta o dentro de python puedo utilizar otro mecanismo creo que es por q llevo una semana leyendo de el y por tanto mi experiencía es muy nula en el tema, y crei que sería la manera más simple el usar diccionarios dentro de diccionarios, no se que me recomiendas, creo que donde tengo dudas de como buscar los elementos de mis diccionarios

osea en mi código cuando creo los nuevos nodos pregunto si existe en el la llave del elemento anterior creo y ahi debo de preguntar en todo el diccionarios anterior no sólo en la posición anterior, esto por que cuando los elementos
Alta : no , Alta no <-- están juntos los incrementa pero si estubiera si se mete otro elemento ya no lo cuenta y le crea un nuevo nodo. espero darme a entender!!, y aclaro no quiero que me hagas el código simplemente quiero saber que funciones me pueden ayudar para solucionar estas condiciones escritas anteriormente, como nota: disculpa la identación como sólo hice copy paste creo q resulto no productivo
también tengo mucho código comentado que es el q me ayuda a entender como está trabajando python....

Un saludo !!! y gracias por el apoyo.