ชุดข้อมูล Hugging Face Train และ Split

Chud Khxmul Hugging Face Train Laea Split



ไลบรารี Hugging Face ไม่มีฟังก์ชันเฉพาะชื่อ train_test_split อย่างไรก็ตาม เมื่อพูดถึงการแยกข้อมูลสำหรับการฝึกอบรมและการทดสอบในงาน Machine Learning ฟังก์ชัน train_test_split มักใช้ในไลบรารียอดนิยมอื่นๆ เช่น scikit-learn ที่นี่ เราจะอธิบายพารามิเตอร์ที่โดยทั่วไปใช้ในฟังก์ชัน train_test_split จาก scikit-learn

เมธอด train_test_split ในไลบรารีชุดข้อมูลของ Hugging Face ใช้เพื่อแบ่งชุดข้อมูลออกเป็นสองชุดย่อย ได้แก่ ชุดย่อยการฝึกและชุดย่อยการทดสอบ โดยทั่วไปวิธีนี้จะใช้ในการเรียนรู้ของเครื่องเพื่อประเมินประสิทธิภาพของแบบจำลองกับข้อมูลที่มองไม่เห็น ชุดย่อยการฝึกใช้เพื่อฝึกโมเดล ในขณะที่ชุดย่อยการทดสอบใช้เพื่อประเมินประสิทธิภาพและความสามารถในการวางนัยทั่วไป







ต่อไปนี้เป็นภาพรวมของวิธี train_test_split ใน Hugging Face:



  1. test_size (numpy.random.Generator ไม่จำเป็น) : ขนาดของการแยกการทดสอบถูกกำหนดโดยตัวเลือกนี้ ประเภทอาจเป็นจำนวนทศนิยมหรือจำนวนเต็มก็ได้
  • หากกำหนดเป็นแบบทศนิยม ก็ควรสะท้อนเปอร์เซ็นต์ของชุดข้อมูลที่จะรวมไว้ในการแยกการทดสอบและอยู่ระหว่าง 0.0 ถึง 1.0
  • จำนวนตัวอย่างทดสอบที่แน่นอนจะแสดงด้วยค่าหากระบุเป็นจำนวนเต็ม
  • หากตั้งค่าเป็นไม่มี ระบบจะใช้ส่วนเสริมของขนาดรถไฟเป็นค่า
  • หาก train_size เป็น None จะถูกตั้งค่าเป็น 0.25 (25% ของชุดข้อมูล)
  • train_size (numpy.random.Generator ไม่จำเป็น): ขนาดการแยกขบวนถูกกำหนดโดยพารามิเตอร์นี้ เป็นไปตามหลักเกณฑ์เดียวกันกับ test_size
    • หากกำหนดเป็นแบบทศนิยม ก็ควรสะท้อนถึงเปอร์เซ็นต์ของชุดข้อมูลที่จะรวมไว้ในการแยกขบวนและอยู่ระหว่าง 0.0 ถึง 1.0
    • จำนวนตัวอย่างรถไฟที่แน่นอนจะแสดงด้วยค่าหากระบุเป็นจำนวนเต็ม
    • หากตั้งค่าเป็นไม่มี ค่าจะเปลี่ยนเป็นส่วนเสริมของขนาดการทดสอบโดยอัตโนมัติ
  • สับเปลี่ยน (บูล, ตัวเลือก, ค่าเริ่มต้นเป็น True)
    • พารามิเตอร์นี้กำหนดว่าจะสับเปลี่ยนข้อมูลก่อนแยกหรือไม่
    • หากตั้งค่าเป็น True ข้อมูลจะถูกสุ่มสับก่อนการแยก
    • หากตั้งค่าเป็น False ข้อมูลจะถูกแบ่งโดยไม่ต้องสับเปลี่ยน
  • stratify_by_column (str, ทางเลือก, ค่าเริ่มต้นเป็นไม่มี)
    • พารามิเตอร์นี้ใช้สำหรับการแยกข้อมูลแบบแบ่งชั้นตามคอลัมน์เฉพาะ
    • หากมีการระบุ ควรเป็นชื่อคอลัมน์ของป้ายกำกับหรือคลาส
    • ข้อมูลจะถูกแบ่งในลักษณะที่รักษาการกระจายฉลากหรือคลาสเดียวกันในการแบ่งขบวนรถไฟและการทดสอบ
  • เมล็ดพืช (int, ไม่จำเป็น)
    • พารามิเตอร์นี้อนุญาตให้คุณตั้งค่าเริ่มต้นเพื่อเริ่มต้น BitGenerator เริ่มต้น
    • หากตั้งค่าเป็นไม่มี เอนโทรปีใหม่ที่คาดเดาไม่ได้จะถูกดึงออกจากระบบปฏิบัติการ
    • หากส่งจำนวนเต็มหรือจำนวนเต็มคล้ายอาร์เรย์ จะถูกนำมาใช้เพื่อรับสถานะ BitGenerator เริ่มต้น
  • เครื่องกำเนิดไฟฟ้า (numpy.random.Generator, ตัวเลือก)
    • พารามิเตอร์นี้ช่วยให้คุณระบุตัวสร้างสุ่ม NumPy เพื่อคำนวณการเรียงสับเปลี่ยนของแถวชุดข้อมูล
    • หากตั้งค่าเป็นไม่มี (ค่าเริ่มต้น) จะใช้ np.random.default_rng ซึ่งเป็น BitGenerator เริ่มต้น (PCG64) ของ NumPy
  • keep_in_memory (บูล ค่าเริ่มต้นเป็นเท็จ)
    • พารามิเตอร์นี้กำหนดว่าจะเก็บดัชนีการแยกไว้ในหน่วยความจำ แทนที่จะเขียนลงในไฟล์แคชหรือไม่
    • หากตั้งค่าเป็น True ดัชนีการแยกจะถูกจัดเก็บไว้ในหน่วยความจำในระหว่างกระบวนการแยก
    • หากตั้งค่าเป็น False ดัชนีการแยกจะถูกเขียนลงในไฟล์แคชเพื่อใช้ในภายหลัง
  • load_from_cache_file (ตัวเลือก [bool] จะมีค่าเริ่มต้นเป็น True หากเปิดใช้งานแคช)
    • พารามิเตอร์นี้กำหนดว่าจะใช้ไฟล์แคชเพื่อโหลดดัชนีแยกแทนที่จะคำนวณใหม่หรือไม่
    • หากตั้งค่าเป็น True และสามารถระบุไฟล์แคชที่เก็บดัชนีแยกได้ ก็จะถูกนำมาใช้
    • หากตั้งค่าเป็น False ดัชนีการแยกจะถูกคำนวณใหม่แม้ว่าจะมีไฟล์แคชอยู่ก็ตาม
    • ค่าเริ่มต้นคือ True หากเปิดใช้งานแคช
  • train_cache_file_name (str, ตัวเลือก)
    • พารามิเตอร์นี้ช่วยให้คุณสามารถระบุเส้นทางหรือชื่อเฉพาะสำหรับไฟล์แคชที่เก็บดัชนีการแบ่งรถไฟ
    • หากมีการระบุ ดัชนีการแยกรถไฟจะถูกจัดเก็บไว้ในไฟล์แคชนี้ แทนที่จะเป็นชื่อไฟล์แคชที่สร้างขึ้นโดยอัตโนมัติ
  • test_cache_file_name (str, เป็นทางเลือก)
    • พารามิเตอร์นี้อนุญาตให้คุณระบุพาธหรือชื่อเฉพาะสำหรับไฟล์แคชที่เก็บดัชนีการแยกการทดสอบ
    • หากมีการระบุ ดัชนีการแยกการทดสอบจะถูกจัดเก็บไว้ในไฟล์แคชนี้แทนชื่อไฟล์แคชที่สร้างขึ้นโดยอัตโนมัติ
  • writer_batch_size (int ค่าเริ่มต้นคือ 1,000)
    • พารามิเตอร์นี้กำหนดจำนวนแถวต่อการดำเนินการเขียนสำหรับผู้เขียนไฟล์แคช
    • เป็นการแลกเปลี่ยนระหว่างการใช้หน่วยความจำและความเร็วในการประมวลผล
    • ค่าที่สูงกว่าจะลดจำนวนการดำเนินการเขียน แต่จะใช้หน่วยความจำมากขึ้นในระหว่างการประมวลผล
    • ค่าที่ต่ำกว่าจะใช้หน่วยความจำชั่วคราวน้อยลง แต่อาจส่งผลต่อความเร็วในการประมวลผลเล็กน้อย
  • train_new_fingerprint (str, ตัวเลือก, ค่าเริ่มต้นเป็นไม่มี)
    • พารามิเตอร์นี้แสดงถึงลายนิ้วมือใหม่ของชุดรถไฟหลังจากใช้การแปลง
    • หากมีการระบุก็จะจัดให้มีลายนิ้วมือใหม่สำหรับชุดรถไฟ
    • หากตั้งค่าเป็นไม่มี ลายนิ้วมือใหม่จะถูกคำนวณโดยใช้แฮชของลายนิ้วมือก่อนหน้าและอาร์กิวเมนต์การแปลง
  • test_new_fingerprint (str, ตัวเลือก, ค่าเริ่มต้นเป็นไม่มี)
    • พารามิเตอร์นี้แสดงถึงลายนิ้วมือใหม่ของชุดทดสอบหลังจากใช้การแปลง
    • หากระบุไว้ก็จะจัดเตรียมลายนิ้วมือใหม่สำหรับชุดทดสอบ
    • หากตั้งค่าเป็นไม่มี ลายนิ้วมือใหม่จะถูกคำนวณโดยใช้แฮชของลายนิ้วมือก่อนหน้าและอาร์กิวเมนต์การแปลง

    ไวยากรณ์:

    จาก sklearn.model_selection นำเข้า train_test_split

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, สุ่ม_state=42)

    เอ็กซ์ : นี่แสดงถึงคุณลักษณะอินพุตหรือตัวแปรอิสระของชุดข้อมูลของคุณ



    • และ : นี่แสดงถึงเอาต์พุตหรือตัวแปรตามที่คุณพยายามคาดเดา
    • ทดสอบ_ขนาด : พารามิเตอร์นี้กำหนดสัดส่วนของชุดข้อมูลที่จะจัดสรรสำหรับการทดสอบ สามารถระบุเป็นแบบทศนิยม (เช่น 0.2 สำหรับ 20%) หรือจำนวนเต็ม (เช่น 200 สำหรับ 200 ตัวอย่าง)
    • สุ่ม_สถานะ : นี่คือพารามิเตอร์ทางเลือกที่ให้คุณตั้งค่าเริ่มต้นสำหรับตัวสร้างตัวเลขสุ่ม ช่วยให้มั่นใจว่าการแยกสามารถทำซ้ำได้ ซึ่งหมายความว่าคุณจะได้รับการแยกแบบเดียวกันหากคุณใช้ค่าสถานะสุ่มเดียวกัน

    ฟังก์ชัน train_test_split ส่งคืนชุดข้อมูลสี่ชุด:





    • X_รถไฟ : ชุดการฝึกคุณสมบัติอินพุต
    • X_ทดสอบ : ชุดทดสอบคุณสมบัติอินพุต
    • y_train : ชุดฝึกฉลากเอาท์พุต
    • y_test : ชุดทดสอบฉลากเอาท์พุต

    ตัวอย่าง : โปรแกรมตัวอย่างต่อไปนี้จะถูกบันทึกเป็น “ test.py '.

    จาก sklearn.model_selection นำเข้า train_test_split

    จากชุดข้อมูลนำเข้า load_dataset

    # ขั้นตอนที่ 1: โหลดชุดข้อมูล

    ชุดข้อมูล = load_dataset('imdb')

    X = ชุดข้อมูล ['รถไฟ'] ['ข้อความ']

    y = ชุดข้อมูล ['รถไฟ'] ['ฉลาก']

    # ขั้นตอนที่ 2: แยกชุดข้อมูล

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

    สับเปลี่ยน = จริง, Random_state = 42)

    # ขั้นตอนที่ 3: สำรวจชุดข้อมูล

    print('จำนวนตัวอย่างในชุดข้อมูลต้นฉบับ:', len(X))

    print('จำนวนตัวอย่างในชุดข้อมูลรถไฟ:', len(X_train))

    print('จำนวนตัวอย่างในชุดข้อมูลทดสอบ:', len(X_test))

    # ขั้นตอนที่ 4: เข้าถึงและพิมพ์ข้อมูลตัวอย่าง

    print('\nตัวอย่างจากชุดข้อมูลรถไฟ:')

    พิมพ์ (X_train[0], y_train[0])

    print('\nตัวอย่างจากชุดข้อมูลทดสอบ:')

    พิมพ์ (X_test[0], y_test[0])

    คำสั่งนำเข้านี้มาจาก scikit-learn ไม่ใช่จากไลบรารีชุดข้อมูล Hugging Face โปรดตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง scikit-learn ในสภาพแวดล้อมของคุณแล้ว คุณสามารถติดตั้งได้โดยใช้คำสั่งต่อไปนี้:



    pip ติดตั้ง scikit-learn

    คำอธิบาย: ขั้นแรก เรานำเข้าโมดูลที่จำเป็น: train_test_split จาก scikit-learn

    • เราโหลดชุดข้อมูล IMDb โดยใช้ load_dataset('imdb') และกำหนดให้กับตัวแปรชุดข้อมูล
    • หากต้องการใช้ train_test_split เราจำเป็นต้องแยกคุณลักษณะอินพุต (X) และป้ายกำกับที่เกี่ยวข้อง (y) ในกรณีนี้ เราถือว่าชุดข้อมูลมีการแยกชื่อ 'train' โดยมี 'ข้อความ' เป็นคุณลักษณะอินพุต และ 'label' เป็นป้ายกำกับที่เกี่ยวข้อง คุณอาจต้องปรับคีย์ตามโครงสร้างของชุดข้อมูลของคุณ
    • จากนั้นเราจะส่งคุณลักษณะอินพุต (X) และป้ายกำกับ (y) ไปยัง train_test_split พร้อมกับพารามิเตอร์อื่นๆ ในตัวอย่างนี้ เราตั้งค่า test_size เป็น 0.2 ซึ่งหมายความว่า 20% ของข้อมูลจะถูกจัดสรรสำหรับการทดสอบ พารามิเตอร์ shuffle ถูกตั้งค่าเป็น 'True' เพื่อสุ่มสับเปลี่ยนข้อมูลก่อนที่จะแยก และพารามิเตอร์ Random_state ถูกตั้งค่าเป็น 42 เพื่อให้สามารถทำซ้ำได้
    • ฟังก์ชัน train_test_split ส่งคืนชุดข้อมูลสี่ชุด: X_train, X_test, y_train และ y_test สิ่งเหล่านี้แสดงถึงชุดย่อยการฝึกอบรมและการทดสอบของคุณสมบัติอินพุตและป้ายกำกับตามลำดับ
    • เราพิมพ์จำนวนตัวอย่างในชุดข้อมูลดั้งเดิม (len(X)) ชุดข้อมูลการฝึกอบรม (len(X_train)) และชุดข้อมูลการทดสอบ (len(X_test)) สิ่งนี้ช่วยให้เราสามารถตรวจสอบกระบวนการแยกและตรวจสอบให้แน่ใจว่าชุดย่อยถูกสร้างขึ้นอย่างถูกต้อง
    • สุดท้าย เราเข้าถึงและพิมพ์ตัวอย่างจากชุดข้อมูลการฝึกอบรม (X_train[0], y_train[0]) และตัวอย่างจากชุดข้อมูลทดสอบ (X_test[0], y_test[0])

    เอาท์พุต : เรารันโปรแกรมที่บันทึกไว้ก่อนหน้านี้โดยใช้ Python “test.py”

    บทสรุป

    ฟังก์ชันแยกการทดสอบรถไฟที่จัดทำโดยไลบรารีชุดข้อมูลของ Hugging Face ร่วมกับฟังก์ชัน train_test_split ของ scikit-learn มอบวิธีที่สะดวกและมีประสิทธิภาพในการแบ่งชุดข้อมูลออกเป็นชุดย่อยการฝึกอบรมและการทดสอบแยกกัน

    ด้วยการใช้ฟังก์ชัน train_test_split คุณสามารถควบคุมขนาดของชุดการทดสอบ ไม่ว่าจะสับเปลี่ยนข้อมูล และตั้งค่าการสุ่มเมล็ดเพื่อการทำซ้ำหรือไม่ ความยืดหยุ่นนี้ช่วยให้สามารถประเมินโมเดลการเรียนรู้ของเครื่องบนข้อมูลที่มองไม่เห็นได้อย่างมีประสิทธิภาพ และช่วยในการตรวจจับปัญหาต่างๆ เช่น การติดตั้งมากเกินไปหรือการติดตั้งน้อยเกินไป

    พารามิเตอร์ของฟังก์ชัน train_test_split ช่วยให้คุณสามารถควบคุมแง่มุมต่างๆ ของการแยก เช่น ขนาดของชุดทดสอบ (test_size) การสับเปลี่ยนข้อมูล (สับเปลี่ยน) และดำเนินการแยกแบบแบ่งชั้นตามคอลัมน์เฉพาะ (stratify_by_column) นอกจากนี้ คุณยังสามารถระบุค่าเริ่มต้น (เริ่มต้น) สำหรับการทำซ้ำ และปรับแต่งชื่อไฟล์แคชสำหรับจัดเก็บดัชนีการแยก (train_cache_file_name และ test_cache_file_name)

    ฟังก์ชันการทำงานที่ Hugging Face นำเสนอทำให้การเตรียมข้อมูลของคุณสำหรับการฝึกโมเดลและการประเมินผลทำได้ง่ายขึ้น การมีชุดย่อยการฝึกอบรมและการทดสอบแยกกัน ทำให้คุณสามารถประเมินประสิทธิภาพของโมเดลของคุณจากข้อมูลที่มองไม่เห็น ตรวจจับปัญหาที่อาจเกิดขึ้น เช่น การติดตั้งมากเกินไป และทำการตัดสินใจอย่างมีข้อมูลเพื่อปรับปรุงโมเดลได้

    โดยรวมแล้ว ฟังก์ชันการแยกการทดสอบรถไฟในไลบรารีชุดข้อมูลของ Hugging Face ร่วมกับ train_test_split ของ scikit-learn มอบชุดเครื่องมือที่มีประสิทธิภาพสำหรับการแยกข้อมูลที่มีประสิทธิภาพ การประเมินแบบจำลอง และการพัฒนาโซลูชันการเรียนรู้ของเครื่องที่มีประสิทธิภาพ