Mulai sekarangMulai gratis

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

Lihat Kursus

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)
Edit dan Jalankan Kode