ไลบรารี 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:
- test_size (numpy.random.Generator ไม่จำเป็น) : ขนาดของการแยกการทดสอบถูกกำหนดโดยตัวเลือกนี้ ประเภทอาจเป็นจำนวนทศนิยมหรือจำนวนเต็มก็ได้
- หากกำหนดเป็นแบบทศนิยม ก็ควรสะท้อนเปอร์เซ็นต์ของชุดข้อมูลที่จะรวมไว้ในการแยกการทดสอบและอยู่ระหว่าง 0.0 ถึง 1.0
- จำนวนตัวอย่างทดสอบที่แน่นอนจะแสดงด้วยค่าหากระบุเป็นจำนวนเต็ม
- หากตั้งค่าเป็นไม่มี ระบบจะใช้ส่วนเสริมของขนาดรถไฟเป็นค่า
- หาก train_size เป็น None จะถูกตั้งค่าเป็น 0.25 (25% ของชุดข้อมูล)
- หากกำหนดเป็นแบบทศนิยม ก็ควรสะท้อนถึงเปอร์เซ็นต์ของชุดข้อมูลที่จะรวมไว้ในการแยกขบวนและอยู่ระหว่าง 0.0 ถึง 1.0
- จำนวนตัวอย่างรถไฟที่แน่นอนจะแสดงด้วยค่าหากระบุเป็นจำนวนเต็ม
- หากตั้งค่าเป็นไม่มี ค่าจะเปลี่ยนเป็นส่วนเสริมของขนาดการทดสอบโดยอัตโนมัติ
- พารามิเตอร์นี้กำหนดว่าจะสับเปลี่ยนข้อมูลก่อนแยกหรือไม่
- หากตั้งค่าเป็น True ข้อมูลจะถูกสุ่มสับก่อนการแยก
- หากตั้งค่าเป็น False ข้อมูลจะถูกแบ่งโดยไม่ต้องสับเปลี่ยน
- พารามิเตอร์นี้ใช้สำหรับการแยกข้อมูลแบบแบ่งชั้นตามคอลัมน์เฉพาะ
- หากมีการระบุ ควรเป็นชื่อคอลัมน์ของป้ายกำกับหรือคลาส
- ข้อมูลจะถูกแบ่งในลักษณะที่รักษาการกระจายฉลากหรือคลาสเดียวกันในการแบ่งขบวนรถไฟและการทดสอบ
- พารามิเตอร์นี้อนุญาตให้คุณตั้งค่าเริ่มต้นเพื่อเริ่มต้น BitGenerator เริ่มต้น
- หากตั้งค่าเป็นไม่มี เอนโทรปีใหม่ที่คาดเดาไม่ได้จะถูกดึงออกจากระบบปฏิบัติการ
- หากส่งจำนวนเต็มหรือจำนวนเต็มคล้ายอาร์เรย์ จะถูกนำมาใช้เพื่อรับสถานะ BitGenerator เริ่มต้น
- พารามิเตอร์นี้ช่วยให้คุณระบุตัวสร้างสุ่ม NumPy เพื่อคำนวณการเรียงสับเปลี่ยนของแถวชุดข้อมูล
- หากตั้งค่าเป็นไม่มี (ค่าเริ่มต้น) จะใช้ np.random.default_rng ซึ่งเป็น BitGenerator เริ่มต้น (PCG64) ของ NumPy
- พารามิเตอร์นี้กำหนดว่าจะเก็บดัชนีการแยกไว้ในหน่วยความจำ แทนที่จะเขียนลงในไฟล์แคชหรือไม่
- หากตั้งค่าเป็น True ดัชนีการแยกจะถูกจัดเก็บไว้ในหน่วยความจำในระหว่างกระบวนการแยก
- หากตั้งค่าเป็น False ดัชนีการแยกจะถูกเขียนลงในไฟล์แคชเพื่อใช้ในภายหลัง
- พารามิเตอร์นี้กำหนดว่าจะใช้ไฟล์แคชเพื่อโหลดดัชนีแยกแทนที่จะคำนวณใหม่หรือไม่
- หากตั้งค่าเป็น True และสามารถระบุไฟล์แคชที่เก็บดัชนีแยกได้ ก็จะถูกนำมาใช้
- หากตั้งค่าเป็น False ดัชนีการแยกจะถูกคำนวณใหม่แม้ว่าจะมีไฟล์แคชอยู่ก็ตาม
- ค่าเริ่มต้นคือ True หากเปิดใช้งานแคช
- พารามิเตอร์นี้ช่วยให้คุณสามารถระบุเส้นทางหรือชื่อเฉพาะสำหรับไฟล์แคชที่เก็บดัชนีการแบ่งรถไฟ
- หากมีการระบุ ดัชนีการแยกรถไฟจะถูกจัดเก็บไว้ในไฟล์แคชนี้ แทนที่จะเป็นชื่อไฟล์แคชที่สร้างขึ้นโดยอัตโนมัติ
- พารามิเตอร์นี้อนุญาตให้คุณระบุพาธหรือชื่อเฉพาะสำหรับไฟล์แคชที่เก็บดัชนีการแยกการทดสอบ
- หากมีการระบุ ดัชนีการแยกการทดสอบจะถูกจัดเก็บไว้ในไฟล์แคชนี้แทนชื่อไฟล์แคชที่สร้างขึ้นโดยอัตโนมัติ
- พารามิเตอร์นี้กำหนดจำนวนแถวต่อการดำเนินการเขียนสำหรับผู้เขียนไฟล์แคช
- เป็นการแลกเปลี่ยนระหว่างการใช้หน่วยความจำและความเร็วในการประมวลผล
- ค่าที่สูงกว่าจะลดจำนวนการดำเนินการเขียน แต่จะใช้หน่วยความจำมากขึ้นในระหว่างการประมวลผล
- ค่าที่ต่ำกว่าจะใช้หน่วยความจำชั่วคราวน้อยลง แต่อาจส่งผลต่อความเร็วในการประมวลผลเล็กน้อย
- พารามิเตอร์นี้แสดงถึงลายนิ้วมือใหม่ของชุดรถไฟหลังจากใช้การแปลง
- หากมีการระบุก็จะจัดให้มีลายนิ้วมือใหม่สำหรับชุดรถไฟ
- หากตั้งค่าเป็นไม่มี ลายนิ้วมือใหม่จะถูกคำนวณโดยใช้แฮชของลายนิ้วมือก่อนหน้าและอาร์กิวเมนต์การแปลง
- พารามิเตอร์นี้แสดงถึงลายนิ้วมือใหม่ของชุดทดสอบหลังจากใช้การแปลง
- หากระบุไว้ก็จะจัดเตรียมลายนิ้วมือใหม่สำหรับชุดทดสอบ
- หากตั้งค่าเป็นไม่มี ลายนิ้วมือใหม่จะถูกคำนวณโดยใช้แฮชของลายนิ้วมือก่อนหน้าและอาร์กิวเมนต์การแปลง
ไวยากรณ์:
จาก sklearn.model_selection นำเข้า train_test_splitX_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 มอบชุดเครื่องมือที่มีประสิทธิภาพสำหรับการแยกข้อมูลที่มีประสิทธิภาพ การประเมินแบบจำลอง และการพัฒนาโซลูชันการเรียนรู้ของเครื่องที่มีประสิทธิภาพ