Saya punya pertanyaan tentang dua metode berbeda dari perpustakaan yang berbeda yang tampaknya melakukan pekerjaan yang sama. Saya mencoba membuat model regresi linier.
Berikut adalah kode yang saya gunakan perpustakaan statsmodel dengan 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
Ini mencetak GFT + Wiki / GT R-squared 0.981434611923
dan yang kedua adalah scikit learning library Metode model linear:
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)
Ini mencetak GFT + Wiki / GT R-squared: 0,8543
Jadi pertanyaan saya adalah kedua metode mencetak hasil R ^ 2 kami tetapi satu mencetak 0,98 dan yang lainnya 0,85.
Dari pemahaman saya, OLS bekerja dengan dataset pelatihan. Jadi pertanyaan saya,
- Apakah ada cara yang berfungsi dengan set data uji dengan OLS?
- Apakah skor set data traning memberi kami arti (Di OLS kami tidak menggunakan set data uji)? Dari pengetahuan saya sebelumnya, kami harus bekerja dengan data uji.
- Apa perbedaan antara OLS dan regresi linier scikit. Yang mana yang kita gunakan untuk menghitung skor model?
Terima kasih atas bantuannya.