Ho una domanda su due metodi diversi da diverse librerie che sembra fare lo stesso lavoro. Sto cercando di creare un modello di regressione lineare.
Ecco il codice che utilizzo la libreria statsmodel con OLS:
X_train, X_test, y_train, y_test = cross_validation.train_test_split(x, y, test_size=0.3, random_state=1)
x_train = sm.add_constant(X_train)
model = sm.OLS(y_train, x_train)
results = model.fit()
print "GFT + Wiki / GT R-squared", results.rsquared
Questo stampa GFT + Wiki / GT R-quadrato 0,981434611923
e il secondo è scikit learn library Metodo del modello lineare:
model = LinearRegression()
model.fit(X_train, y_train)
predictions = model.predict(X_test)
print 'GFT + Wiki / GT R-squared: %.4f' % model.score(X_test, y_test)
Questa stampa GFT + Wiki / GT R al quadrato: 0,8543
Quindi la mia domanda è che entrambi i metodi stampano il nostro risultato R ^ 2 ma uno è 0,98 e l'altro è 0,85.
Da quanto ho capito, OLS funziona con il set di dati di training. Quindi le mie domande,
- Esiste un modo che funzioni con i set di dati di test con OLS?
- Il punteggio del set di dati di analisi ci dà qualche significato (in OLS non abbiamo utilizzato il set di dati di test)? Dalla mia conoscenza passata dobbiamo lavorare con i dati dei test.
- Qual è la differenza tra regressione lineare OLS e scikit. Quale utilizziamo per calcolare il punteggio del modello?
Grazie per qualsiasi aiuto.