Exemplo n.º 1
0
def build_apprentissage(fn,generator):
    ex_raw = KeyboardStrategy.read(fn)
    exemples = []
    labels = []
    for x in ex_raw:
        exemples.append(generator(x[1],x[0][0],x[0][1]))
        labels.append(x[0][2])
    return exemples,labels
Exemplo n.º 2
0
def build_apprentissage(fn, generator):
    ex_raw = KeyboardStrategy.read(fn)
    exemples = []
    labels = []
    for x in ex_raw:
        exemples.append(generator(x[1], x[0][0], x[0][1]))
        labels.append(x[0][2])
    return exemples, labels
Exemplo n.º 3
0
    long = 10
    sep1="|"+"-"*(long-1)
    sepl="|"+" "*(long-1)
    sepr=" "*long
    def aux(node,sep):
        if tree.tree_.children_left[node]<0:
            ls ="(%s)" % (", ".join( "%s: %d" %(tree.classes_[i],int(x)) for i,x in enumerate(tree.tree_.value[node].flat)))
            return sep+sep1+"%s\n" % (ls,)
        return (sep+sep1+"X%d<=%0.2f\n"+"%s"+sep+sep1+"X%d>%0.2f\n"+"%s" )% \
                (tree.tree_.feature[node],tree.tree_.threshold[node],aux(tree.tree_.children_left[node],sep+sepl),
                tree.tree_.feature[node],tree.tree_.threshold[node],aux(tree.tree_.children_right[node],sep+sepr))
    return aux(0,"")



exemples = KeyboardStrategy.read("./monfichier.exp")
train,labels = build_apprentissage("./monfichier.exp",gen_features)
tree = apprendre_arbre(train,labels)
print(affiche_arbre(tree))





if __name__=="__main__":
    prefix = "./test"
    if len(sys.argv)>1:
        prefix = sys.argv[1]
    ## constitution de la base d'entrainement et des labels
    train,labels = build_apprentissage(prefix+".exp",gen_features)
    ## apprentissage de l'arbre
Exemplo n.º 4
0
#gen_features.names = ["ball_dist","distance ball my goal","distance ball his goal","hisgoal_dist","mygoal_dist","dist adv le plus proche","nb adv autour"]

def build_apprentissage(fn,generator):
    ex_raw = KeyboardStrategy.read(fn)
    exemples = []
    labels = []
    for x in ex_raw:
        exemples.append(generator(x[1],x[0][0],x[0][1]))
        labels.append(x[0][2])
    return exemples,labels

def apprendre_arbre(train,labels,depth=5,min_samples_leaf=2,min_samples_split=2):
    tree= DecisionTreeClassifier(max_depth=depth,min_samples_leaf=min_samples_leaf,min_samples_split=min_samples_split)
    tree.fit(train,labels)
    return tree

## Match d'entrainement et apprentissage de l'arbre
if True:
    #match = SoccerMatch(team_noob,team_bad,1000)
    #show(match)
    ## Sauvegarde des exemples, mettre False a True si concatenation des fichiers
    #strat.write("test.tree",True)
    ## Lecture du fichier cree
    exemples = KeyboardStrategy.read("./training.exp")
    ## constitution de la base d'entrainement et des labels
    train,labels = build_apprentissage("./training.exp",gen_features)
    ## apprentissage de l'arbre
    tree = apprendre_arbre(train,labels)
    ## sauvegarde de l'arbre
    cPickle.dump(tree,file("tree.pkl","w"))
Exemplo n.º 5
0
    sepr = " " * long

    def aux(node, sep):
        if tree.tree_.children_left[node] < 0:
            ls = "(%s)" % (", ".join(
                "%s: %d" % (tree.classes_[i], int(x))
                for i, x in enumerate(tree.tree_.value[node].flat)))
            return sep + sep1 + "%s\n" % (ls, )
        return (sep+sep1+"X%d<=%0.2f\n"+"%s"+sep+sep1+"X%d>%0.2f\n"+"%s" )% \
                (tree.tree_.feature[node],tree.tree_.threshold[node],aux(tree.tree_.children_left[node],sep+sepl),
                tree.tree_.feature[node],tree.tree_.threshold[node],aux(tree.tree_.children_right[node],sep+sepr))

    return aux(0, "")


exemples = KeyboardStrategy.read("./monfichier.exp")
train, labels = build_apprentissage("./monfichier.exp", gen_features)
tree = apprendre_arbre(train, labels)
print(affiche_arbre(tree))

if __name__ == "__main__":
    prefix = "./test"
    if len(sys.argv) > 1:
        prefix = sys.argv[1]
    ## constitution de la base d'entrainement et des labels
    train, labels = build_apprentissage(prefix + ".exp", gen_features)
    ## apprentissage de l'arbre
    tree = apprendre_arbre(train, labels)
    ## sauvegarde de l'arbre
    cPickle.dump(tree, file(prefix + ".pkl", "w"))
    ## exporter l'arbre en .dot