2

我正在使用sklearn.linear_model的LinearRegression模块,我想在不使用 Least Squares的情况下计算我的线性回归模型的参数。

例如,我想通过最小化模块sklearn.metrics中定义的回归指标之一的值来估计这个参数(例如,mean_squared_log_error)。

是否有一个模块可以让我轻松做到这一点?

4

1 回答 1

3

您可以编写自己的成本函数并调用最小化。请注意,对 没有任何限制minimize,因此您可能希望在我在这里展示的内容之上添加一些:

import numpy as np
from sklearn.metrics import mean_squared_log_error
from scipy.optimize import minimize

a = np.array([1, 2, 3])
b = np.array([100, 200, 300])

所以这是我想学习的模型(即回归器):

def fun(x):
    return a*x

现在这是我的成本函数:

def cost(x):
    return mean_squared_log_error(b, fun(x))

现在我可以优化它:

print(minimize(cost, x0=[1]))

请注意,我在这里不提供渐变,因此可能会很慢(或使用带有一些优化器的数值差异 IIRC)。

于 2018-12-13T17:01:26.333 回答