I got this code:
predicted_labels = clf.predict(X_test)
def print_cm(cm, labels, hide_zeroes=False, hide_diagonal=False, hide_threshold=None):
"""pretty print for confusion matrixes"""
columnwidth = max([len(x) for x in labels]+[5]) # 5 is value length
empty_cell = " " * columnwidth
# Print header
print (" " + empty_cell,)
for label in labels:
print ("%{0}s".format(columnwidth) % label,)
print
# Print rows
for i, label1 in enumerate(labels):
print (" %{0}s".format(columnwidth) % label1,)
for j in range(len(labels)):
cell = "%{0}.1f".format(columnwidth) % cm[i, j]
if hide_zeroes:
cell = cell if float(cm[i, j]) != 0 else empty_cell
if hide_diagonal:
cell = cell if i != j else empty_cell
if hide_threshold:
cell = cell if cm[i, j] > hide_threshold else empty_cell
print (cell,)
print
conf = confusion_matrix(y_test, predicted_labels)
# then print it in a pretty way
print_cm(conf, flowpatterns_labels)
When I print it, I got a vector, not a matrix. It works fine on python 2, but not on python 3. Any ideas?