Hugging Face Train ve Bölünmüş Veri Kümesi

Hugging Face Train Ve Bolunmus Veri Kumesi



Hugging Face kütüphanesinin train_test_split adında özel bir işlevi yoktur. Ancak, makine öğrenimi görevlerinde eğitim ve test için verileri bölmek söz konusu olduğunda train_test_split işlevi, scikit-learn gibi diğer popüler kütüphanelerde yaygın olarak kullanılır. Burada genellikle scikit-learn'den train_test_split fonksiyonunda kullanılan parametreleri açıklayacağız.

Hugging Face'in veri kümesi kütüphanesindeki train_test_split yöntemi, bir veri kümesini iki alt kümeye bölmek için kullanılır: bir eğitim alt kümesi ve bir test alt kümesi. Bu yöntem, bir modelin görünmeyen veriler üzerindeki performansını değerlendirmek için makine öğreniminde yaygın olarak kullanılır. Eğitim alt kümesi modeli eğitmek için kullanılırken, test alt kümesi performansını ve genelleme yeteneklerini değerlendirmek için kullanılır.







Hugging Face'teki train_test_split yöntemine genel bir bakış:



  1. test_size (numpy.random.Generator, isteğe bağlı) : Test bölümünün boyutu bu seçenekle belirlenir. Tür, kayan nokta veya tamsayı olabilir.
  • Float olarak verilmişse test bölümüne dahil edilecek veri kümesinin yüzdesini yansıtmalı ve 0,0 ile 1,0 arasında olmalıdır.
  • Test örneklerinin tam sayısı, tamsayı olarak sağlandığı takdirde değerle temsil edilir.
  • Yok olarak ayarlanırsa değer olarak tren boyutunun tamamlayıcısı kullanılır.
  • Train_size değeri de Yok ise, 0,25'e (veri kümesinin %25'i) ayarlanacaktır.
  • train_size (numpy.random.Generator, isteğe bağlı): Trenin bölünme boyutu bu parametreyle belirlenir. test_size ile aynı yönergeleri izler.
    • Float olarak verilmişse, tren ayrımına dahil edilecek veri kümesinin yüzdesini yansıtmalı ve 0,0 ile 1,0 arasında olmalıdır.
    • Tren örneklerinin tam sayısı, tamsayı olarak sağlandığı takdirde değerle temsil edilir.
    • Hiçbiri olarak ayarlanırsa değer otomatik olarak test boyutunun tamamlayıcısına değiştirilir.
  • karıştır (bool, isteğe bağlı, varsayılan olarak True'dur)
    • Bu parametre, verilerin bölünmeden önce karıştırılıp karıştırılmayacağını belirler.
    • True olarak ayarlanırsa veriler bölünmeden önce rastgele karıştırılacaktır.
    • Yanlış olarak ayarlanırsa veriler karıştırılmadan bölünür.
  • stratify_by_column (str, isteğe bağlı, varsayılan olarak Hiçbiri'dir)
    • Bu parametre, verilerin belirli bir sütuna göre katmanlı olarak bölünmesi için kullanılır.
    • Belirtilmişse etiketlerin veya sınıfların sütun adı olmalıdır.
    • Veriler, eğitim ve test bölmelerinde etiketlerin veya sınıfların aynı dağılımını koruyacak şekilde bölünecektir.
  • tohum (int, isteğe bağlı)
    • Bu parametre, varsayılan BitGenerator'ı başlatmak için bir tohum ayarlamanıza olanak tanır.
    • Hiçbiri olarak ayarlanırsa işletim sisteminden yeni, öngörülemeyen bir entropi çekilecektir.
    • Bir tamsayı veya dizi benzeri tamsayılar iletilirse, bunlar ilk BitGenerator durumunu türetmek için kullanılacaktır.
  • jeneratör (numpy.random.Generator, isteğe bağlı)
    • Bu parametre, veri kümesi satırlarının permütasyonunu hesaplamak için bir NumPy rastgele oluşturucu belirlemenizi sağlar.
    • Hiçbiri (varsayılan) olarak ayarlanırsa, NumPy'nin varsayılan BitGenerator'ı (PCG64) olan np.random.default_rng'yi kullanır.
  • keep_in_memory (bool, varsayılan olarak False'tır)
    • Bu parametre, bölünmüş dizinlerin bir önbellek dosyasına yazmak yerine bellekte tutulup tutulmayacağını belirler.
    • True olarak ayarlanırsa, bölme indeksleri bölme işlemi sırasında hafızada saklanacaktır.
    • Yanlış olarak ayarlanırsa, bölünmüş dizinler daha sonra kullanılmak üzere bir önbellek dosyasına yazılacaktır.
  • load_from_cache_file (İsteğe bağlı[bool], önbelleğe alma etkinse varsayılan olarak True olur)
    • Bu parametre, bölünmüş dizinleri yeniden hesaplamak yerine yüklemek için bir önbellek dosyası kullanılıp kullanılmayacağını belirler.
    • True olarak ayarlandıysa ve bölünmüş indeksleri saklayan bir önbellek dosyası tanımlanabiliyorsa kullanılacaktır.
    • Yanlış olarak ayarlanırsa, bir önbellek dosyası mevcut olsa bile bölünmüş dizinler yeniden hesaplanacaktır.
    • Önbelleğe alma etkinse varsayılan değer True'dur.
  • train_cache_file_name (str, isteğe bağlı)
    • Bu parametre, tren bölünmüş endekslerini saklayan önbellek dosyası için belirli bir yol veya ad sağlamanıza olanak tanır.
    • Belirtildiği takdirde tren bölme endeksleri, otomatik olarak oluşturulan önbellek dosyası adı yerine bu önbellek dosyasında depolanacaktır.
  • test_cache_file_name (str, isteğe bağlı)
    • Bu parametre, test bölme dizinlerini saklayan önbellek dosyası için belirli bir yol veya ad sağlamanıza olanak tanır.
    • Belirtildiği takdirde test bölme indeksleri, otomatik olarak oluşturulan önbellek dosyası adı yerine bu önbellek dosyasında depolanır.
  • writer_batch_size (int, varsayılan olarak 1000'dir)
    • Bu parametre, önbellek dosyası yazıcısı için yazma işlemi başına satır sayısını belirler.
    • Bellek kullanımı ile işlem hızı arasındaki bir dengedir.
    • Daha yüksek değerler yazma işlemlerinin sayısını azaltır ancak işlem sırasında daha fazla bellek tüketir.
    • Daha düşük değerler daha az geçici bellek tüketir ancak işlem hızını biraz etkileyebilir.
  • train_new_fingerprint (str, isteğe bağlı, varsayılan olarak Hiçbiri'dir)
    • Bu parametre, bir dönüşüm uygulandıktan sonra tren setinin yeni parmak izini temsil eder.
    • Belirtildiği takdirde tren seti için yeni bir parmak izi sağlar.
    • Hiçbiri olarak ayarlanırsa yeni parmak izi, önceki parmak izinin karması ve dönüşüm bağımsız değişkenleri kullanılarak hesaplanır.
  • test_new_fingerprint (str, isteğe bağlı, varsayılan olarak Hiçbiri'dir)
    • Bu parametre, bir dönüşüm uygulandıktan sonra test setinin yeni parmak izini temsil eder.
    • Belirtildiği takdirde test seti için yeni bir parmak izi sağlar.
    • Hiçbiri olarak ayarlanırsa yeni parmak izi, önceki parmak izinin karması ve dönüşüm bağımsız değişkenleri kullanılarak hesaplanır.

    Sözdizimi:

    sklearn.model_selection'dan train_test_split'i içe aktar

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

    X : Bu, veri kümenizin giriş özelliklerini veya bağımsız değişkenlerini temsil eder.



    • Ve : Bu, tahmin etmeye çalıştığınız çıktıyı veya bağımlı değişkeni temsil eder.
    • test_size : Bu parametre test için ayrılacak veri setinin oranını belirler. Bir kayan nokta (örneğin, %20 için 0,2) veya bir tam sayı (örneğin, 200 örnek için 200) olarak belirtilebilir.
    • rastgele_durum : Bu, rastgele sayı üreteci için bir tohum ayarlamanıza olanak tanıyan isteğe bağlı bir parametredir. Bölmenin tekrarlanabilir olmasını sağlar; bu, aynı rastgele durum değerini kullanırsanız aynı bölmeyi elde edeceğiniz anlamına gelir.

    train_test_split işlevi dört veri kümesi döndürür:





    • X_train : Giriş özelliklerinin eğitim seti.
    • X_testi : Giriş özelliklerinin test seti.
    • y_tren : Çıkış etiketlerinin eğitim seti.
    • y_test : Çıkış etiketlerinin test seti.

    Örnek : Aşağıdaki örnek program “” olarak kaydedilmiştir. test.py ”.

    sklearn.model_selection'dan train_test_split'i içe aktar

    veri kümelerinden load_dataset'i içe aktar

    # Adım 1: Veri kümesini yükleyin

    veri kümesi = load_dataset('imdb')

    X = veri kümesi['eğitim']['metin']

    y = veri kümesi['eğitim']['etiket']

    # Adım 2: Veri kümesini bölün

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0,2,

    shuffle=Doğru, random_state=42)

    # 3. Adım: Veri kümesini keşfedin

    print('Orijinal veri kümesindeki örnek sayısı:', len(X))

    print('Tren veri kümesindeki örnek sayısı:', len(X_train))

    print('Test veri kümesindeki örnek sayısı:', len(X_test))

    # Adım 4: Örnek verilere erişin ve yazdırın

    print('\nTren veri kümesinden örnek:')

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

    print('\nTest veri kümesinden örnek:')

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

    Bu içe aktarma ifadesi Hugging Face veri kümeleri kitaplığından değil, scikit-learn'den alınmıştır. Lütfen ortamınızda scikit-learn'ın kurulu olduğundan emin olun. Aşağıdaki komutu kullanarak yükleyebilirsiniz:



    pip kurulumu scikit-learn

    Açıklama: Öncelikle gerekli modülü içe aktarıyoruz: train_test_split scikit-learn'den.

    • IMDb veri kümesini load_dataset('imdb') kullanarak yüklüyoruz ve onu veri kümesi değişkenine atadık.
    • train_test_split'i kullanmak için giriş özelliklerini (X) ve karşılık gelen etiketleri (y) ayırmamız gerekir. Bu durumda, veri kümesinin, giriş özellikleri olarak 'metin' ve karşılık gelen etiketler olarak 'etiket' ile 'eğitim' adında bir bölmeye sahip olduğunu varsayıyoruz. Veri kümenizin yapısına göre anahtarları ayarlamanız gerekebilir.
    • Daha sonra giriş özelliklerini (X) ve etiketleri (y) diğer parametrelerle birlikte train_test_split'e iletiriz. Bu örnekte test_size değerini 0,2 olarak ayarladık; bu, verinin %20'sinin test için ayrılacağı anlamına gelir. Karıştırma parametresi, bölmeden önce verileri rastgele karıştırmak için 'True' olarak ayarlanır ve random_state parametresi tekrar üretilebilirlik için 42'ye ayarlanır.
    • train_test_split işlevi dört veri kümesi döndürür: X_train, X_test, y_train ve y_test. Bunlar sırasıyla giriş özelliklerinin ve etiketlerin eğitim ve test alt kümelerini temsil eder.
    • Orijinal veri kümesindeki (len(X)), eğitim veri kümesindeki (len(X_train)) ve test veri kümesindeki (len(X_test)) örnek sayısını yazdırıyoruz. Bu, bölme işlemini doğrulamamıza ve alt kümelerin doğru şekilde oluşturulduğundan emin olmamıza olanak tanır.
    • Son olarak, eğitim veri kümesinden (X_train[0], y_train[0]) bir örneğe ve test veri kümesinden (X_test[0], y_test[0]) bir örneğe erişip yazdırıyoruz.

    Çıktı : Daha önce kaydettiğimiz programı Python “test.py” kullanarak çalıştırıyoruz.

    Çözüm

    Hugging Face'in veri kümesi kitaplığı tarafından sağlanan tren-test bölme işlevi, scikit-learn'ün train_test_split işleviyle birlikte, bir veri kümesini ayrı eğitim ve test alt kümelerine bölmenin kullanışlı ve etkili bir yolunu sunar.

    train_test_split işlevini kullanarak test kümesinin boyutunu, verilerin karıştırılıp karıştırılmayacağını kontrol edebilir ve tekrarlanabilirlik için rastgele bir tohum ayarlayabilirsiniz. Bu esneklik, makine öğrenimi modellerinin görünmeyen veriler üzerinde etkili bir şekilde değerlendirilmesine olanak tanır ve aşırı uyum veya yetersiz uyum gibi sorunların tespit edilmesine yardımcı olur.

    train_test_split işlevinin parametreleri, test kümesinin boyutu (test_size), verilerin karıştırılması (karıştırılması) ve belirli sütunlara dayalı olarak katmanlı bir bölme (stratify_by_column) gerçekleştirilmesi gibi bölmenin çeşitli yönlerini kontrol etmenize olanak tanır. Ek olarak, tekrarlanabilirlik için bir çekirdek değeri (seed) belirtebilir ve bölünmüş indeksleri (train_cache_file_name ve test_cache_file_name) depolamak için önbellek dosyası adlarını özelleştirebilirsiniz.

    Hugging Face'in sunduğu işlevsellik, verilerinizi model eğitimi ve değerlendirmesi için hazırlamayı kolaylaştırır. Ayrı eğitim ve test alt kümelerine sahip olarak modelinizin performansını görünmeyen veriler üzerinde doğru bir şekilde değerlendirebilir, aşırı uyum gibi olası sorunları tespit edebilir ve model iyileştirmeleri için bilinçli kararlar verebilirsiniz.

    Genel olarak, Hugging Face'in veri kümesi kütüphanesindeki tren-test bölme işlevi, scikit-learn'in train_test_split özelliğiyle birlikte verimli veri bölme, model değerlendirme ve sağlam makine öğrenimi çözümlerinin geliştirilmesi için güçlü bir araç seti sağlar.