gpt4 book ai didi

python - 如何计算 Python 中线性回归模型的 AIC?

转载 作者:太空狗 更新时间:2023-10-29 22:24:46 25 4
gpt4 key购买 nike

我想计算线性模型的 AIC 以比较它们的复杂性。我是这样做的:

regr = linear_model.LinearRegression()
regr.fit(X, y)

aic_intercept_slope = aic(y, regr.coef_[0] * X.as_matrix() + regr.intercept_, k=1)

def aic(y, y_pred, k):
resid = y - y_pred.ravel()
sse = sum(resid ** 2)

AIC = 2*k - 2*np.log(sse)

return AIC

但是我收到一个在日志中被零除错误。

最佳答案

sklearnLinearRegression 非常适合预测,但正如您所发现的那样非常准系统。 (人们常说 sklearn 远离所有统计推断。)

statsmodels.regression.linear_model.OLS 具有属性属性 AIC 和许多其他预装属性。

但是,请注意,您需要手动将单位向量添加到您的 X 矩阵,以在您的模型中包含一个截距。

from statsmodels.regression.linear_model import OLS
from statsmodels.tools import add_constant

regr = OLS(y, add_constant(X)).fit()
print(regr.aic)

来源是here如果您正在寻找一种替代方法来手动编写,同时仍在使用 sklearn

关于python - 如何计算 Python 中线性回归模型的 AIC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45033980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com