【问题标题】:Linear Regression without Least Squares in sklearnsklearn中没有最小二乘的线性回归
【发布时间】:2019-05-14 21:18:28
【问题描述】:

我正在使用 sklearn.linear_modelLinearRegression 模块,我想计算线性回归模型的参数不使用最小二乘

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

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

【问题讨论】:

    标签: python scikit-learn linear-regression


    【解决方案1】:

    您可以编写自己的成本函数并调用最小化。请注意,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 和一些优化器)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-17
      • 2018-07-18
      • 1970-01-01
      • 1970-01-01
      • 2015-05-15
      • 2015-10-31
      • 1970-01-01
      相关资源
      最近更新 更多