- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在 OLS 形式的 StatsModels 中,results.summary 显示回归结果的汇总(例如 AIC、BIC、R 平方、...)
有什么办法可以在 sklearn.linear_model.ridge 中得到这个汇总表吗?
如果有人能指导我,我将不胜感激。谢谢。
最佳答案
据我所知,sklearn 中没有类似 R(或 Statsmodels)的汇总表。 (请勾选this answer)
相反,如果您需要它,可以使用 statsmodels.regression.linear_model.OLS.fit_regularized类(class)。 (L1_wt=0
用于岭回归。)
目前,似乎 model.fit_regularized(~).summary()
返回 None
尽管有下面的文档字符串。但是对象有params
,summary()
可以不知何故使用。
Returns: A RegressionResults object, of the same type returned by
fit
.
示例。
样本数据不适用于岭回归,但无论如何我都会尝试。
在.
import numpy as np
import pandas as pd
import statsmodels
import statsmodels.api as sm
import matplotlib.pyplot as plt
statsmodels.__version__
出去。
'0.8.0rc1'
在.
data = sm.datasets.ccard.load()
print "endog: " + data.endog_name
print "exog: " + ', '.join(data.exog_name)
data.exog[:5, :]
出去。
endog: AVGEXP
exog: AGE, INCOME, INCOMESQ, OWNRENT
Out[2]:
array([[ 38. , 4.52 , 20.4304, 1. ],
[ 33. , 2.42 , 5.8564, 0. ],
[ 34. , 4.5 , 20.25 , 1. ],
[ 31. , 2.54 , 6.4516, 0. ],
[ 32. , 9.79 , 95.8441, 1. ]])
在.
y, X = data.endog, data.exog
model = sm.OLS(y, X)
results_fu = model.fit()
print results_fu.summary()
出去。
OLS Regression Results
==============================================================================
Dep. Variable: y R-squared: 0.543
Model: OLS Adj. R-squared: 0.516
Method: Least Squares F-statistic: 20.22
Date: Wed, 19 Oct 2016 Prob (F-statistic): 5.24e-11
Time: 17:22:48 Log-Likelihood: -507.24
No. Observations: 72 AIC: 1022.
Df Residuals: 68 BIC: 1032.
Df Model: 4
Covariance Type: nonrobust
==============================================================================
coef std err t P>|t| [0.025 0.975]
------------------------------------------------------------------------------
x1 -6.8112 4.551 -1.497 0.139 -15.892 2.270
x2 175.8245 63.743 2.758 0.007 48.628 303.021
x3 -9.7235 6.030 -1.613 0.111 -21.756 2.309
x4 54.7496 80.044 0.684 0.496 -104.977 214.476
==============================================================================
Omnibus: 76.325 Durbin-Watson: 1.692
Prob(Omnibus): 0.000 Jarque-Bera (JB): 649.447
Skew: 3.194 Prob(JB): 9.42e-142
Kurtosis: 16.255 Cond. No. 87.5
==============================================================================
Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
在.
frames = []
for n in np.arange(0, 0.25, 0.05).tolist():
results_fr = model.fit_regularized(L1_wt=0, alpha=n, start_params=results_fu.params)
results_fr_fit = sm.regression.linear_model.OLSResults(model,
results_fr.params,
model.normalized_cov_params)
frames.append(np.append(results_fr.params, results_fr_fit.ssr))
df = pd.DataFrame(frames, columns=data.exog_name + ['ssr*'])
df.index=np.arange(0, 0.25, 0.05).tolist()
df.index.name = 'alpha*'
df.T
出去。
在.
%matplotlib inline
fig, ax = plt.subplots(1, 2, figsize=(14, 4))
ax[0] = df.iloc[:, :-1].plot(ax=ax[0])
ax[0].set_title('Coefficient')
ax[1] = df.iloc[:, -1].plot(ax=ax[1])
ax[1].set_title('SSR')
出去。
在.
results_fr = model.fit_regularized(L1_wt=0, alpha=0.04, start_params=results_fu.params)
final = sm.regression.linear_model.OLSResults(model,
results_fr.params,
model.normalized_cov_params)
print final.summary()
出去。
OLS Regression Results
==============================================================================
Dep. Variable: y R-squared: 0.543
Model: OLS Adj. R-squared: 0.516
Method: Least Squares F-statistic: 20.17
Date: Wed, 19 Oct 2016 Prob (F-statistic): 5.46e-11
Time: 17:22:49 Log-Likelihood: -507.28
No. Observations: 72 AIC: 1023.
Df Residuals: 68 BIC: 1032.
Df Model: 4
Covariance Type: nonrobust
==============================================================================
coef std err t P>|t| [0.025 0.975]
------------------------------------------------------------------------------
x1 -5.6375 4.554 -1.238 0.220 -14.724 3.449
x2 159.1412 63.781 2.495 0.015 31.867 286.415
x3 -8.1360 6.034 -1.348 0.182 -20.176 3.904
x4 44.2597 80.093 0.553 0.582 -115.564 204.083
==============================================================================
Omnibus: 76.819 Durbin-Watson: 1.694
Prob(Omnibus): 0.000 Jarque-Bera (JB): 658.948
Skew: 3.220 Prob(JB): 8.15e-144
Kurtosis: 16.348 Cond. No. 87.5
==============================================================================
Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
关于python - sklearn.linear_model.ridge 中的统计汇总表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40072870/
我需要限制以下命令的 CPU 使用率,因为它使用了 100% 的 CPU。 from sklearn.linear_model import LinearRegression mode
如果在 sklearn.linear_model 中的任何线性模型中将归一化参数设置为 True,是否会在评分步骤中应用归一化? 例如: from sklearn import linear_mode
scikit-learn具有两个逻辑回归函数: sklearn.linear_model.LogisticRegression sklearn.linear_model.LogisticRegress
我正在尝试运行此回归代码。 import matplotlib import matplotlib.pyplot as plt import numpy as np import pandas as
我正在使用 sklearn.linear_model 和模块 LinearRegression 执行一个简单的自回归模型。你可以在下面看到我的代码。训练数据集位于 train 中,X 包含目标的滞后版
我知道我可能会将损失函数更改为以下之一: loss : str, 'hinge' or 'log' or 'modified_huber' The loss function to be used.
我对 ML 和 sklearn 比较陌生,我正在尝试使用具有不同值的 linear_model.Lasso 为具有 6 个不同特征的输入数据训练线性模型正则化参数。鉴于 X 和 y 是我的模型输入参数
这是什么意思?它在我使用 sklearn.linear_model.LassoLarsIC 时弹出:“提前停止 lars 路径,因为残差很小并且 alpha 的当前值不再得到很好的控制” 最佳答案 s
我认为下面的 Lasso 问题有简单的解决方案 [1,2,0,0] 因为 np.dot(x, [1,2,0,0]) 返回 [[5,7,6,8]]。 clf = linear_model.Lasso(a
scikit-learn 的 sklearn.linear_model.LogisticRegression 类如何处理回归和分类问题? 如 Wikipedia page 上所示以及许多来源,由于逻辑
我正在尝试进行多变量线性回归。但我发现 sklearn.linear_model 工作起来很奇怪。这是我的代码: import numpy as np from sklearn import line
在 OLS 形式的 StatsModels 中,results.summary 显示回归结果的汇总(例如 AIC、BIC、R 平方、...) 有什么办法可以在 sklearn.linear_model
我对 sklearn.linear_model 中 RidgeCV 中 normalized= 的具体作用感到困惑。 文档说: normalize : bool, default=False This
我正在研究多类分类(10 类)。我正在使用 sklearn.linear_model.SGDClassifier。我发现这个模型使用了一对一的方法。 SGDClassifier 有一个参数 class
我使用“statsmodels.regression.linear_model”来做 WLS。 但我不知道如何为我的回归赋予权重。 有谁知道权重是如何给出的以及它是如何工作的? import nump
我有以下使用 linear_model.Lasso 的代码: X_train, X_test, y_train, y_test = cross_validation.train_test_split(
是否可以根据在不同实现(例如 Java)中计算出的现有系数创建这样的实例? 我尝试创建一个实例,然后直接设置 coef_ 和 intercept_,这似乎可行,但我不确定这里是否有缺点,或者我是否会破
我正在尝试加载保存为 .joblib 的模型文件。我试过 pickle , sklearn.externals.joblib和 joblib本身。都是一样的错误。下面是我正在尝试做的一个例子。 cl
我想使用pickle模块,序列化我电脑上学习到的模型: pickle.dump(clf, open(os.path.join(dest, 'classifier.pkl'), 'wb'), proto
我想使用pickle模块,序列化我电脑上学习到的模型: pickle.dump(clf, open(os.path.join(dest, 'classifier.pkl'), 'wb'), proto
我是一名优秀的程序员,十分优秀!