ของนัมปี้และแพนด้า

วันนี้ฉันบอกชั้นเรียนว่า 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 ตามลำดับ ไม่มีอะไรผิดปกติกับการแข่งขันเล็กน้อย ยิ่งมากยิ่งเริงร่า