def view_classification(data_1, data_2, title=None, save=None):
fig = pylab.figure()
count = 0
panels = [0, 2, 1, 3]
for item in [data_1, data_2]:
clf, cld, X, X_raw, y = item
for mode in ['predict', 'decision_function']:
ax = fig.add_subplot(2, 2, panels[count]+1)
if mode == 'predict':
c = clf
vmax = 1.0
vmin = 0.0
elif mode == 'decision_function':
c = cld
vmax = max(abs(numpy.amin(c)), abs(numpy.amax(c)))
vmin = - vmax
from circus.validating.utils import Projection
p = Projection()
_ = p.fit(X_raw, y)
X_raw_ = p.transform(X_raw)
# Plot figure.
sc = ax.scatter(X_raw_[:, 0], X_raw_[:, 1], c=c, s=5, lw=0.1, cmap='bwr',
vmin=vmin, vmax=vmax)
cb = fig.colorbar(sc)
ax.grid(True)
if panels[count] in [0, 1]:
if panels[count] == 0:
ax.set_title('Classification Before')
ax.set_ylabel("2nd component")
if panels[count] == 1:
ax.set_title('Classification After')
cb.set_label('Prediction')
elif panels[count] in [2, 3]:
ax.set_xlabel("1st component")
if panels[count] == 2:
ax.set_ylabel("2nd component")
if panels[count] == 3:
cb.set_label('Decision function')
count += 1
if save is None:
pylab.show()
else:
pylab.savefig(save)
pylab.close(fig)
return
评论列表
文章目录