ของนัมปี้และแพนด้า
วันนี้ฉันบอกชั้นเรียนว่า Python เป็นของขวัญจากชุมชน C ซึ่งก็เป็นจริงในบางแง่ ลองนึกถึงประเภทรายการ: ต้องขอบคุณ C-slingers เช่น Tim Peters ที่ทำให้เราได้รับรางวัลระดับโลก สามารถจัดเรียง ป็อป ต่อท้าย และแทรกได้
แต่ซีเป็นช่างประกอบที่ได้รับการยกย่อง รวดเร็ว เพราะใกล้เคียงกับโลหะ ต้องมีวินัยที่เข้มงวด Python ให้ความสำคัญกับกรอบความคิดทางเทคนิค แต่ไม่ได้ต้องการการมุ่งเน้นไปที่สาระสำคัญของการลงทะเบียนชิปและการจัดสรรหน่วยความจำ
ปล่อยให้ทั้งหมดนั้นอยู่ที่รันไทม์เอ็นจิ้น
อย่างไรก็ตาม สิ่งที่ฉันอยากพูดถึงจริงๆ ก็คือ Numpy & Pandas
ทั้งสองมีประวัติ แต่มาตัดการไล่ล่ากันดีกว่า Numpy คือผืนผ้าใบ ซึ่งเป็นตารางของเซลล์ ซึ่งโดยปกติจะเป็นตัวเลข และ Pandas ก็จัดเตรียมกรอบรอบๆ ผืนผ้าใบนั้น เช่นเดียวกับใน "กรอบรูป" ใช่แล้ว ฉันกำลังเปรียบเทียบอยู่
Numpy เป็นเหมือนสี่เหลี่ยมผืนผ้าในสเปรดชีต หรือนั่นเป็นงานระดับดาวของมัน: ประเภท ndarray
Pandas ช่วยให้คุณระบุ ndarray ของคุณโดยใช้สตริง ป้ายอัจฉริยะ แทนลำดับตัวเลข การเขียนโค้ดด้วยป้ายกำกับเหมาะสมกว่ามาก เนื่องจากการแทรกคอลัมน์ใหม่จะชดเชยเพิ่มเติมทั้งหมด ป้ายกำกับไม่โดนกระแทก เชื่อมต่อผ้าใบ n มิติของคุณเข้ากับ Pandas DataFrame แล้วคุณจะมีบางอย่างที่แข็งแกร่งและพร้อมสำหรับการจัดการต่อไป
ทำไมเราถึงสนใจ?
สิ่งที่ฉันอธิบายคือ "ถาดคุกกี้" ที่เราป้อนเข้าเตาอบ ซึ่งอาจใช้สายพานลำเลียง อัลกอริธึมการเรียนรู้ของเครื่องกลืนกิน “ถาดคุกกี้” ของ Pandas โดยแยกพื้นที่ทำงานออก (ทำได้ง่ายๆ เหมือนกับปุ่มที่คุณกด)
ผืนผ้าใบซึ่งเป็นรูปสี่เหลี่ยมผืนผ้าแบ่งออกเป็น X (คำใบ้) และ y (คำตอบที่ถูกต้อง) โดยที่สิ่งที่เราไม่ทราบคือ F บางส่วน ฟังก์ชันบางอย่างทำให้ F(X.test) → การเดาที่ถูกต้องเกี่ยวกับ y
เช่นเดียวกับป้ายกำกับ y ของคุณอาจเป็นประเภทของสัตว์ เช่น เมาส์ ม้าลาย หอยทาก ปลา...
X ของคุณคือกลุ่มตัวอย่าง แถวเบาะแส
แน่นอนว่าเรานึกถึงรูปภาพทันที ซึ่งเป็นที่ที่เครือข่าย Convolutional เข้ามา แต่มาเริ่มกันด้วยสิ่งที่ล้นหลามน้อยกว่าล้านพิกเซลกันดีกว่า เราอาจมีเพียงห้าเบาะแสต่อตัวอย่างเพื่อใช้ในการเดา เมื่อได้รับตัวอย่างเพียงพอแล้ว ผู้คาดเดาของเราจะมีโอกาสได้รับผลดี
สิ่งที่ทำให้ผู้คนช้าลงมากใน ML ก็คือวัวศักดิ์สิทธิ์ที่ยืนยันว่าทุกมิติต้องมีแกน "ที่ 90 องศา" เหนือมิติอื่นๆ ทั้งหมด
หลักคำสอนเรื่องตั้งฉากร่วมกันทำงานได้ดีผ่านแกนที่สาม และจากนั้นจึงเปลี่ยนไปเป็นไฮเปอร์คิวบ์หรือเทสเซอร์แรกต์ด้วยแกนที่สี่ แต่ถาดคุกกี้ทั่วไปอาจมีความกว้างสามสิบคอลัมน์ แบบสำรวจ. สามสิบคำถาม เราควรนึกภาพแกนสามสิบแกนเป็นมุมฉากกันไหม? อาจจะต้องใช้เวลาสักระยะในการวาด
ข้อมูลม่านตาของเรา (ข้อเท็จจริงเชิงตัวเลขอย่างง่ายเกี่ยวกับดอกไม้บางชนิด มูลค่าสี่คอลัมน์) ควรบรรจุในไฮเปอร์คิวบ์อย่างไร
จิตใจจะสับสน
โชคดีที่แอนิเมชัน Youtube จำนวนมากเตือนเราว่ามิติข้อมูลที่ไม่ขึ้นอยู่กับกันและกัน ไม่จำเป็นต้องมีความตั้งฉากร่วมกันในการสร้างแบบจำลองทางจิต
แป้นหมุนรูปภาพบนแผงหน้าปัด โดยแต่ละอันสามารถหมุนได้อย่างอิสระโดยแยกจากกันทั้งหมด
ในโลกแห่งความเป็นจริง อาจไม่รับประกันความเป็นอิสระเชิงเส้นอย่างแท้จริง เนื่องจากเราไม่ได้มีหน้าที่รับผิดชอบพื้นที่ตัวอย่างเสมอไป การทดสอบต่างๆ บ่งชี้ว่า "มิติ" ใดที่อาจรวมกันเป็นชิ้นเดียวกัน
การสูญเสียคอลัมน์ เนื่องจากทุกสิ่งที่เราต้องการอยู่ในคอลัมน์ที่เหลือ ไม่ใช่เรื่องโศกนาฏกรรม ความซ้ำซ้อนน้อยลงก็ยิ่งดี
อย่างไรก็ตาม ด้วยความเป็นอิสระอย่างแท้จริง หมายความว่าค่าของทุกคอลัมน์มีอิสระที่จะกระดิกในลักษณะที่สำคัญ โดยไม่เชื่อมโยงกับคอลัมน์อื่นๆ เราจึงพร้อมที่จะปรับข้อมูลของเราให้พอดีกับแม่พิมพ์
อัลกอริธึมการเรียนรู้ของเครื่องสร้างการแคสต์ พวกเขาปรับแต่งสายไวโอลิน พวกเขาปรับรูปร่างตัวเองใหม่เพื่อให้เชี่ยวชาญในการทำนายป้ายกำกับ y ที่ถูกต้องจากแต่ละแถวถัดไปใน X (พื้นที่ตัวอย่าง)
คุณบอกฉันความยาวหาง ขนาดคอ จำนวนขา แล้วฉัน (นางแบบ) จะบอกคุณว่าเป็นกอริลลาหรือไม่
หรือบางทีฉันอาจจะจำอัญมณีได้
นึกถึงสิ่งใดก็ตามที่คุณอาจต้องการจัดหมวดหมู่ (จำแนก จัดเรียง ติดป้ายกำกับ): การเรียนรู้แบบมีผู้สอนคือการทำงานนั้นให้กับคุณ การฝึกอบรมอาจต้องใช้เวลา
หากต้องการตรวจสอบ:
คุณจะต้องให้ Numpy และ Pandas ช่วยคุณขัดขวางและจัดรูปแบบข้อมูล
การเพิ่มเฟรมลงบนผืนผ้าใบจะช่วยในการประมวลผลเบื้องต้น ซึ่งอาจเกี่ยวข้องกับการเพิ่มและการลบคอลัมน์ การกรองแถวออก การปรับรูให้เรียบ
วิทยาการข้อมูลส่วนใหญ่เกี่ยวกับการเปลี่ยนข้อมูลดิบให้กลายเป็นสิ่งที่ละเอียดยิ่งขึ้นแต่ยังคงความซื่อสัตย์ต่อข้อมูลต้นฉบับ การทำให้เป็นมาตรฐานและการเข้ารหัสแบบร้อนแรงเป็นชื่อของเทคนิคการขัดเกลาที่ Pandas สามารถช่วยคุณได้
เมื่อเตรียมข้อมูลของคุณแล้ว ให้วางถาดคุกกี้หลายมิติเหล่านั้นบนสายพานลำเลียง และปล่อยให้ข้อมูลอบรูปร่างของแม่พิมพ์บางรุ่น
ไฮเปอร์พารามิเตอร์จำเป็นต้องมีการปรับแต่งอย่างละเอียด คุณได้เลือกรุ่นที่จะใช้ แต่ตอนนี้มาถึงส่วนที่สนุก โดยที่โมเดลจะได้รับการฝึกให้พอดีกับข้อมูล (แต่ไม่พอดีเกินไป)
คำติชมจะเกิดขึ้นเมื่อมีข้อมูลเข้ามา
นี่คือโครงข่ายประสาทเทียมของเพอร์เซปตรอนใช่ไหม เครื่อง Support Vector? ต้นไม้แห่งการตัดสินใจ? ป่าสุ่มเหรอ?
ทิ้งไอเดียการมีเตาอบเพียงอันเดียวไปได้เลย
คุณมีอิสระที่จะอบคุกกี้ด้วยเครื่องมือสร้างโมเดลที่หลากหลาย ซึ่งบางเครื่องมือก็เข้าใจได้ง่ายจริงๆ
K-เพื่อนบ้านที่ใกล้ที่สุด เป็นต้น เคเอ็นเอ็น. นั่นไม่ใช่เรื่องยากที่จะคิด คนอื่นบางคนทำให้ฉันปวดหัว บางที "Siraj" อาจจะอธิบายได้
เหตุใดเราจึงคิดในแง่ของมุมตั้งฉากร่วมกันจึงเกี่ยวข้องกับทฤษฎีบทพีทาโกรัสและสิ่งที่เรียกว่าสูตรระยะทาง KNN มักใช้สิ่งนั้น
ผลต่างในแต่ละมิติ เช่น A.x ลบ B.x และ A.y miny B.y จะถูกยกกำลัง 2 ซึ่งกำจัดจำนวนลบออก
จากนั้นพลังบวกตัวที่ 2 ทั้งหมดนี้มารวมกัน แล้วจึงหารากที่ 2
ในปริภูมิแบบยุคลิด XYZ ทุกวัน ความหมายทางเรขาคณิตมีความชัดเจน เราเรียกผลลัพธ์ของอัลกอริธึมนี้ว่าการวัด "ระยะทาง" ระหว่างตำแหน่งสองตำแหน่งใดๆ ในสิ่งที่เรียกว่าปริภูมิเฟส N มิติ หรือปริภูมิแบบยุคลิด N แบบขยาย N สำหรับคนเนิร์ด แค่ล้อเล่น
เมื่อ K Nearest Neighbors (KNN) ซึ่งเป็นวิธีการเรียนรู้ของเครื่องได้รับจุดข้อมูลใหม่ ระบบจะคำนวณระยะห่างจากฉลากที่รู้จักในปริมาณ K ที่รู้จัก และให้พวกเขาลงคะแนนว่าใครเป็นเจ้าของฉลากนั้น สองในสามบอกว่าคุณเป็นพรรครีพับลิกันเมื่อพิจารณาจากระยะทาง ดังนั้นนั่นคือสิ่งที่เราจะเดาได้ การเล่นซอกับ K อาจเปลี่ยนความแม่นยำ
ในพีชคณิตเชิงเส้น เราสามารถแบ่งบางสิ่งในมิติ N โดยมีมิติที่ต่ำกว่า หรือเรียกมันว่า "ไฮเปอร์เพลน" ขอย้ำอีกครั้งว่าอย่าสิ้นหวังถ้าคุณไม่คิดถึงไฮเปอร์คิวบ์ในทันที
การคิดเชิงเปรียบเทียบคือการคิดหลายมิติในอีกความหมายหนึ่ง ลองนึกถึงกำแพงที่กั้นห้องไว้เป็นห้องเว้า
รุ่นเครื่องจักรจะระบุวิธีกำหนดเส้นทางคุณไปยังตำแหน่งที่ถูกต้องโดยพิจารณาจากคุณสมบัติของคุณ มันทำได้ดีที่สุด มันอาจทำให้ผิดพลาดได้
ถูกต้อง: โมเดลการเรียนรู้ของเครื่องได้รับการอภัยล่วงหน้าหากทำผิดพลาดในบางครั้ง พวกเขาอาจถูกหลอกได้
ในโลกแห่งความเป็นจริง ตัวอย่างต่างๆ อาจไม่เคยแยกออกจากกันโดยสิ้นเชิง
แม้แต่มนุษย์ก็ยังทำผิดพลาดได้ และพวกเขาก็มีเวลาล่วงหน้าเป็นล้านปี ซึ่งฟังดูเหมือนมากจนกว่าคุณจะเข้าใจได้ว่า CPU และ GPU ชดเชยเวลาที่เสียไปได้เร็วแค่ไหน
จำไว้ว่า C ที่ได้รับการยกย่องนั้นไม่ได้ช้า
นักวิทยาศาสตร์ข้อมูลแห่กันไปที่ Python, Numpy และ Pandas, ไปจนถึงระบบนิเวศของ Machine Learning เพราะพวกเขาไม่จำเป็นต้องเรียนรู้ภาษาของระบบระดับล่างในกระบวนการนี้
แล้วทำไมไม่ใช้ Ruby หรือ Agile อื่นๆล่ะ? ตอนกลางคืนยังเด็กอยู่ คาดว่าจะมีโรงงานคุกกี้เพิ่มอีกหลายแห่ง
เมื่อมันเกิดขึ้น Python อยู่ในตำแหน่งที่ถูกต้องในเวลาที่เหมาะสม โดยที่ทั้ง Google และ Facebook นำมาใช้สำหรับ TensorFlow และ Pytorch ตามลำดับ ไม่มีอะไรผิดปกติกับการแข่งขันเล็กน้อย ยิ่งมากยิ่งเริงร่า