Memeluk Face Train dan Split Dataset

Memeluk Face Train Dan Split Dataset



Pustaka Hugging Face tidak mempunyai fungsi khusus bernama train_test_split. Walau bagaimanapun, apabila ia melibatkan pembahagian data untuk latihan dan ujian dalam tugasan pembelajaran mesin, fungsi train_test_split biasanya digunakan dalam perpustakaan popular lain seperti scikit-learn. Di sini, kami akan menerangkan parameter yang biasanya digunakan dalam fungsi train_test_split daripada scikit-learn.

Kaedah train_test_split dalam pustaka set data Hugging Face digunakan untuk membahagikan set data kepada dua subset: subset latihan dan subset ujian. Kaedah ini biasanya digunakan dalam pembelajaran mesin untuk menilai prestasi model pada data yang tidak kelihatan. Subset latihan digunakan untuk melatih model, manakala subset ujian digunakan untuk menilai prestasi dan keupayaan generalisasinya.







Berikut ialah gambaran keseluruhan kaedah train_test_split dalam Memeluk Muka:



  1. test_size (numpy.random.Generator, pilihan) : Saiz pemisahan ujian ditentukan oleh pilihan ini. Jenis boleh sama ada terapung atau integer.
  • Jika ia diberikan sebagai apungan, ia harus mencerminkan peratusan set data untuk disertakan dalam pemisahan ujian dan berada di antara 0.0 dan 1.0.
  • Bilangan tepat sampel ujian diwakili oleh nilai jika ia dibekalkan sebagai integer.
  • Jika ia ditetapkan kepada Tiada, pelengkap saiz kereta api digunakan sebagai nilai.
  • Jika train_size juga Tiada, ia akan ditetapkan kepada 0.25 (25% daripada set data).
  • train_size (numpy.random.Generator, pilihan): Saiz belahan kereta api ditentukan oleh parameter ini. Ia mengikut garis panduan yang sama seperti test_size.
    • Jika ia diberikan sebagai apungan, ia harus mencerminkan peratusan set data untuk dimasukkan ke dalam pemisahan kereta api dan berada di antara 0.0 dan 1.0.
    • Bilangan tepat sampel kereta api diwakili oleh nilai jika ia dibekalkan sebagai integer.
    • Jika ia ditetapkan kepada Tiada, nilai ditukar secara automatik kepada pelengkap saiz ujian.
  • shuffle (bool, pilihan, lalai kepada True)
    • Parameter ini menentukan sama ada untuk mengocok data atau tidak sebelum membelah.
    • Jika ia ditetapkan kepada Benar, data akan dikocok secara rawak sebelum pemisahan.
    • Jika ia ditetapkan kepada Palsu, data akan dipecahkan tanpa dikocok.
  • stratify_by_column (str, pilihan, lalai kepada Tiada)
    • Parameter ini digunakan untuk pemisahan berstrata data berdasarkan lajur tertentu.
    • Jika ia dinyatakan, ia mestilah nama lajur bagi label atau kelas.
    • Data akan dibahagikan dengan cara yang mengekalkan pengedaran label atau kelas yang sama dalam kereta api dan pembahagian ujian.
  • benih (int, pilihan)
    • Parameter ini membolehkan anda menetapkan benih untuk memulakan BitGenerator lalai.
    • Jika ia ditetapkan kepada Tiada, entropi baru yang tidak dapat diramalkan akan ditarik daripada sistem pengendalian.
    • Jika integer atau integer seperti tatasusunan diluluskan, ia akan digunakan untuk memperoleh keadaan BitGenerator awal.
  • penjana (numpy.random.Generator, pilihan)
    • Parameter ini membolehkan anda menentukan penjana rawak NumPy untuk mengira pilih atur baris set data.
    • Jika ia ditetapkan kepada Tiada (lalai), ia menggunakan np.random.default_rng yang merupakan BitGenerator lalai (PCG64) NumPy.
  • keep_in_memory (bool, lalai kepada False)
    • Parameter ini menentukan sama ada untuk menyimpan indeks pisah dalam ingatan dan bukannya menulisnya ke fail cache.
    • Jika ia ditetapkan kepada Benar, indeks pecahan akan disimpan dalam ingatan semasa proses pemisahan.
    • Jika ia ditetapkan kepada False, indeks pecahan akan ditulis ke fail cache untuk kegunaan kemudian.
  • load_from_cache_file (Pilihan[bool], lalai kepada True jika caching didayakan)
    • Parameter ini menentukan sama ada hendak menggunakan fail cache untuk memuatkan indeks pisah dan bukannya mengira semula.
    • Jika ia ditetapkan kepada Benar dan fail cache yang menyimpan indeks pisah boleh dikenal pasti, ia akan digunakan.
    • Jika ia ditetapkan kepada False, indeks pecahan akan dikira semula walaupun fail cache wujud.
    • Nilai lalai ialah Benar jika caching didayakan.
  • train_cache_file_name (str, pilihan)
    • Parameter ini membolehkan anda menyediakan laluan atau nama khusus untuk fail cache yang menyimpan indeks pecahan kereta api.
    • Jika ia dinyatakan, indeks split kereta api akan disimpan dalam fail cache ini dan bukannya nama fail cache yang dijana secara automatik.
  • test_cache_file_name (str, pilihan)
    • Parameter ini membolehkan anda menyediakan laluan atau nama khusus untuk fail cache yang menyimpan indeks pisah ujian.
    • Jika ia dinyatakan, indeks pemisahan ujian akan disimpan dalam fail cache ini dan bukannya nama fail cache yang dijana secara automatik.
  • writer_batch_size (int, lalai kepada 1000)
    • Parameter ini menentukan bilangan baris setiap operasi tulis untuk penulis fail cache.
    • Ia adalah pertukaran antara penggunaan memori dan kelajuan pemprosesan.
    • Nilai yang lebih tinggi mengurangkan bilangan operasi tulis tetapi menggunakan lebih banyak memori semasa pemprosesan.
    • Nilai yang lebih rendah menggunakan kurang memori sementara tetapi mungkin menjejaskan sedikit kelajuan pemprosesan.
  • train_new_fingerprint (str, pilihan, lalai kepada Tiada)
    • Parameter ini mewakili cap jari baharu set kereta api selepas menggunakan transformasi.
    • Jika ia dinyatakan, ia menyediakan cap jari baharu untuk set kereta api.
    • Jika ia ditetapkan kepada Tiada, cap jari baharu dikira menggunakan cincang cap jari sebelumnya dan argumen transformasi.
  • test_new_fingerprint (str, pilihan, lalai kepada Tiada)
    • Parameter ini mewakili cap jari baharu set ujian selepas menggunakan transformasi.
    • Jika ia dinyatakan, ia menyediakan cap jari baharu untuk set ujian.
    • Jika ia ditetapkan kepada Tiada, cap jari baharu dikira menggunakan cincang cap jari sebelumnya dan argumen transformasi.

    Sintaks:

    daripada sklearn.model_selection import train_test_split

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

    X : Ini mewakili ciri input atau pembolehubah bebas set data anda.



    • dan : Ini mewakili keluaran atau pembolehubah bersandar yang anda cuba ramalkan.
    • ujian_saiz : Parameter ini menentukan bahagian set data yang akan diperuntukkan untuk ujian. Ia boleh ditentukan sebagai apungan (cth., 0.2 untuk 20%) atau integer (cth., 200 untuk 200 sampel).
    • keadaan_rambang : Ini ialah parameter pilihan yang membolehkan anda menetapkan benih untuk penjana nombor rawak. Ia memastikan bahawa pemisahan boleh dihasilkan semula yang bermaksud bahawa anda akan memperoleh pemisahan yang sama jika anda menggunakan nilai keadaan rawak yang sama.

    Fungsi train_test_split mengembalikan empat set data:





    • X_kereta api : Set latihan ciri input.
    • X_test : Set ujian ciri input.
    • y_train : Set latihan label output.
    • y_test : Set ujian label output.

    Contoh : Program contoh berikut disimpan sebagai “ test.py ”.

    daripada sklearn.model_selection import train_test_split

    daripada set data import load_dataset

    # Langkah 1: Muatkan set data

    set data = load_dataset('imdb')

    X = set data['kereta api']['teks']

    y = set data['kereta api']['label']

    # Langkah 2: Pisahkan set data

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

    shuffle=Benar, random_state=42)

    # Langkah 3: Teroka set data

    print('Bilangan contoh dalam set data asal:', len(X))

    print('Bilangan contoh dalam set data kereta api:', len(X_train))

    print('Bilangan contoh dalam set data ujian:', len(X_test))

    # Langkah 4: Akses dan cetak data contoh

    print('\nContoh daripada set data kereta api:')

    print(X_train[0], y_train[0])

    print('\nContoh daripada set data ujian:')

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

    Kenyataan import ini adalah daripada scikit-learn, bukan daripada pustaka kumpulan data Hugging Face. Sila pastikan bahawa anda telah memasang scikit-learn di persekitaran anda. Anda boleh memasangnya menggunakan arahan berikut:



    pip install scikit-learn

    Penjelasan: Pertama, kami mengimport modul yang diperlukan: train_test_split daripada scikit-learn.

    • Kami memuatkan set data IMDb menggunakan load_dataset('imdb') dan menetapkannya kepada pembolehubah set data.
    • Untuk menggunakan train_test_split, kita perlu memisahkan ciri input (X) dan label yang sepadan (y). Dalam kes ini, kami menganggap bahawa set data mempunyai pembahagian bernama 'kereta api' dengan 'teks' sebagai ciri input dan 'label' sebagai label yang sepadan. Anda mungkin perlu melaraskan kunci berdasarkan struktur set data anda.
    • Kami kemudian menghantar ciri input (X) dan label (y) ke train_test_split bersama-sama dengan parameter lain. Dalam contoh ini, kami menetapkan test_size kepada 0.2 yang bermaksud bahawa 20% daripada data akan diperuntukkan untuk ujian. Parameter shuffle ditetapkan kepada 'True' untuk mengocok data secara rawak sebelum membelah, dan parameter random_state ditetapkan kepada 42 untuk kebolehulangan.
    • Fungsi train_test_split mengembalikan empat set data: X_train, X_test, y_train dan y_test. Ini mewakili subset latihan dan ujian bagi ciri input dan label, masing-masing.
    • Kami mencetak bilangan contoh dalam set data asal (len(X)), set data latihan (len(X_train)) dan set data ujian (len(X_test)). Ini membolehkan kami mengesahkan proses pemisahan dan memastikan subset dibuat dengan betul.
    • Akhir sekali, kami mengakses dan mencetak contoh daripada set data latihan (X_train[0], y_train[0]) dan contoh daripada set data ujian (X_test[0], y_test[0]).

    Pengeluaran : Kami menjalankan program yang disimpan sebelum ini menggunakan Python “test.py”.

    Kesimpulan

    Fungsi pemisahan ujian kereta api yang disediakan oleh perpustakaan set data Hugging Face, digabungkan dengan fungsi train_test_split scikit-learn, menawarkan cara yang mudah dan cekap untuk membahagikan set data kepada subset latihan dan ujian yang berasingan.

    Dengan menggunakan fungsi train_test_split, anda boleh mengawal saiz set ujian, sama ada untuk mengocok data dan menetapkan benih rawak untuk kebolehulangan. Fleksibiliti ini membolehkan penilaian berkesan model pembelajaran mesin ke atas data yang tidak kelihatan dan membantu dalam mengesan isu seperti overfitting atau underfitting.

    Parameter fungsi train_test_split membolehkan anda mengawal pelbagai aspek pemisahan seperti saiz set ujian (test_size), mengocok data (shuffle) dan melakukan pemisahan berstrata berdasarkan lajur tertentu (stratify_by_column). Selain itu, anda boleh menentukan nilai benih (benih) untuk kebolehulangan dan menyesuaikan nama fail cache untuk menyimpan indeks pisah (train_cache_file_name dan test_cache_file_name).

    Fungsi yang ditawarkan oleh Hugging Face memudahkan anda menyediakan data anda untuk latihan dan penilaian model. Dengan mempunyai subset latihan dan ujian yang berasingan, anda boleh menilai prestasi model anda dengan tepat pada data yang tidak kelihatan, mengesan isu yang berpotensi seperti overfitting dan membuat keputusan termaklum untuk penambahbaikan model.

    Secara keseluruhannya, fungsi pemisahan ujian kereta api dalam pustaka set data Hugging Face, bersama-sama dengan train_test_split scikit-learn, menyediakan set alat yang berkuasa untuk pemisahan data yang cekap, penilaian model dan pembangunan penyelesaian pembelajaran mesin yang mantap.