Python, PyDot et DecisionTree

Je suis en train de visualiser mes DecisionTree, mais l'obtention de l'erreur
Le code est:

X = [i[1:] for i in dataset]#attribute
y = [i[0] for i in dataset]
clf = tree.DecisionTreeClassifier()

dot_data = StringIO()
tree.export_graphviz(clf.fit(train_X, train_y), out_file=dot_data)
graph = pydot.graph_from_dot_data(dot_data.getvalue())
graph.write_pdf("tree.pdf")

Et l'erreur est

Traceback (most recent call last):
if data.startswith(codecs.BOM_UTF8):
TypeError: startswith first arg must be str or a tuple of str, not bytes

Quelqu'un peut-il m'expliquer quel est le problème? Merci beaucoup!

Êtes-vous de nous montrer tout le code? Je ne vois pas si l'instruction que le traceback pointe. Autres que que, de toute évidence, la méthode startswith() attend une chaîne de caractères en entrée "chaîne" ou un n-uplet de chaînes de caractères ("st", "st2", "st3"). Vous avez réussi à le mauvais type de données dans le startswith() de l'appel de méthode. Soit vous n'êtes pas en utilisant des codecs.BOM_UTF8 correctement, ou vous devez la convertir en une chaîne de caractères --> str(codecs.BOM_UTF8)

OriginalL'auteur Polly | 2015-07-03