En tant qu'utilisateur R, je souhaitais aussi me familiariser avec scikit.
Commencé avec Linear, Ridge et Lasso. J'ai parcouru les exemples. Ci-dessous se trouve la base des MCO.
Configurer le (s) modèle (s) semble assez raisonnable, mais n'arrive pas à trouver un moyen raisonnable d'obtenir un ensemble standard de résultats de régression.
Exemple dans mon code:
# 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))
On dirait que intercept et coef sont intégrés dans le modèle, et je tape simplement print (avant-dernière ligne) pour les voir. Qu'en est-il de toutes les autres sorties de régression standard telles que R ^ 2, valeurs ajustées R ^ 2, p, etc. Si je lis correctement les exemples, il semblerait que vous deviez écrire une fonction/une équation pour chacun de ceux-ci, puis l'imprimer.
Alors, n'y a-t-il pas de sortie de résumé standard pour les modèles lin reg?
En outre, dans mon tableau imprimé de sorties de coefficients, il n'y a pas de noms de variable associés à chacun de ceux-ci? Je viens de recevoir le tableau numérique. Existe-t-il un moyen de les imprimer pour obtenir une sortie des coefficients et de la variable à laquelle ils correspondent?
Ma sortie imprimée
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
Merci aux utilisateurs scilearn.
Il n'existe aucun rapport récapitulatif de régression de type R dans sklearn. La raison principale en est que sklearn est utilisé pour la modélisation prédictive/l'apprentissage automatique et que les critères d'évaluation sont basés sur les performances obtenues avec des données inédites (telles que la valeur prédictive r 2 pour la régression).
Il existe une fonction récapitulative pour la classification appelée sklearn.metrics.classification_report
qui calcule plusieurs types de scores (prédictifs) sur un modèle de classification.
Pour une approche statistique plus classique, jetez un oeil à statsmodels
.
le package statsmodel donne un résumé assez décent
from statsmodel.api import OLS
OLS(dataset.target,dataset.data).fit().summary()