训练期间的sklearn逻辑回归损失值

Posted

技术标签:

【中文标题】训练期间的sklearn逻辑回归损失值【英文标题】:sklearn logistic regression loss value during training 【发布时间】:2021-08-01 22:43:59 【问题描述】:

有没有办法在训练逻辑回归时获得每次迭代的损失值?

Python sklearn show loss values during training 有一个适用于 SGDRegressor 的示例,但不适用于逻辑回归。

【问题讨论】:

【参考方案1】:

我认为您应该将缩放器的参数从 **kwargs 更改为 **params

old_stdout = sys.stdout
sys.stdout = mystdout = StringIO()
clf = LogisticRegression(**params)
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_LogRes:"+str(params)+".png")
plt.xlabel("Time in epochs")
plt.ylabel("Loss")
plt.close()

【讨论】:

以上是关于训练期间的sklearn逻辑回归损失值的主要内容,如果未能解决你的问题,请参考以下文章

逻辑回归 sklearn - 训练和应用模型

详解逻辑回归与评分卡-用逻辑回归制作评分卡-重复值和缺失值处理菜菜的sklearn课堂笔记

逻辑回归框架

sklearn (scikit-learn) 逻辑回归包——设置训练的分类系数。

pytorch结构化封装:线性与逻辑回归

numpy+sklearn 手动实现逻辑回归Python