IA en el Póker OnlineClasificador Preflop
Presentación Final
Raúl Martínez FernándezAntonio Díaz PonceJavier García-Cuerva Velasco
La Inteligencia Artificial en las Organizaciones 2009-2010
Índice
• Problema a resolver
• Obtención de datos
• Procesado de los datos• Procesado de los datos
• Exploración de los datos (Weka)
• Técnicas de selección de atributos (Weka)
• Experimenter (Weka)
La Inteligencia Artificial en las Organizaciones 2009-2010
Problema a resolver
Clasificador de manos preflop
Recuerdo
Jugadores de Póker Online
Texas Hold’em Sin Límite
La Inteligencia Artificial en las Organizaciones 2009-2010
Extracción de Conocimiento
BBDD
Obtención de los datos
• No pagar por datos�Dificultades�Usuarios de poquer-red
Recuerdo
La Inteligencia Artificial en las Organizaciones 2009-2010
101 Ficheros xml
100.000 manos
Sólo manos si showdown
1795 jugadores
10710 manos
Procesado de los datos
• Programa en Java:
• Leer todos los ficheros
• Extraer los patrones
Nueva extracción de información
• Extraer los atributos• 3 atributos nuevos
• Clases a utilizar
• Arreglar los errores en los datos:• Manos con jugadores Sit out (caídos)
• Una mano con jugadores no pertenecientes a la mano
La Inteligencia Artificial en las Organizaciones 2009-2010
Menos manos
10710 ���� 10708
• CiegaPequena• CiegaGrande• Hora• Minuto• JugadoresTotales• PosicionJugador6• FichasJugador6
Procesado de los datosExtracción, con los nuevos 3 atributos
• MiPosicion• PaloCarta1• ValorCarta1• PaloCarta2• ValorCarta2
Añadimos 3 atributos: •La posición del
jugador en la mesa•Si las cartas son
pareja o no• FichasJugador6• PosicionJugador5• FichasJugador5• PosicionJugador4• FichasJugador4• PosicionJugador3• FichasJugador3• PosicionJugador2• FichasJugador2• PosicionJugador1• FichasJugador1
La Inteligencia Artificial en las Organizaciones 2009-2010
• Suited• Pareja• Consecutivas• ValorSubida1• ValorSubida2• ValorSubida3• ValorSubida4• ValorSubida5
pareja o no•Si las cartas son
consecutivas o no
Procesado de los datosNuevos atributos
Ciega Pequeña
Ciega Grande Hora Minuto
Nº Jugadore
s
Jugador 6ª
posiciónStack 6º Jugador … MiPosición
0.5 1.0 0.0 32.0 6.0 6.0 1.0E7 … 1.00.5 1.0 23.0 1.0 6.0 6.0 1.0E7 … 2.00.5 1.0 23.0 1.0 6.0 6.0 1.0E7 … 2.0
La Inteligencia Artificial en las Organizaciones 2009-2010
0.5 1.0 23.0 1.0 6.0 6.0 1.0E7 … 2.0
Palo Carta
Valor Carta
Palo Carta
Valor Carta Suited Pareja Consecutivas
Subida
nº 2
Subida nº 1
Subida nº 2 …
Subida nº 5 Accion
1.0 13.0 2.0 10.0 0.0 0.0 0.0 0.0 0.0 0.0 … 0.0 1.0
2.0 1.0 4.0 3.0 0.0 0.0 0.0 0.0 0.0 0.0 … 0.0 1.0
2.0 12.0 2.0 11.0 1.0 0.0 1.0 1.0 0.0 1.0 … 0.0 3.0
Exploración
• patrones.arff:10708 patrones, 100.000 manos, 1795 jugadores
• Clases a utilizar:
• 4 clases {0,1,2,3} � Valores Continuos (Aunque es Clasificación)
• 0: Apuesta de $0 � 1050 patrones � 9,8%
• 1: Apuesta entre $0 y $2.5 � 3868 patrones �36,1%
• 2: Apuesta entre $2.5 y $5 � 4193 patrones � 39,2%
Clases
• 2: Apuesta entre $2.5 y $5 � 4193 patrones � 39,2%
• 3: Apuesta superior a $5 � 1597 patrones� 14,9%
La Inteligencia Artificial en las Organizaciones 2009-2010
ExploraciónResultados Clasificadores
Clasificadores Lineales Algoritmo % Aciertos % Error Absoluto
Media Aciertos =49,1028% SMO 49.2447 % 90.2991 %
Media Error = 87,5366% Logistic 51.1673 % 88.441 %
Simple Logistic 51.2222 % 88.6475 %
Perceptrón Simple 41.582 % 88.0926 %
Naive Bayes 45.9489 % 88.2112 %
Bayes Net 55.4518 % 81.5284 %
Clasificadores No Lineales Algoritmo % Aciertos % Error Absoluto
Media Aciertos = 60,4144% J48 62.4554 % 61.4247 %
La Inteligencia Artificial en las Organizaciones 2009-2010
Media Error =69,8297%
Presentación
Intermedia:
•MLP:
Aciertos 46.0317 %
•J48:
Aciertos: 47.8369 %
OrdinalClassClassifier (J48) 62.4828 % 62.8628 %
Multilayer Perceptron
(train=66%)
60.8624 % 71.6913 %
OrdinalClassClassifier (MLP
train=66%)
60.1208 % 67.9233 %
Multilayer Perceptron
(test=train)
61.8043 % 70.5073 %
OrdinalClassClassifier (MLP
test=train)
64.4938 % 63.7474 %
RBFNetwork 52.2384 % 86.9388 %
REPTree 58.8575 % 73.5421 %
Selección de atributos
• Métodos de Selección de Atributos:
• Evaluación individual de atributos (Ranker)
• Evaluación de subconjuntos de atributos
• Filter: se evalúan los atributos de manera individual, pero tiene en cuenta la redundancia entre atributos.
•Una manera de moverse por el espacio de búsqueda (lo que llamaremos método de búsqueda).•Una manera (medida) de evaluar subconjuntos de atributos (lo que llamaremos evaluador de atributos).•Una manera de moverse por el espacio de búsqueda (lo que llamaremos método de búsqueda).•Una manera (medida) de evaluar subconjuntos de atributos (lo que llamaremos evaluador de atributos).
Teoría
tiene en cuenta la redundancia entre atributos.
• Wrapper: se evalúan de manera conjunta. Bueno , pero lento
• Hay que definir:
• Una manera de moverse por el espacio de búsqueda (método de búsqueda)
• Una manera (medida) de evaluar subconjuntos de atributos (evaluador de atributos)
La Inteligencia Artificial en las Organizaciones 2009-2010
Selección de atributosTécnicas Usadas
1. Ranker:
•Evaluador de atributos: ChiSquaredAttributeEval•Método de búsqueda: Ranker.
2. Filter:
•Evaluador de atributos: CfsSubsetEval
La Inteligencia Artificial en las Organizaciones 2009-2010
•Evaluador de atributos: CfsSubsetEval•Método de búsqueda: GreedyStepwise
3. Wrapper:
•Evaluador de atributos: ClassifierSubsetEval•Clasificador: PART•Método de búsqueda: GreedyStepwise.
Selección de atributos
• Ranker: 30 atributos ordenados de mejor a peor
• Filter: los mejores 9 atributos, sin redundancia
• Wrapper (12 horas): los mejores 16 atributos.
•Una manera de moverse por el espacio de búsqueda (lo que llamaremos método de búsqueda).•Una manera (medida) de evaluar subconjuntos de atributos (lo que llamaremos evaluador de atributos).•Una manera de moverse por el espacio de búsqueda (lo que llamaremos método de búsqueda).•Una manera (medida) de evaluar subconjuntos de atributos (lo que llamaremos evaluador de atributos).
Resultados
1. Hora2. Minuto
La Inteligencia Artificial en las Organizaciones 2009-2010
2. Minuto3. JugadoresTotales4. MiPosicion5. PaloCarta16. ValorCarta17. PaloCarta28. ValorCarta29. Suited10. Pareja11. Consecutivas12. ValorSubida113. ValorSubida214. ValorSubida315. ValorSubida4
Tienen mucho sentido para un jugador profesional
Pensamos que si usamos J48
y MLP, obtendremos los mejores resultados
Selección de atributosUsando Clasificadores (J48 y MLP)
Número Atributos % Aciertos J48 % Aciertos MLP
5 53.337 % 44.9602 %
10 59.1046 % 52.3483 %
15 64.0483 % 60.7525 %
20 64.3505 % 62.8673 %
25 62.1533 % 61.8511 %
1. Ranker:
La Inteligencia Artificial en las Organizaciones 2009-2010
25 62.1533 % 61.8511 %
30 62.0983 % 60.3406 %
2. Filter:
3. Wrapper:
% Aciertos J48 % Aciertos MLP
58.83 % 52.4032 %
% Aciertos J48 % Aciertos MLP
61.5216 % 61.4392 %
Selección de atributosComparativa Técnicas
Selector de
atributos
% Aciertos
J48
% Aciertos
MLP
Ranker (20
atributos)
64.3505 % 62.8673 %
Los mejores clasificadores con las técnicas de selección
de atributos:
La Inteligencia Artificial en las Organizaciones 2009-2010
atributos)
Filter (9 atributos) 58.83 % 52.4032 %
Wrapper (16
atributos)
61.5216 % 61.4392 %
Sin selección de
atributos (30
atributos)
62.4554 % 60.8624 %
Aprendizaje de las clasesMatriz de Confusión
J48 MLP
Ranker con 20 atributos, ofrece mejores resultados:
J48 (Porcentaje de aciertos:TP Rate)
La Inteligencia Artificial en las Organizaciones 2009-2010
MLP (Porcentaje de aciertos:TP Rate)
Aprendizaje de las clasesEquilibrado de Clases
J48 (sin metacost)
MetaClasificador : MetaCost, recibe un clasificador y una matriz de costes
J48 (con metacost)
La Inteligencia Artificial en las Organizaciones 2009-2010
MLP (sin metacost) MLP (con metacost)
ExperimenterExperimentos
Dataset (1) trees.J48 '-C | (2) functions.M--------------------------------------------------- -----------
• Aplicar varios algoritmos y estadísticamente ver cuál es mejor•Usaremos los mejores algoritmos y los mejores datos•Haremos validación cruzada para evitar sesgos•10 repeticiones para cada experimento
J48 (base) MLP
La Inteligencia Artificial en las Organizaciones 2009-2010
--------------------------------------------------- -----------'PatronesNL100-weka.filte(100) 61.52(1.50) | 61 .60(1.78) 'PatronesNL100-weka.filte(100) 64.34(1.46) | 61 .43(1.67) *--------------------------------------------------- -----------
(v/ /*) | (0/1/1)
Wrapper
Ranker(20 atributos)
(X,Y,Z) X: datasets donde el algoritmo es mejor que el baseY: datasets donde no es ni mejor ni peor.Z: datasets, donde el algoritmos es peor que el base
ExperimenterComparativa con Exploración
Técnica usada J48 MLP
%Aciertos Explorer
(Wrapper)
61.5216 % 61.4392 %
%Aciertos Experimenter 61.52 % 61.60%
• Con los resultados del experimenter podemos descartar que lacasualidad nos hiciera obtener los resultados que obtuvimos en la fasede exploración
La Inteligencia Artificial en las Organizaciones 2009-2010
%Aciertos Experimenter
(Wrapper)
61.52 % 61.60%
%Aciertos Explorer
(Ranker)
64.3505 % 62.8673 %
%Aciertos Experimenter
(Ranker)
64.34 % 61.43 %
• Resultados del Experimenter son bastante parecidos a los del Explorer• MLP llega a mejorar a J48• El mejor resultado sigue siendo J48 con Ranker con 20 atributos
ConclusionesBalance Positivo
• Pasamos de un 46% a un 64%:• Añadiendo nuevos atributos• Haciendo una buena exploración de los mejores algoritmos• Haciendo una buena selección de atributos
La Inteligencia Artificial en las Organizaciones 2009-2010
• Haciendo una buena selección de atributos• Son resultados buenos si tenemos en cuenta:
• El factor humano es muy importante, ya que es difícil aprenderlo•Dificultad para encontrar unos datos• Usamos datos de varios jugadores, siendo mejor de un solo jugador•Errores en los datos iniciales (stacks descomunales)