【问题标题】:Scikit - Linear Regression - Extracting MetricsScikit - 线性回归 - 提取指标
【发布时间】:2020-09-18 16:11:01
【问题描述】:
  • Python 3
  • scikit-learn-0.23.1
  • numpy-1.18.4
  • scipy-1.4.1

是否可以提取拟合回归模型所需的迭代次数(通过梯度下降)?除了一般的模型评估指标,我没有看到任何与迭代次数相关的内容。

regressor = LinearRegression()  
regressor.fit(xtr, ytr)

print('Mean Absolute Error:', metrics.mean_absolute_error(yt, y_pred))  
print('Mean Squared Error:', metrics.mean_squared_error(yt, y_pred))  
print('Root Mean Squared Error:', np.sqrt(metrics.mean_squared_error(yt, y_pred)))

Scikit documentation 显示所有可能的度量模块

【问题讨论】:

  • 我认为没有任何迭代。解决线性回归问题是解决 OLS,它具有封闭形式,使用 SVD 计算

标签: python scikit-learn iteration linear-regression


【解决方案1】:

正如 Gilad 所指出的,使用 OLS 计算线性回归问题不涉及迭代。我在这里猜测您正在尝试使用梯度下降实现线性回归模型。对于后一种,迭代次数是在执行之前定义的。

所以要使用梯度下降,您可以手动编写algorithm (Another link),也可以使用来自 Sklearn 的Ridge 回归或Lasso 回归。这里有一个 n_iter 参数,您可以通过它获得确定系数所需的迭代次数。

sklearn.linear_model.Ridge 类(alpha=1.0, *, fit_intercept=True, normalize=False, copy_X=True, max_iter=None, tol=0.001, solver='auto', random_state =无)

属性

n_iter : _None 或形状的 ndarray (n_targets,) 每个目标的实际迭代次数。仅适用于 sag 和 lsqr 求解器。其他求解器将返回 None。

注意:您可以将solver定义为sag or saga,以使用梯度下降法。

【讨论】:

  • 是的,抱歉。应该说明梯度下降 - 谢谢!
  • 没有问题 :)..很高兴它有帮助
猜你喜欢
  • 2018-07-31
  • 2016-10-01
  • 2016-05-10
  • 2019-05-14
  • 2017-12-25
  • 2021-04-01
  • 2016-10-23
  • 2017-03-26
  • 2016-07-24
相关资源
最近更新 更多