![](/img/trans.png)
[英]How does pytorch compute the gradients for a simple linear regression model?
[英]How to compute AIC for linear regression model in Python?
我想為線性模型計算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
但是我divide by zero encountered in log
錯誤中divide by zero encountered in log
。
sklearn
的LinearRegression
非常適合預測,但是您已經發現了相當准系統。 (通常說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)
來源是在這里 ,如果你正在尋找的同時仍然使用手工編寫的另一種方式sklearn
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.