繁体   English   中英

sklearn中没有最小二乘的线性回归

[英]Linear Regression without Least Squares in sklearn

我从sklearn.linear_model线性回归模块的工作,我想我的计算线性回归模型的参数,而无需使用最小二乘

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM