โครงสร้างไดเรกทอรีโครงการปัญญาประดิษฐ์ระดับมืออาชีพ
โครงสร้าง data/, notebooks/, src/, models/, tests/ และรูปแบบ cookiecutter-data-science
โครงสร้างไดเรกทอรีโครงการปัญญาประดิษฐ์ระดับมืออาชีพ เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดโครงสร้างจึงสำคัญ
กองสมุดบันทึกที่ชื่อ final.ipynb final2.ipynb และ really_final.ipynb คือสาเหตุที่ทำให้โครงการปัญญาประดิษฐ์ล้มเหลว โครงสร้างไดเรกทอรีที่สอดคล้องกันทำให้โครงการอ่านเข้าใจง่าย ทำซ้ำได้ และเอื้อต่อการทำงานร่วมกัน
บทเรียนนี้ครอบคลุมโครงสร้างแบบคุกกีคัตเตอร์ดาตาไซเอนซ์ที่ใช้กันอย่างแพร่หลาย
โฟลเดอร์ข้อมูล
แยกข้อมูลตามขั้นตอนการประมวลผล เพื่อไม่ให้ข้อมูลป้อนเข้าดิบถูกเขียนทับ:
data/raw/— ข้อมูลต้นฉบับที่ไม่เปลี่ยนแปลงdata/processed/— ข้อมูลที่ทำความสะอาดแล้วและพร้อมสำหรับแบบจำลองdata/interim/— การแปลงข้อมูลระหว่างขั้นตอน
ถือว่า data/raw เป็นข้อมูลแบบอ่านอย่างเดียว คุณควรสร้างข้อมูลอื่นทั้งหมดขึ้นใหม่จากข้อมูลนี้ได้เสมอ
เหตุใดข้อมูลดิบจึงไม่เปลี่ยนแปลง
หากข้อผิดพลาดในการทำความสะอาดทำลายสำเนาข้อมูลเพียงชุดเดียวของคุณ โครงการก็จบสิ้น การเก็บ data/raw ไว้โดยไม่แตะต้องหมายความว่าไฟล์ที่ประมวลผลทุกไฟล์สามารถสร้างซ้ำได้ด้วยการเรียกใช้กระบวนการทำงานของคุณอีกครั้ง
ผลลัพธ์ที่ประมวลผลแล้วเป็นสิ่งที่ทิ้งได้ แต่ข้อมูลดิบต้องรักษาไว้
โฟลเดอร์สมุดบันทึก
notebooks/ ใช้เก็บสมุดบันทึกสำหรับการสำรวจและการจัดทำรายงาน แนวทางที่ใช้กันทั่วไปคือกำหนดหมายเลขตามขั้นตอนและเติมอักษรย่อของผู้จัดทำ เช่น 1.0-mk-eda.ipynb
สมุดบันทึกมีไว้สำหรับการสำรวจ ส่วนตรรกะที่นำกลับมาใช้ได้ควรย้ายไปอยู่ใน src/
แพ็กเกจซอร์สโค้ด
src/ ประกอบด้วยโค้ดไพธอนที่นำเข้าได้ โดยแบ่งตามความรับผิดชอบ:
src/data/— สคริปต์สำหรับโหลดและประมวลผลข้อมูลsrc/features/— การสร้างคุณลักษณะsrc/models/— โค้ดสำหรับฝึกและทำนายsrc/visualization/— แผนภาพและรายงาน
src/features และ src/models
การแยกการสร้างคุณลักษณะและการสร้างแบบจำลองออกเป็นโมดูลต่างหากให้ประโยชน์หลายด้าน คุณสามารถทดสอบโค้ดคุณลักษณะแต่ละหน่วย นำไปใช้ซ้ำในสมุดบันทึกหลายเล่ม และเปลี่ยนแบบจำลองได้โดยไม่ต้องเขียนการเตรียมข้อมูลใหม่
from src.features.build_features import make_features
from src.models.train import train_model
X = make_features(df)
model = train_model(X, y)โฟลเดอร์แบบจำลอง
models/ ใช้จัดเก็บไฟล์ผลลัพธ์ของแบบจำลองที่ฝึกแล้วซึ่งจัดเก็บในรูปอนุกรม (เช่น model.pkl และ model.joblib) ไฟล์เหล่านี้เป็นผลลัพธ์ ไม่ใช่ซอร์สโค้ด
โดยทั่วไปไม่ควรนำไฟล์แบบจำลองขนาดใหญ่ใส่ไว้ในกิต แต่ควรติดตามด้วย DVC หรือพื้นที่จัดเก็บวัตถุแทน (จะกล่าวถึงในบทเรียนถัดไป)
โฟลเดอร์รายงาน
reports/ ใช้เก็บผลลัพธ์ที่สร้างขึ้นสำหรับผู้ใช้ ได้แก่ reports/figures/ สำหรับแผนภาพและเอกสารรายงานระดับราก สิ่งเหล่านี้สร้างโดยโค้ดของคุณ จึงสามารถสร้างขึ้นใหม่ได้
ไฟล์กำหนดค่าและสภาพแวดล้อม
เติมโครงการให้สมบูรณ์ด้วยไฟล์ระดับโครงการดังนี้:
requirements.txtหรือenvironment.yml— แพ็กเกจที่ต้องใช้config.yaml— ไฮเปอร์พารามิเตอร์และเส้นทางREADME.md— โครงการนี้คืออะไรและวิธีเรียกใช้.gitignore— สิ่งที่กิตควรข้าม
โครงสร้างทั้งหมด
เมื่อนำทุกส่วนมารวมกัน โครงการปัญญาประดิษฐ์ที่เป็นระเบียบจะมีลักษณะดังนี้:
project/
data/
raw/
interim/
processed/
notebooks/
src/
data/
features/
models/
visualization/
models/
reports/
figures/
config.yaml
requirements.txt
README.mdการสร้างโครงสร้างด้วยคุกกีคัตเตอร์
คุณไม่จำเป็นต้องสร้างโครงสร้างนี้ด้วยตนเองทุกครั้ง แม่แบบคุกกีคัตเตอร์ดาตาไซเอนซ์จะสร้างโครงสร้างทั้งหมดให้ด้วยคำสั่งเดียว
# pip install cookiecutter
# cookiecutter -c v1 https://github.com/drivendata/cookiecutter-data-science
# Answer a few prompts -> full project tree createdตรวจสอบอย่างรวดเร็ว: ข้อมูลดิบอยู่ที่ใด
คุณดาวน์โหลด CSV ต้นฉบับจากผู้ให้บริการข้อมูล
สรุปทบทวน: โครงสร้างโครงการ
คุณได้เรียนรู้โครงสร้างโครงการปัญญาประดิษฐ์แบบมืออาชีพดังนี้:
data/raw(ไม่เปลี่ยนแปลง) และdata/processedสำหรับขั้นตอนต่าง ๆnotebooks/สำหรับการสำรวจ ส่วนsrc/featuresและsrc/modelsใช้เก็บโค้ดที่นำกลับมาใช้ได้models/สำหรับไฟล์ผลลัพธ์ และreports/สำหรับผลลัพธ์- ไฟล์กำหนดค่า รายการสิ่งที่ต้องใช้ README และไฟล์ละเว้นของกิตอยู่ที่ระดับราก
- คุกกีคัตเตอร์ดาตาไซเอนซ์ใช้สร้างโครงสร้างได้ทันที
ต่อไป: การใช้กิตอย่างมีประสิทธิภาพในโครงการปัญญาประดิษฐ์
คำถามที่พบบ่อย
บทเรียน “โครงสร้างไดเรกทอรีโครงการปัญญาประดิษฐ์ระดับมืออาชีพ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “โครงสร้างไดเรกทอรีโครงการปัญญาประดิษฐ์ระดับมืออาชีพ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “โครงสร้างไดเรกทอรีโครงการปัญญาประดิษฐ์ระดับมืออาชีพ”
โครงสร้าง data/, notebooks/, src/, models/, tests/ และรูปแบบ cookiecutter-data-science คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “โครงสร้างไดเรกทอรีโครงการปัญญาประดิษฐ์ระดับมืออาชีพ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม
ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- โครงสร้างไดเรกทอรีโครงการปัญญาประดิษฐ์ระดับมืออาชีพ
- Git สำหรับโครงการปัญญาประดิษฐ์
- การทำซ้ำผลลัพธ์ได้: ค่าเริ่มต้น การตั้งค่า และสภาพแวดล้อม
- แนวทางปฏิบัติที่ดีสำหรับ Jupyter Notebooks