super(name, attributes, targets);
}
public Instance getUnclassifiedInstance(Propositionalizer prop, Object actor) {
PlayerData p = prop.getPlayers().get(actor);
Instance instance = new Instance(length);
instance.setDataset(dataset);
instance.setValue(0, p.getGameCount());
// Amounts
instance.setValue(1, prop.getRelativePotSize());
instance.setValue(2, (float)Math.log(prop.getRelativePotSize()));
instance.setValue(3, p.getRelativeStack());
instance.setValue(4, (float)Math.log1p(p.getRelativeStack()));
// Player count
instance.setValue(5, prop.getNbSeatedPlayers());
instance.setValue(6, prop.getNbActivePlayers());
instance.setValue(7, prop.getActivePlayerRatio());
// Global player frequencies
instance.setValue(8, p.getGlobalStats().getBetFrequency(4));
instance.setValue(9, p.getGlobalStats().getFoldFrequency(4));
instance.setValue(10, p.getGlobalStats().getCallFrequency(4));
instance.setValue(11, p.getGlobalStats().getRaiseFrequency(4));
//BetRaise counts
instance.setValue(12, prop.getTableGameStats().getNbBetsRaises());
instance.setValue(13, p.getGameStats().getNbBetsRaises());
instance.setValue(14, p.getGameStats().getNbBetsRaisesPreFlop());
instance.setValue(15, p.getGameStats().getNbBetsRaisesPostFlop());
instance.setValue(16, p.getGameStats().getNbBetsRaisesFlop());
instance.setValue(17, p.getGameStats().getNbBetsRaisesTurn());
instance.setValue(18, p.getGameStats().getNbBetsRaisesRiver());
//BetRaise amount
instance.setValue(19, (float)prop.getTableGameStats().getTotalBetRaiseAmount());
instance.setValue(20, (float)p.getGameStats().getTotalBetRaiseAmount());
instance.setValue(21, (float)p.getGameStats().getBetRaiseAmountPreFlop());
instance.setValue(22, (float)p.getGameStats().getBetRaiseAmountPostFlop());
instance.setValue(23, (float)p.getGameStats().getBetRaiseAmountFlop());
instance.setValue(24, (float)p.getGameStats().getBetRaiseAmountTurn());
instance.setValue(25, (float)p.getGameStats().getBetRaiseAmountRiver());
//Bet amount
instance.setValue(26, (float)prop.getTableGameStats().getTotalBetAmount());
instance.setValue(27, (float)p.getGameStats().getTotalBetAmount());
instance.setValue(28, (float)p.getGameStats().getBetAmountPreFlop());
instance.setValue(29, (float)p.getGameStats().getBetAmountPostFlop());
instance.setValue(30, (float)p.getGameStats().getBetAmountFlop());
instance.setValue(31, (float)p.getGameStats().getBetAmountTurn());
instance.setValue(32, (float)p.getGameStats().getBetAmountRiver());
//Raise amount
instance.setValue(33, (float)prop.getTableGameStats().getTotalRaiseAmount());
instance.setValue(34, (float)p.getGameStats().getTotalRaiseAmount());
instance.setValue(35, (float)p.getGameStats().getRaiseAmountPreFlop());
instance.setValue(36, (float)p.getGameStats().getRaiseAmountPostFlop());
instance.setValue(37, (float)p.getGameStats().getRaiseAmountFlop());
instance.setValue(38, (float)p.getGameStats().getRaiseAmountTurn());
instance.setValue(39, (float)p.getGameStats().getRaiseAmountRiver());
// Relative BetRaise counts
instance.setValue(40, prop.rel(p.getGameStats().getNbBetsRaises(),prop.getTableGameStats().getNbBetsRaises()));
instance.setValue(41, prop.rel(p.getGameStats().getNbBetsRaisesPreFlop(),prop.getTableGameStats().getNbBetsRaisesPreFlop()));
instance.setValue(42, prop.rel(p.getGameStats().getNbBetsRaisesPostFlop(),prop.getTableGameStats().getNbBetsRaisesPostFlop()));
instance.setValue(43, prop.rel(p.getGameStats().getNbBetsRaisesFlop(),prop.getTableGameStats().getNbBetsRaisesFlop()));
instance.setValue(44, prop.rel(p.getGameStats().getNbBetsRaisesTurn(),prop.getTableGameStats().getNbBetsRaisesTurn()));
instance.setValue(45, prop.rel(p.getGameStats().getNbBetsRaisesRiver(),prop.getTableGameStats().getNbBetsRaisesRiver()));
// Relative BetRaise amounts
instance.setValue(46, prop.rel(p.getGameStats().getTotalBetRaiseAmount(),prop.getTableGameStats().getTotalBetRaiseAmount()));
instance.setValue(47, prop.rel(p.getGameStats().getBetRaiseAmountPreFlop(),prop.getTableGameStats().getBetRaiseAmountPreFlop()));
instance.setValue(48, prop.rel(p.getGameStats().getBetRaiseAmountPostFlop(),prop.getTableGameStats().getBetRaiseAmountPostFlop()));
instance.setValue(49, prop.rel(p.getGameStats().getBetRaiseAmountFlop(),prop.getTableGameStats().getBetRaiseAmountFlop()));
instance.setValue(50, prop.rel(p.getGameStats().getBetRaiseAmountTurn(),prop.getTableGameStats().getBetRaiseAmountTurn()));
instance.setValue(51, prop.rel(p.getGameStats().getBetRaiseAmountRiver(),prop.getTableGameStats().getBetRaiseAmountRiver()));
//Table BetRaise counts
instance.setValue(52, prop.getTableGameStats().getNbBetsRaisesPreFlop());
instance.setValue(53, prop.getTableGameStats().getNbBetsRaisesPostFlop());
instance.setValue(54, prop.getTableGameStats().getNbBetsRaisesFlop());
instance.setValue(55, prop.getTableGameStats().getNbBetsRaisesTurn());
instance.setValue(56, prop.getTableGameStats().getNbBetsRaisesRiver());
//Table BetRaise amount
instance.setValue(57, (float)prop.getTableGameStats().getBetRaiseAmountPreFlop());
instance.setValue(58, (float)prop.getTableGameStats().getBetRaiseAmountPostFlop());
instance.setValue(59, (float)prop.getTableGameStats().getBetRaiseAmountFlop());
instance.setValue(60, (float)prop.getTableGameStats().getBetRaiseAmountTurn());
instance.setValue(61, (float)prop.getTableGameStats().getBetRaiseAmountRiver());
// Other
instance.setValue(62, p.isLastActionWasRaise()+"");
// PT Stats
instance.setValue(63, p.getVPIP(4));
instance.setValue(64, p.getPFR(4));
instance.setValue(65, p.getGlobalStats().getAF(5));
instance.setValue(66, p.getGlobalStats().getAFq(5));
instance.setValue(67, (float)Math.log(p.getGlobalStats().getAFAmount(5)));
instance.setValue(68, p.getWtSD(4));
// Table PT stat averages
instance.setValue(69, prop.getAverageVPIP(p,4));
instance.setValue(70, prop.getAveragePFR(p,4));
instance.setValue(71, prop.getAverageAF(p,5));
instance.setValue(72, prop.getAverageAFq(p,5));
instance.setValue(73, prop.getAverageAFAmount(p,5));
instance.setValue(74, prop.getAverageWtSD(p,4));
return instance;
}