print( "Accuracy on testing set : ", accuracy_score(NP.concatenate(cors), NP.concatenate(preds)))
    return (cors, preds)
    
def classifyExpression(expression, keys, model, pca, renormalize=True):
    symbs = expression.symbols
    if renormalize:
        symbs = SymbolData.normalize(symbs, 99)
    f = Features.features(symbs)
    if (len (symbs) == 0):
        print(expression.name, " has no valid symbols!")
        return ([], [])
    if (pca != None):
        f = pca.transform(f)
    pred = model.predict(f)
    assert (max(pred) < len(keys))
    f = (lambda p: keys[p])
    expression.classes = map (f, pred)
    return (NP.array(SymbolData.classNumbers(symbs, keys)), pred)

"""


symbols = SymbolData.unpickleSymbols("train.dat")
symbols = SymbolData.normalize(symbols,99)

Features.showImg(symbols[3])

f = Features.features(symbols[0:2])
 """