だから私は、直接反復あたりの損失値を取得するには非常に良いドキュメントを見つけることができませんでしたが、私は、これは将来的に誰かを助けることを願っています:
old_stdout = sys.stdout
sys.stdout = mystdout = StringIO()
clf = SGDClassifier(**kwargs, verbose=1)
clf.fit(X_tr, y_tr)
sys.stdout = old_stdout
loss_history = mystdout.getvalue()
loss_list = []
for line in loss_history.split('\n'):
if(len(line.split("loss: ")) == 1):
continue
loss_list.append(float(line.split("loss: ")[-1]))
plt.figure()
plt.plot(np.arange(len(loss_list)), loss_list)
plt.savefig("warmstart_plots/pure_SGD:"+str(kwargs)+".png")
plt.xlabel("Time in epochs")
plt.ylabel("Loss")
plt.close()
このコードは、ちょうど約(通常SGDClassifierがかかります任意の線形分類器)、verbose=1
フラグを代行受信し、分割して冗長印刷からの損失を得る。明らかにこれは遅いですが、私たちに損失を与えて印刷します。
ちょっとだけ正確に説明してもらえますか? –
これはあなたが求めているものに近いですか? http://scikit-learn.org/stable/modules/generated/sklearn.metrics.log_loss.html – MichaelMMeskhi