在第二个数字I.33%和第二个数字I.0%执行Im.3%。我尝试过很多不同的版本,在数组上的lambda函数中使用{percent,.2%}.format(),但是我没有完全理解。所有输入均已确认!在
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib
import numpy as np
from sklearn.tree import DecisionTreeClassifier
from sklearn import datasets
%matplotlib inline
iris = datasets.load_iris()
x = iris['data']
y = iris['target']
x = iris_x[:, :2]
clf_tree = DecisionTreeClassifier(random_state = 1)
fit_clf = clf_tree.fit(x, y)
y_pred_proba = fit_clf.predict_proba(x)
y_pred = fit_clf.predict(x)
conf_mat = confusion_matrix(y_true = y, y_pred = y_pred)
fig, ax = plt.subplots(figsize = (15, 9))
ax.matshow(conf_mat, cmap = plt.cm.Blues, alpha = 0.3)
for i in range(conf_mat.shape[0]):
for j in range(conf_mat.shape[1]):
ax.text(x = j, y = i,
s = conf_mat[i, j],
va = 'center',
ha = 'center')
plt.xlabel('Predicted')
plt.ylabel('Actual')
plt.show()
conf_mat_prc = conf_mat/len(y)
fig, ax = plt.subplots(figsize = (15, 9))
ax.matshow(conf_mat_prc, cmap = plt.cm.Blues, alpha = 0.3)
for i in range(conf_mat_prc.shape[0]):
for j in range(conf_mat_prc.shape[1]):
ax.text(x = j, y = i,
s = conf_mat_prc[i, j],
va = 'center',
ha = 'center')
plt.xlabel('Predicted % dist')
plt.ylabel('Actual % dist')
plt.show()
提前谢谢你
——斯威帕布
代码中(至少)有两个问题:
在}
line 14
中,iris_x
是什么?我想你是说x[:, :2]
而不是{应将},以获得float而不是0(int)。
conf_mat_prc
定义为conf_mat_prc = conf_mat/float(len(y))
,而不是{最后,对于第二个图(第48行),使用
str(round(conf_mat_prc[i, j]*100,precision)) + "%"
,其中precision定义浮点数字的数量。在新代码如下:
这是新的第二张图:
相关问题 更多 >
编程相关推荐