Memeluk Face Train dan Membagi Dataset

Memeluk Face Train Dan Membagi Dataset



Pustaka Hugging Face tidak memiliki fungsi khusus bernama train_test_split. Namun, ketika memisahkan data untuk pelatihan dan pengujian dalam tugas pembelajaran mesin, fungsi train_test_split biasanya digunakan di perpustakaan populer lainnya seperti scikit-learn. Di sini kami akan menjelaskan parameter yang biasanya digunakan dalam fungsi train_test_split dari scikit-learn.

Metode train_test_split di pustaka kumpulan data Hugging Face digunakan untuk membagi kumpulan data menjadi dua subset: subset pelatihan dan subset pengujian. Metode ini biasanya digunakan dalam pembelajaran mesin untuk mengevaluasi performa model pada data yang tidak terlihat. Subset pelatihan digunakan untuk melatih model, sedangkan subset pengujian digunakan untuk menilai performa dan kemampuan generalisasinya.







Berikut gambaran metode train_test_split di Hugging Face:



  1. test_size (numpy.random.Generator, opsional) : Ukuran pemisahan tes ditentukan oleh opsi ini. Tipenya bisa berupa float atau integer.
  • Jika diberikan sebagai float, maka harus mencerminkan persentase kumpulan data yang akan disertakan dalam pemisahan pengujian dan berada di antara 0,0 dan 1,0.
  • Jumlah pasti sampel uji diwakili oleh nilai jika diberikan sebagai bilangan bulat.
  • Jika diatur ke Tidak Ada, pelengkap ukuran kereta digunakan sebagai nilainya.
  • Jika train_size juga Tidak Ada, maka akan disetel ke 0,25 (25% dari kumpulan data).
  • train_size (numpy.random.Generator, opsional): Ukuran perpecahan kereta ditentukan oleh parameter ini. Ini mengikuti pedoman yang sama seperti test_size.
    • Jika diberikan sebagai float, maka harus mencerminkan persentase kumpulan data yang akan disertakan dalam pemisahan rangkaian dan berada di antara 0,0 dan 1,0.
    • Jumlah pasti sampel kereta diwakili oleh nilai jika diberikan sebagai bilangan bulat.
    • Jika diatur ke Tidak Ada, nilainya secara otomatis diubah menjadi pelengkap ukuran tes.
  • acak (bool, opsional, default ke True)
    • Parameter ini menentukan perlu atau tidaknya mengacak data sebelum dipecah.
    • Jika disetel ke True, data akan diacak secara acak sebelum dipecah.
    • Jika disetel ke False, data akan dipecah tanpa diacak.
  • stratify_by_column (str, opsional, defaultnya adalah Tidak Ada)
    • Parameter ini digunakan untuk pemisahan data bertingkat berdasarkan kolom tertentu.
    • Jika ditentukan, itu harus berupa nama kolom label atau kelas.
    • Data akan dipecah sedemikian rupa sehingga mempertahankan distribusi label atau kelas yang sama dalam pemisahan pelatihan dan pengujian.
  • benih (int, opsional)
    • Parameter ini memungkinkan Anda menyetel seed untuk menginisialisasi BitGenerator default.
    • Jika diatur ke Tidak Ada, entropi baru yang tidak dapat diprediksi akan diambil dari sistem operasi.
    • Jika bilangan bulat atau bilangan bulat seperti array dilewatkan, bilangan bulat tersebut akan digunakan untuk memperoleh status awal BitGenerator.
  • generator (numpy.random.Generator, opsional)
    • Parameter ini memungkinkan Anda menentukan generator acak NumPy untuk menghitung permutasi baris kumpulan data.
    • Jika disetel ke Tidak Ada (default), ia menggunakan np.random.default_rng yang merupakan BitGenerator default (PCG64) dari NumPy.
  • keep_in_memory (bool, defaultnya adalah False)
    • Parameter ini menentukan apakah akan menyimpan indeks terpisah di memori alih-alih menuliskannya ke file cache.
    • Jika diatur ke True, indeks pemisahan akan disimpan dalam memori selama proses pemisahan.
    • Jika disetel ke False, indeks pemisahan akan ditulis ke file cache untuk digunakan nanti.
  • load_from_cache_file (Opsional[bool], defaultnya adalah True jika caching diaktifkan)
    • Parameter ini menentukan apakah akan menggunakan file cache untuk memuat indeks terpisah alih-alih menghitung ulang indeks tersebut.
    • Jika disetel ke True dan file cache yang menyimpan indeks terpisah dapat diidentifikasi, maka file tersebut akan digunakan.
    • Jika disetel ke False, indeks pemisahan akan dihitung ulang meskipun file cache ada.
    • Nilai defaultnya adalah True jika caching diaktifkan.
  • train_cache_file_name (str, opsional)
    • Parameter ini memungkinkan Anda memberikan jalur atau nama tertentu untuk file cache yang menyimpan indeks pemisahan kereta.
    • Jika ditentukan, indeks pemisahan kereta akan disimpan dalam file cache ini, bukan nama file cache yang dibuat secara otomatis.
  • test_cache_file_name (str, opsional)
    • Parameter ini memungkinkan Anda memberikan jalur atau nama tertentu untuk file cache yang menyimpan indeks pemisahan pengujian.
    • Jika ditentukan, indeks pemisahan pengujian akan disimpan dalam file cache ini, bukan nama file cache yang dibuat secara otomatis.
  • writer_batch_size (int, defaultnya 1000)
    • Parameter ini menentukan jumlah baris per operasi penulisan untuk penulis file cache.
    • Ini adalah trade-off antara penggunaan memori dan kecepatan pemrosesan.
    • Nilai yang lebih tinggi mengurangi jumlah operasi tulis namun mengonsumsi lebih banyak memori selama pemrosesan.
    • Nilai yang lebih rendah mengkonsumsi lebih sedikit memori sementara namun mungkin sedikit mempengaruhi kecepatan pemrosesan.
  • train_new_fingerprint (str, opsional, defaultnya adalah Tidak Ada)
    • Parameter ini mewakili sidik jari baru dari rangkaian kereta setelah menerapkan transformasi.
    • Jika ditentukan, ini memberikan sidik jari baru untuk rangkaian kereta.
    • Jika diatur ke Tidak Ada, sidik jari baru dihitung menggunakan hash dari sidik jari sebelumnya dan argumen transformasi.
  • test_new_fingerprint (str, opsional, defaultnya adalah Tidak Ada)
    • Parameter ini mewakili sidik jari baru dari set pengujian setelah menerapkan transformasi.
    • Jika ditentukan, ini akan memberikan sidik jari baru untuk set pengujian.
    • Jika diatur ke Tidak Ada, sidik jari baru dihitung menggunakan hash dari sidik jari sebelumnya dan argumen transformasi.

    Sintaksis:

    dari sklearn.model_selection impor train_test_split

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

    X : Ini mewakili fitur masukan atau variabel independen kumpulan data Anda.



    • Dan : Ini mewakili keluaran atau variabel terikat yang ingin Anda prediksi.
    • ukuran_tes : Parameter ini menentukan proporsi kumpulan data yang akan dialokasikan untuk pengujian. Hal ini dapat ditentukan sebagai float (misalnya, 0,2 untuk 20%) atau bilangan bulat (misalnya, 200 untuk 200 sampel).
    • keadaan_acak : Ini adalah parameter opsional yang memungkinkan Anda menyetel benih untuk penghasil angka acak. Ini memastikan bahwa pemisahan dapat direproduksi yang berarti Anda akan mendapatkan pemisahan yang sama jika Anda menggunakan nilai keadaan acak yang sama.

    Fungsi train_test_split mengembalikan empat set data:





    • X_kereta : Kumpulan fitur masukan pelatihan.
    • X_tes : Kumpulan pengujian fitur masukan.
    • y_train : Kumpulan pelatihan label keluaran.
    • tes_y : Kumpulan pengujian label keluaran.

    Contoh : Contoh program berikut disimpan sebagai “ tes.py ”.

    dari sklearn.model_selection impor train_test_split

    dari kumpulan data impor load_dataset

    # Langkah 1: Muat kumpulan data

    kumpulan data = memuat_dataset('imdb')

    X = kumpulan data['kereta']['teks']

    y = kumpulan data['kereta']['label']

    # Langkah 2: Pisahkan kumpulan data

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2,

    acak=Benar, keadaan_acak=42)

    # Langkah 3: Jelajahi kumpulan data

    print('Jumlah contoh pada dataset asli:', len(X))

    print('Jumlah contoh pada dataset kereta:', len(X_train))

    print('Jumlah contoh pada dataset pengujian:', len(X_test))

    # Langkah 4: Akses dan cetak data contoh

    print('\nContoh dari dataset kereta api:')

    mencetak(X_kereta[0], y_kereta[0])

    print('\nContoh dari dataset pengujian:')

    mencetak(X_test[0], y_test[0])

    Pernyataan impor ini berasal dari scikit-learn, bukan dari pustaka kumpulan data Hugging Face. Harap pastikan Anda telah menginstal scikit-learn di lingkungan Anda. Anda dapat menginstalnya menggunakan perintah berikut:



    pip instal scikit-belajar

    Penjelasan: Pertama, kita mengimpor modul yang diperlukan: train_test_split dari scikit-learn.

    • Kami memuat kumpulan data IMDb menggunakan load_dataset('imdb') dan menetapkannya ke variabel kumpulan data.
    • Untuk menggunakan train_test_split, kita perlu memisahkan fitur masukan (X) dan label terkait (y). Dalam hal ini, kami berasumsi bahwa kumpulan data memiliki pemisahan bernama “kereta” dengan “teks” sebagai fitur masukan dan “label” sebagai label terkait. Anda mungkin perlu menyesuaikan kunci berdasarkan struktur kumpulan data Anda.
    • Kami kemudian meneruskan fitur input (X) dan label (y) ke train_test_split bersama dengan parameter lainnya. Dalam contoh ini, kami menetapkan test_size ke 0,2 yang berarti 20% data akan dialokasikan untuk pengujian. Parameter shuffle disetel ke “True” untuk mengacak data secara acak sebelum dipecah, dan parameter random_state disetel ke 42 agar dapat direproduksi.
    • Fungsi train_test_split mengembalikan empat set data: X_train, X_test, y_train, dan y_test. Ini masing-masing mewakili subkumpulan pelatihan dan pengujian dari fitur masukan dan label.
    • Kami mencetak jumlah contoh dalam kumpulan data asli (len(X)), kumpulan data pelatihan (len(X_train)), dan kumpulan data pengujian (len(X_test)). Hal ini memungkinkan kami memverifikasi proses pemisahan dan memastikan bahwa subset dibuat dengan benar.
    • Terakhir, kita mengakses dan mencetak contoh dari kumpulan data pelatihan (X_train[0], y_train[0]) dan contoh dari kumpulan data pengujian (X_test[0], y_test[0]).

    Keluaran : Kami menjalankan program yang disimpan sebelumnya menggunakan Python “test.py”.

    Kesimpulan

    Fungsionalitas pemisahan train-test yang disediakan oleh pustaka kumpulan data Hugging Face, dikombinasikan dengan fungsi train_test_split scikit-learn, menawarkan cara yang mudah dan efisien untuk membagi kumpulan data menjadi subset pelatihan dan pengujian terpisah.

    Dengan memanfaatkan fungsi train_test_split, Anda dapat mengontrol ukuran set pengujian, apakah akan mengacak data, dan menyetel seed acak agar dapat direproduksi. Fleksibilitas ini memungkinkan evaluasi model pembelajaran mesin secara efektif pada data yang tidak terlihat dan membantu mendeteksi masalah seperti overfitting atau underfitting.

    Parameter fungsi train_test_split memungkinkan Anda mengontrol berbagai aspek pemisahan seperti ukuran set pengujian (test_size), mengacak data (shuffle), dan melakukan pemisahan bertingkat berdasarkan kolom tertentu (stratify_by_column). Selain itu, Anda dapat menentukan nilai benih (seed) untuk reproduktifitas dan menyesuaikan nama file cache untuk menyimpan indeks terpisah (train_cache_file_name dan test_cache_file_name).

    Fungsionalitas yang ditawarkan Hugging Face mempermudah persiapan data Anda untuk pelatihan dan evaluasi model. Dengan memiliki subkumpulan pelatihan dan pengujian yang terpisah, Anda dapat menilai performa model secara akurat pada data yang tidak terlihat, mendeteksi potensi masalah seperti overfitting, dan membuat keputusan yang tepat untuk penyempurnaan model.

    Secara keseluruhan, fungsi pemisahan train-test di pustaka kumpulan data Hugging Face, bersama dengan train_test_split dari scikit-learn, menyediakan seperangkat alat canggih untuk pemisahan data yang efisien, evaluasi model, dan pengembangan solusi pembelajaran mesin yang tangguh.