mpg*_*mpg 18 python r summary linear-regression scikit-learn
作为一个R用户,我一直想要加速scikit.
从Linear,Ridge和Lasso开始.我已经完成了这些例子.以下是基本的OLS.
设置模型似乎足够合理 - 但似乎找不到合理的方法来获得一组标准的回归输出.
我的代码中的示例:
# Linear Regression
import numpy as np
from sklearn import datasets
from sklearn.linear_model import LinearRegression
# Load the diabetes datasets
dataset = datasets.load_diabetes()
# Fit a linear regression model to the data
model = LinearRegression()
model.fit(dataset.data, dataset.target)
print(model)
# Make predictions
expected = dataset.target
predicted = model.predict(dataset.data)
# Summarize the fit of the model
mse = np.mean((predicted-expected)**2)
print model.intercept_, model.coef_, mse,
print(model.score(dataset.data, dataset.target))
Run Code Online (Sandbox Code Playgroud)
看起来像拦截和coef内置在模型中,我只需要打印(从第二行到第二行)来查看它们.那么所有其他标准回归输出如R ^ 2,调整后的R ^ 2,p值等等.如果我正确地阅读了这些例子,看起来你必须为每一个写一个函数/等式然后打印它.
那么,lin reg模型没有标准的摘要输出吗?
另外,在我打印的系数输出数组中,没有与这些系数相关的变量名称?我刚刚得到数字数组.有没有办法打印这些,我得到系数的输出和它们的变量?
我的打印输出
LinearRegression(copy_X=True, fit_intercept=True, normalize=False)
152.133484163 [ -10.01219782 -239.81908937 519.83978679 324.39042769 -792.18416163
476.74583782 101.04457032 177.06417623 751.27932109 67.62538639] 2859.69039877
0.517749425413
Run Code Online (Sandbox Code Playgroud)
感谢scilearn用户.
Nao*_*man 32
我用:
import sklearn.metrics as metrics
def regression_results(y_true, y_pred):
# Regression metrics
explained_variance=metrics.explained_variance_score(y_true, y_pred)
mean_absolute_error=metrics.mean_absolute_error(y_true, y_pred)
mse=metrics.mean_squared_error(y_true, y_pred)
mean_squared_log_error=metrics.mean_squared_log_error(y_true, y_pred)
median_absolute_error=metrics.median_absolute_error(y_true, y_pred)
r2=metrics.r2_score(y_true, y_pred)
print('explained_variance: ', round(explained_variance,4))
print('mean_squared_log_error: ', round(mean_squared_log_error,4))
print('r2: ', round(r2,4))
print('MAE: ', round(mean_absolute_error,4))
print('MSE: ', round(mse,4))
print('RMSE: ', round(np.sqrt(mse),4))
Run Code Online (Sandbox Code Playgroud)
eic*_*erg 31
sklearn中不存在R类型回归汇总报告.主要原因是sklearn用于预测建模/机器学习,评估标准基于先前看不见的数据(例如回归的预测r ^ 2)的性能.
确实存在用于分类的汇总函数,sklearn.metrics.classification_report
其在分类模型上计算几种类型的(预测)分数.
有关更经典的统计方法,请查看statsmodels
.
Aks*_*lal 17
statsmodels 包提供了一个安静的体面总结
from statsmodels.api import OLS
OLS(dataset.target,dataset.data).fit().summary()
Run Code Online (Sandbox Code Playgroud)
import statsmodels.api as sm
X = sm.add_constant(X.ravel())
results = sm.OLS(y,x).fit()
results.summary()
Run Code Online (Sandbox Code Playgroud)
results.summary() 将结果组织成三个表
归档时间: |
|
查看次数: |
28747 次 |
最近记录: |