Cross-validation dengan pengacakan
Seperti yang Anda ingat, cross-validation adalah proses membagi data menjadi himpunan pelatihan dan pengujian beberapa kali. Setiap kali Anda melakukannya, Anda memilih himpunan pelatihan dan pengujian yang berbeda. Dalam latihan ini, Anda akan melakukan cross-validation ShuffleSplit tradisional pada data nilai perusahaan dari sebelumnya. Nanti kita akan membahas perubahan yang perlu dilakukan untuk data deret waktu. Data yang akan digunakan adalah data harga historis yang sama untuk beberapa perusahaan besar.
Sebuah instance objek regresi linear (model) tersedia di workspace Anda bersama dengan fungsi r2_score() untuk penilaian. Selain itu, data disimpan dalam array X dan y. Kami juga menyediakan fungsi pembantu (visualize_predictions()) untuk membantu memvisualisasikan hasilnya.
Latihan ini merupakan bagian dari kursus
Machine Learning untuk Data Deret Waktu di Python
Instruksi latihan
- Inisialisasi objek cross-validation ShuffleSplit dengan 10 split.
- Iterasikan melalui split CV menggunakan objek ini. Pada setiap iterasi:
- Latih model menggunakan indeks pelatihan.
- Hasilkan prediksi menggunakan indeks pengujian, nilai model (\(R^2\)) menggunakan prediksi tersebut, dan kumpulkan hasilnya.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# Import ShuffleSplit and create the cross-validation object
from sklearn.model_selection import ShuffleSplit
cv = ____(____, random_state=1)
# Iterate through CV splits
results = []
for tr, tt in cv.____(X, y):
# Fit the model on training data
____(X[tr], y[tr])
# Generate predictions on the test data, score the predictions, and collect
prediction = ____(X[tt])
score = r2_score(____, ____)
results.append((prediction, score, tt))
# Custom function to quickly visualize predictions
visualize_predictions(results)