I
Antes de continuar con el siguiente tópico, me gustaría ahondar un poco más en el fascinante mundo del mansplaining.Hace unos años salió en la prensa una noticia en la que una niña de 6 años acusaba al juego infantil "¿Quién es quién?" de sexista. Aquí la tenéis recogida (en inglés) en The Independent y el HuffPost.
Para los que no estéis familiarizados con el juego, se trata de que ambos jugadores compiten por adivinar antes que el otro la identidad de un personaje que han seleccionado en secreto. La forma de conseguirlo es por eliminación, haciendo preguntas tipo Sí/No por turnos que nos permiten descartar aquellos personajes que no se ajustan a la información que vamos obteniendo.
Si te paras a pensar un segundo, es un juego bastante similar al "Hundir la flota", con la diferencia de que el espacio de juego en lugar de ser un tablero con coordenadas cartesianas tiene más dimensiones (características) con menos valores posibles cada una. Así que es bastante abstracto, la temática es algo meramente cosmético.
El juego es un buen indicador para saber cuáles son los prejuicios ocultos que tiene la gente, ya que normalmente levantará recelo sobre aquello que les obsesiona. Por ejemplo, los neofeministas se quejarán de que hay pocas mujeres, mientras que los cruzados de la raza se quejarán de que hay pocos negros. Curiosamente todavía no he visto a nadie quejarse de que hay pocos calvos (Larry David, ahí tienes material).
De hecho, mucha gente juega con la regla no-oficial de que está prohibido preguntar si el personaje oculto del adversario es una mujer en el primer turno.
La realidad es que es irrelevante qué pregunta hagas en el primer turno, ya que todos
1Realmente no todos guardan la proporción 80/20, como veremos en la siguiente sección, pero es difícil notarlo a simple vista.
los atributos están distribuidos en una proporción de 20%-80% (aprox. ya que la división de 24/5 no es exacta). Es decir, que en la primera jugada tienes un 80% de probabilidades de no acertar y descartar el 20% de los personajes y un 20% de probabilidades de acertar y descartar el 80% de los personajes, hagas la pregunta que hagas y sea cual sea el personaje oculto. El riesgo y el beneficio de cada decisión son directamente proporcionales, como debe ser en un juego justo.En el caso de que haya atributos no binarios, están divididos (casi) uniformemente en 5 categorías con aprox. un 20% de representación cada una (por ejemplo el color del pelo: 5 moreno, 5 rubio, 4 castaño, 5 blanco y 5 pelirrojo).
Si todas las características que hacen posible distinguir a un personaje estuviesen distribuidas en una proporción 50/50, entonces el juego no tendría gracia, porque siempre acabaría en 4 o 5 turnos (que es lo que se tarda en hacer una búsqueda por bisección, log2(24)=4.58) dejando poco lugar al azar (el primer jugador tendría una gran ventaja sobre el segundo).
La niña también se queja de que no puede ganar jugando contra un niño, porque a ella le gusta jugar con un personaje que se parezca a ella... El problema es que en lugar de tomar una decisión aleatoria que tu rival sea incapaz de adivinar estás siendo predecible. Si a mí me gustase jugar sólo con personajes con barba estaría incluso en una situación de partida peor (sólo hay 4).
La respuesta de Hasbro es impecable (explica básicamente lo mismo que he expresado yo arriba, sin entrar en tantos detalles), pero parece que no satisface a la madre. Igual de lamentable es que los redactores de los periódicos que publican la noticia, a quienes se les supone que al menos tienen una carrera, tampoco lo entienden:
Según ellos la respuesta es "condescendiente y demasiado complicada"... ¿Cómo puede ser una respuesta condescendiente y demasiado complicada a la vez? Sería condescendiente si lo simplificasen hasta tal punto que no ya respondiese a la pregunta.In HuffPost UK Lifestyle's humble opinion, the mother and daughter duo have raised a very good point.This team has also suffered at the hands of Hasbro when dealt the blow of picking out a female character.
La madre de la niña, no contenta con ello aún riza más el rizo preguntando la siguiente majadería:
Her mother asked: “Why is female gender regarded as a ‘characteristic’, while male gender is not?A ver, señora, lo que es una característica (o atributo) es el género. Masculino o femenino son los valores que puede tomar esa característica. La ignorancia combinada con la arrogancia es algo terrible (y suelen ir frecuentemente de la mano).
Llegados a ese punto absurdo, la víctima de la ira neofeminista está bien jodida: o les está diciendo cosas incomprensibles o les está haciendo mansplaining. A estas personas no les interesa la verdad. Ya tenían preconcebida cuál era la respuesta que querían y cualquier cosa distinta no aplacará su sed de sangre.
Lo más triste de todo esto es que la madre está predisponiendo a su hija en contra de las matemáticas. Como Hasbro las ha usado para demostrar que su queja no tenía ningún fundamento, ahora son una herramienta del heteropatriarcado para oprimir a las mujeres. Luego se extrañarán de que apenas hay mujeres en campos de ciencia y tecnología.
Por lo visto hay nuevas ediciones que han sido "revisadas" para incluir más mujeres... En esas versiones con paridad de género, ¡resulta que preguntar por el género en el primer turno sí que es una estrategia beneficiosa! Así que mientras antes el género era una característica neutra a efectos del juego (preguntar si el personaje misterioso era mujer era equivalente a preguntar si llevaba gafas), ese cambio introduce un sesgo que nos dice claramente que las diferencias de género son más relevantes.
Así que de nuevo tenemos una situación en la que el neofeminismo acaba produciendo situaciones sexistas. Bravo.
Además, si tenemos garantizado que tras la primera pregunta vamos a descartar sí o sí al 50% de los personajes... ¿Cuál es el sentido de que exista ese atributo? No aporta nada al juego, podrías empezar directamente con 12 personajes para ahorrar tiempo y no cambiaría nada a efectos de quién va a ganar.
II
Estaba viendo un vídeo bastante curioso sobre cómo hay una especie de "vacío legal" en las reglas del juego que te permite maximizar el número de personajes que descartas por turno, a pesar de que cada atributo de los personajes está en la misma proporción... Mientras lo hacía, he recordado un detalle que termina de retratar a la madre (y a la pobre hija): el personaje oculto no se elige, sino que se extrae al azar de una baraja.
Animado por éste, me he lanzado a hacer una tablita con todos los atributos para poder realizar un análisis cualitativo un poco más riguroso... Os la pongo aquí por si queréis hacer vuestros propios experimentos:
Las columnas de la barbilla tienen algunas interrogaciones, ya que algunos personajes la tienen oculta por la barba o es difícil decidir si tienen el mentón prominente o no, así que podríamos dejarlas fuera para evitar ambigüedades... De hecho, la barbilla no sigue la distribución 80/20, ya que hay un 33% de personas con mentón prominente (sin tener en cuenta los que lo tienen oculto) y un 29% que tienen hoyuelo (visible). Es posible que no sea algo intencional en el diseño del juego, sino un efecto de la libertad del artista al dibujar las caras.
El grosor de los labios también puede dar algo de lugar a dudas, por ejemplo Claire y Maria tienen los labios ligeramente más gruesos que el resto de personajes con la boca pequeña, pero tampoco parece algo significativo. Así que lo más seguro sería dejar esa columna fuera también.
Las cejas podrían ser un mundo en sí mismas (finas, gruesas, simétricas, arqueadas...), pero también parece que hay matices bastante sutiles, así que ahí directamente ni me molesté en intentar clasificarlas.
Si se permiten hacer preguntas sobre el nombre, el atributo que mejor separa a la población es la
longitud, por eso he añadido esa columna sintética. Preguntar si el nombre del personaje tiene más de 5 letras hace una división del 37.5%, y aún mejor es preguntar si la longitud del nombre es par, nos divide el grupo en un 41.6%.
Pero vamos a sacar el histograma de cada atributo para salir de dudas:
Lo primero que nos llama la atención es que hay algunas anomalías que se desvían de la regla 80/20 y esas son las que conviene explotar. En concreto son bastante ventajosas si la boca es grande, si tiene arrugas en la frente, si el pelo es liso
Para la pregunta interesante es, ¿hay algún personaje que a priori tenga ventaja sobre los demás? Es decir, ¿alguno se disimula mejor entre la multitud, perteneciendo a más grupos mayoritarios que el resto?
Para calcular esto, podemos multiplicar la densidad de todos los grupos a los que pertenece cada personaje; y aquel que tenga un valor mayor será el que pertenezca en promedio a más grupos grandes.
Sin más dilación, aquí tenéis los resultados, junto la lista de los atributos para los cuáles tienen valores minoritarios:
El que está más jodido es el pobre Peter, que sólo le falta ser gitano y homosexual (¡I això no és tot, eh!). Alex y Charles son los más genéricos, lo único que les hace peculiares es que tienen la boca grande.
Así que efectivamente, parece que hay cierto sesgo debido a que a pesar de que los valores de cada atributo están divididos de forma más o menos equitativa (80/20 en casi todos los casos), hay personajes que pertenecen a más grupos del 20% que otros; lo que hace que preguntando al azar el conjunto en el que se pueden esconder se reduzca mucho más rápido.
Las mujeres del juego, tienen en promedio más probabilidades de ser identificadas rápidamente, pero no por el mero hecho de ser mujeres, sino porque comparten el resto de atributos con pocos personajes y eso las hace bastante únicas... Por ejemplo, María, que es la más genérica de las mujeres, tiene la desgracia de tener el pelo largo, llevar sombrero y tener el pelo marrón (que hay 4 en lugar de 5 como el resto de colores).
Pero guarden sus "¡te lo dije, el maldito juego es sexista!" por un momento y continúen leyendo el siguiente apartado.
El primero de los errores es que estábamos considerando que los atributos son independientes entre sí; y la correlación entre ellos afecta (y mucho). Me explico: si hay una gran correlación entre mujer y pelo largo (que en el juego la hay: de las 5 mujeres 3 tienen el pelo largo), pertenecer a ambos grupos no significa una gran penalización; a pesar de que ambos son minoritarios dentro de las mujeres el pelo largo es un grupo mayoritario.
El segundo error es que pertenecer a un grupo muy pequeño tampoco conlleva una penalización proporcionalmente pequeña, porque un jugador inteligente no pregunta al azar. Por ejemplo, Anne es la única persona negra en el juego. Si hubiese incluído el color de la piel como un atributo a considerar, quedaría muy alto en el ranking de exoticidad, pero la realidad es que ese atributo no aporta información útil a la hora de jugar. Si preguntas por el color de la piel es como si estuvieses preguntando directamente si se trata de Anne; así que no estás maximizando el número de descartes con esa pregunta.
Para llegar hasta aquí no hacían falta más conocimientos de los que se adquieren en el bachillerato (calcular probabilidades simples y entender el principio de proporcionalidad entre riesgo/beneficio); pero ahora me parece que vamos a necesitar artillería semipesada (que desgraciadamente tengo algo oxidada).
El área que trata el problema que nos traemos entre manos es la Teoría de la Información. En concreto tenemos que calcular cuál es la entropía conjunta de los atributos que definen cada pesonaje. Cuanto mayor sea la entropía, más difícil será adivinar de qué personaje se trata; y como la entropía se mide en bits (o Shannons) y cada proceso de descarte que hacemos es binario, nos va a indicar exactamente cuantos turnos se tarda en adivinar cada personaje.
Ahora viene la parte chunga. No me acuerdo de cómo se calculaba eso para más de dos variables 😔
Pero tampoco necesitamos calcular la entropía conjunta de todos los atributos directamente, nos basta con utilizar un algoritmo de clasificacíon como ID3, considerando que cada personaje es su propia clase. Como el conjunto de entrenamiento es el mismo que el que queremos clasificar, no tenemos problemas de overfitting; que el algoritmo sea greedy sí que nos puede llevar a una estrategia subóptima en casos degenerados, pero en general es el mismo procedimiento que realizaría un humano. Cuando hayamos ejecutado el algoritmo, la profundidad del árbol de decisión que nos lleva a cada personaje deberá coincidir con el número de turnos (y entropía conjunta) de los atributos que definen al personaje.
Aquí tenéis el árbol de decisión, más o menos bonito. Junto al nombre del personaje está el número de preguntas necesarias para encontrarlo.
Si los ordenamos por número de turnos, por fin tenemos la respuesta a la pregunta sobre qué personajes son mejores y cuáles peores para jugar:
Peter sigue siendo el más loser del grupo y Charles sigue en cabeza de los que pasan desapercibidos; pero hay algunos cambios significativos. Por ejemplo, Alex baja de la primera posición compartida a ser el segundo por la cola. En cuanto a las chicas, las diferencias que se apreciaban con el estimador naive se han reducido al tener en cuenta la correlación, ya no son significativamente peores que los chicos: el promedio de turnos en averiguar una chica es 4.6, para los chicos 4.78.
1. Realmente no todos guardan la proporción 80/20, como veremos en la siguiente sección, pero es difícil notarlo a simple vista.
2. El tipo de pelo ondulado es otro valor que podría ser cuestionable. Lo dejé en los datos de entrada, pero quizá debería haberlo quitado (y el pelo liso/rizado tendrían una proporción 80/20, así que es posible que esa fuese la intención original). Eso habrá afectado a los resultados, pero ya me da pereza repetir los experimentos; así que lo dejo como ejercicio para el lector.
Animado por éste, me he lanzado a hacer una tablita con todos los atributos para poder realizar un análisis cualitativo un poco más riguroso... Os la pongo aquí por si queréis hacer vuestros propios experimentos:
Name Name Length Gender Hair Color Hair Length Hair Shape Eyes Moustache Beard Hat Glasses Nose Mouth Lips Smile Cheeks Chin Protruding Chin Hole Frown Alex 4 Male Black Short Straight Brown Yes No No No Small Big Thick Yes Plain Yes No No Alfred 6 Male Ginger Long Straight Blue Yes No No No Small Small Thin No Plain Yes No No Anita 5 Female Blonde Long Straight Blue No No No No Small Small Thin Yes Rosy No No No Anne 4 Female Black Short Curly Brown No No No No Big Small Thin No Plain No No Yes Bernard 7 Male Brown Short Straight Brown No No Yes No Big Small Thin No Plain No Yes No Bill 4 Male Ginger Bald Straight Brown No Yes No No Small Small Thin Yes Rosy ? ? No Charles 7 Male Blonde Short Straight Brown Yes No No No Small Big Thick Yes Plain No Yes No Claire 6 Female Ginger Short Wavy Brown No No Yes Yes Small Small Thick Yes Plain No No No David 5 Male Blonde Short Straight Brown No Yes No No Small Big Thin Yes Plain ? ? No Eric 4 Male Blonde Short Straight Brown No No Yes No Small Big Thin Yes Plain Yes Yes No Frans 5 Male Ginger Short Curly Brown No No No No Small Small Thin Yes Plain Yes No Yes George 6 Male White Short Straight Brown No No Yes No Small Big Thin No Plain No Yes No Herman 6 Male Ginger Bald Curly Brown No No No No Big Small Thin No Plain Yes No Yes Joe 3 Male Blonde Short Curly Brown No No No Yes Small Small Thin No Plain No Yes No Maria 5 Female Brown Long Straight Brown No No Yes No Small Small Thick Yes Plain No No No Max 3 Male Black Short Curly Brown Yes No No No Big Big Thick Yes Plain No No No Paul 4 Male White Short Wavy Brown No No No Yes Small Small Thin Yes Plain Yes? Yes Yes Peter 5 Male White Short Wavy Blue No No No No Big Big Thick Yes? Plain Yes? No Yes Phillip 7 Male Black Short Curly Brown No Yes No No Small Big Thin Yes Rosy No ? Yes Richard 7 Male Brown Bald Straight Brown Yes Yes No No Small Small Thin Yes Plain ? ? Yes Robert 6 Male Brown Short Straight Blue No No No No Big Big Thin No Rosy No? Yes No Sam 3 Male White Bald Straight Brown No No No Yes Small Small Thin Yes Plain Yes? No Yes Susan 5 Female White Long Straight Brown No No No No Small Big Thick Yes Rosy No No No Tom 3 Male Black Bald Straight Blue No No No Yes Small Small Thin Yes Plain No No Yes
Las columnas de la barbilla tienen algunas interrogaciones, ya que algunos personajes la tienen oculta por la barba o es difícil decidir si tienen el mentón prominente o no, así que podríamos dejarlas fuera para evitar ambigüedades... De hecho, la barbilla no sigue la distribución 80/20, ya que hay un 33% de personas con mentón prominente (sin tener en cuenta los que lo tienen oculto) y un 29% que tienen hoyuelo (visible). Es posible que no sea algo intencional en el diseño del juego, sino un efecto de la libertad del artista al dibujar las caras.
El grosor de los labios también puede dar algo de lugar a dudas, por ejemplo Claire y Maria tienen los labios ligeramente más gruesos que el resto de personajes con la boca pequeña, pero tampoco parece algo significativo. Así que lo más seguro sería dejar esa columna fuera también.
Las cejas podrían ser un mundo en sí mismas (finas, gruesas, simétricas, arqueadas...), pero también parece que hay matices bastante sutiles, así que ahí directamente ni me molesté en intentar clasificarlas.
Si se permiten hacer preguntas sobre el nombre, el atributo que mejor separa a la población es la
longitud, por eso he añadido esa columna sintética. Preguntar si el nombre del personaje tiene más de 5 letras hace una división del 37.5%, y aún mejor es preguntar si la longitud del nombre es par, nos divide el grupo en un 41.6%.
Pero vamos a sacar el histograma de cada atributo para salir de dudas:
Eyes Blue: 5 Brown: 19 Hair Length Bald: 5 Short: 15 Long: 4 Chin Hole Yes: 7 ?: 4 No: 13 Gender Male: 19 Female: 5 Cheeks Plain: 19 Rosy: 5 Frown Yes: 9 No: 15 Hat Yes: 5 No: 19 Lips Thick: 7 Thin: 17 Hair Color Brown: 4 Blonde: 5 Black: 5 White: 5 Ginger: 5 Mouth Small: 14 Big: 10 Nose Small: 18 Big: 6 Smile Yes?: 1 Yes: 16 No: 7 Hair Shape Straight: 15 Wavy: 3 Curly: 6 Chin Protruding Yes?: 3 Yes: 5 No?: 1 ?: 3 No: 12 Glasses Yes: 5 No: 19 Moustache Yes: 5 No: 19 Beard Yes: 4 No: 20
Lo primero que nos llama la atención es que hay algunas anomalías que se desvían de la regla 80/20 y esas son las que conviene explotar. En concreto son bastante ventajosas si la boca es grande, si tiene arrugas en la frente, si el pelo es liso
2El tipo de pelo ondulado es otro valor que podría ser cuestionable. Lo dejé en los datos de entrada, pero quizá debería haberlo quitado (y el pelo liso/rizado tendrían una proporción 80/20, así que es posible que esa fuese la intención original). Eso habrá afectado a los resultados, pero ya me da pereza repetir los experimentos; así que lo dejo como ejercicio para el lector.
, o si tiene el pelo corto... Después tenemos ligeramente ventajosas si está sonriendo o si tiene la nariz grande. Y luego hay valores para algunas características que sólo hay 4 (en lugar de 5) personajes que las tienen, esos habría que evitarlos hasta que no hagan una división razoablemente equitativa de los personajes que restan por descartar.Para la pregunta interesante es, ¿hay algún personaje que a priori tenga ventaja sobre los demás? Es decir, ¿alguno se disimula mejor entre la multitud, perteneciendo a más grupos mayoritarios que el resto?
Para calcular esto, podemos multiplicar la densidad de todos los grupos a los que pertenece cada personaje; y aquel que tenga un valor mayor será el que pertenezca en promedio a más grupos grandes.
Sin más dilación, aquí tenéis los resultados, junto la lista de los atributos para los cuáles tienen valores minoritarios:
Peter: 0.000002; ['Eyes', 'Frown', 'Mouth', 'Nose', 'Smile', 'Hair Shape'] Claire: 0.000014; ['Gender', 'Hat', 'Hair Shape', 'Glasses'] Anita: 0.000019; ['Eyes', 'Hair Length', 'Gender', 'Cheeks'] Robert: 0.000022; ['Eyes', 'Cheeks', 'Hair Color', 'Mouth', 'Nose'] Phillip: 0.000035; ['Cheeks', 'Frown', 'Mouth', 'Beard'] Anne: 0.000035; ['Gender', 'Frown', 'Nose'] Herman: 0.000045; ['Frown', 'Nose'] Susan: 0.000051; ['Hair Length', 'Gender', 'Cheeks', 'Mouth'] Tom: 0.000053; ['Eyes', 'Frown', 'Glasses'] Maria: 0.000057; ['Hair Length', 'Gender', 'Hat', 'Hair Color'] Bill: 0.000067; ['Cheeks', 'Beard'] Bernard: 0.000118; ['Hat', 'Hair Color', 'Nose'] Alfred: 0.000118; ['Eyes', 'Hair Length'] Paul: 0.000121; ['Frown', 'Hair Shape', 'Glasses'] Richard: 0.000123; ['Frown', 'Hair Color', 'Beard'] Joe: 0.000177; ['Glasses'] Sam: 0.000202; ['Frown', 'Glasses'] George: 0.000316; ['Hat', 'Mouth'] Max: 0.000366; ['Mouth', 'Nose'] David: 0.000549; ['Mouth', 'Beard'] Eric: 0.000723; ['Hat', 'Mouth'] Frans: 0.000923; ['Frown'] Alex: 0.002746; ['Mouth'] Charles: 0.002746; ['Mouth']
El que está más jodido es el pobre Peter, que sólo le falta ser gitano y homosexual (¡I això no és tot, eh!). Alex y Charles son los más genéricos, lo único que les hace peculiares es que tienen la boca grande.
Así que efectivamente, parece que hay cierto sesgo debido a que a pesar de que los valores de cada atributo están divididos de forma más o menos equitativa (80/20 en casi todos los casos), hay personajes que pertenecen a más grupos del 20% que otros; lo que hace que preguntando al azar el conjunto en el que se pueden esconder se reduzca mucho más rápido.
Las mujeres del juego, tienen en promedio más probabilidades de ser identificadas rápidamente, pero no por el mero hecho de ser mujeres, sino porque comparten el resto de atributos con pocos personajes y eso las hace bastante únicas... Por ejemplo, María, que es la más genérica de las mujeres, tiene la desgracia de tener el pelo largo, llevar sombrero y tener el pelo marrón (que hay 4 en lugar de 5 como el resto de colores).
Pero guarden sus "¡te lo dije, el maldito juego es sexista!" por un momento y continúen leyendo el siguiente apartado.
III
En mi ingénuo estimador de la exoticidad de los personajes he cometido dos errores de bulto, que el lector inteligente ya habrá detectado y llevará un rato rechinando los dientes. Mis disculpas.El primero de los errores es que estábamos considerando que los atributos son independientes entre sí; y la correlación entre ellos afecta (y mucho). Me explico: si hay una gran correlación entre mujer y pelo largo (que en el juego la hay: de las 5 mujeres 3 tienen el pelo largo), pertenecer a ambos grupos no significa una gran penalización; a pesar de que ambos son minoritarios dentro de las mujeres el pelo largo es un grupo mayoritario.
El segundo error es que pertenecer a un grupo muy pequeño tampoco conlleva una penalización proporcionalmente pequeña, porque un jugador inteligente no pregunta al azar. Por ejemplo, Anne es la única persona negra en el juego. Si hubiese incluído el color de la piel como un atributo a considerar, quedaría muy alto en el ranking de exoticidad, pero la realidad es que ese atributo no aporta información útil a la hora de jugar. Si preguntas por el color de la piel es como si estuvieses preguntando directamente si se trata de Anne; así que no estás maximizando el número de descartes con esa pregunta.
Para llegar hasta aquí no hacían falta más conocimientos de los que se adquieren en el bachillerato (calcular probabilidades simples y entender el principio de proporcionalidad entre riesgo/beneficio); pero ahora me parece que vamos a necesitar artillería semipesada (que desgraciadamente tengo algo oxidada).
El área que trata el problema que nos traemos entre manos es la Teoría de la Información. En concreto tenemos que calcular cuál es la entropía conjunta de los atributos que definen cada pesonaje. Cuanto mayor sea la entropía, más difícil será adivinar de qué personaje se trata; y como la entropía se mide en bits (o Shannons) y cada proceso de descarte que hacemos es binario, nos va a indicar exactamente cuantos turnos se tarda en adivinar cada personaje.
Ahora viene la parte chunga. No me acuerdo de cómo se calculaba eso para más de dos variables 😔
Pero tampoco necesitamos calcular la entropía conjunta de todos los atributos directamente, nos basta con utilizar un algoritmo de clasificacíon como ID3, considerando que cada personaje es su propia clase. Como el conjunto de entrenamiento es el mismo que el que queremos clasificar, no tenemos problemas de overfitting; que el algoritmo sea greedy sí que nos puede llevar a una estrategia subóptima en casos degenerados, pero en general es el mismo procedimiento que realizaría un humano. Cuando hayamos ejecutado el algoritmo, la profundidad del árbol de decisión que nos lleva a cada personaje deberá coincidir con el número de turnos (y entropía conjunta) de los atributos que definen al personaje.
Aquí tenéis el árbol de decisión, más o menos bonito. Junto al nombre del personaje está el número de preguntas necesarias para encontrarlo.
[('Mouth', 'Big', [('Hair Color', 'White', [('Frown', 'No', [('Gender', 'Male', ('George', 4)), ('Gender', '!Male', ('Susan', 4))]), ('Frown', '!No', ('Peter', 3))]), ('Hair Color', '!White', [('Hair Color', 'Black', [('Hair Shape', 'Straight', ('Alex', 4)), ('Hair Shape', '!Straight', [('Beard', 'No', ('Max', 5)), ('Beard', '!No', ('Phillip', 5))])]), ('Hair Color', '!Black', [('Cheeks', 'Rosy', ('Robert', 4)), ('Cheeks', '!Rosy', [('Beard', 'No', [('Hat', 'Yes', ('Eric', 6)), ('Hat', '!Yes', ('Charles', 6))]), ('Beard', '!No', ('David', 5))])])])]), ('Mouth', '!Big', [('Frown', 'No', [('Hair Color', 'Ginger', [('Hair Length', 'Bald', ('Bill', 4)), ('Hair Length', '!Bald', [('Hair Shape', 'Straight', ('Alfred', 5)), ('Hair Shape', '!Straight', ('Claire', 5))])]), ('Hair Color', '!Ginger', [('Hair Color', 'Brown', [('Gender', 'Male', ('Bernard', 5)), ('Gender', '!Male', ('Maria', 5))]), ('Hair Color', '!Brown', [('Hair Shape', 'Straight', ('Anita', 5)), ('Hair Shape', '!Straight', ('Joe', 5))])])]), ('Frown', '!No', [('Hair Length', 'Bald', [('Glasses', 'No', [('Hair Shape', 'Straight', ('Richard', 5)), ('Hair Shape', '!Straight', ('Herman', 5))]), ('Glasses', '!No', [('Hair Color', 'White', ('Sam', 5)), ('Hair Color', '!White', ('Tom', 5))])]), ('Hair Length', '!Bald', [('Gender', 'Male', [('Glasses', 'Yes', ('Paul', 5)), ('Glasses', '!Yes', ('Frans', 5))]), ('Gender', '!Male', ('Anne', 4))])])])]
Si los ordenamos por número de turnos, por fin tenemos la respuesta a la pregunta sobre qué personajes son mejores y cuáles peores para jugar:
Peter 3 Alex 4 Anne 4 Bill 4 George 4 Robert 4 Susan 4 Alfred 5 Anita 5 Bernard 5 Claire 5 David 5 Frans 5 Herman 5 Joe 5 Maria 5 Max 5 Paul 5 Phillip 5 Richard 5 Sam 5 Tom 5 Charles 6 Eric 6
Peter sigue siendo el más loser del grupo y Charles sigue en cabeza de los que pasan desapercibidos; pero hay algunos cambios significativos. Por ejemplo, Alex baja de la primera posición compartida a ser el segundo por la cola. En cuanto a las chicas, las diferencias que se apreciaban con el estimador naive se han reducido al tener en cuenta la correlación, ya no son significativamente peores que los chicos: el promedio de turnos en averiguar una chica es 4.6, para los chicos 4.78.
1. Realmente no todos guardan la proporción 80/20, como veremos en la siguiente sección, pero es difícil notarlo a simple vista.
2. El tipo de pelo ondulado es otro valor que podría ser cuestionable. Lo dejé en los datos de entrada, pero quizá debería haberlo quitado (y el pelo liso/rizado tendrían una proporción 80/20, así que es posible que esa fuese la intención original). Eso habrá afectado a los resultados, pero ya me da pereza repetir los experimentos; así que lo dejo como ejercicio para el lector.
No hay comentarios:
Publicar un comentario