Data Science เพื่องานวิจัย (Python)

ประสบการณ์จากการเข้าอบรมหลักสูตร Data Science เพื่องานวิจัย
วันที่ 28 – 30 พฤษภาคม 2562 และ วันที่ 25 – 27 มิถุนายน 2562 
ณ อาคาร Software Park Thailand ถนนแจ้งวัฒนะ

เรียบเรียงโดย: อาจารย์ ดร.วิมลิน ริมปิกุล
สนับสนุนโดย: กองทุน มสธ.12 ปี

เกี่ยวกับภาษา Python

Python เป็นภาษาที่นิยมนำมาใช้กันอย่างกว้างขวางในการพัฒนาโปรแกรมเพื่องานต่างๆ กำเนิดขึ้นโดย Guido van Rossum และแพร่ครั้งแรกในปี 1991 ภาษา Python ถูกออกแบบด้วยแนวความคิดที่จะทำให้คำสั่งหรือโค๊ดต่างๆเป็นภาษาที่อ่านง่ายและให้นักพัฒนาโปรแกรมสามารถเขียนชุดคำสั่งที่แสดงผลได้ดีและลดจำนวนบรรทัดที่จะต้องเขียนกว่าภาษาที่เป็นที่นิยมในอดีต เช่น ภาษา C++ และภาษา Java

การเขียนภาษา Python สามารถเขียนได้บนหลายระบบปฎิบัติการ โดยอาศัยไลบรารี่ต่างๆที่มีผู้พัฒนาไว้ซึ่งส่วนใหญ่จะไม่เสียค่าใช้จ่าย ปัจจุบันมีไลบรารี่ครอบคลุมการทำงานในเกือบทุกด้านแล้ว ผู้ใช้งานสามารถค้นหาและดาวน์โหลดชุดคำสั่งจากชุมชนนักพัฒนา เช่น บนเว็บไซต์ Github เพื่อหาชุดคำสั่งที่มีคนเคยพัฒนาไว้แล้วมาประยุกต์ใช้กับงานของตนเองได้ด้วย

Python Ecosystem

ภาษา Python จัดว่าเป็นภาษาครอบจักรวาลและมีความคล้ายภาษามนุษย์มากที่สุด พัฒนามาจากภาษา C หรือ C++ ภาษา Python เป็นภาษาที่เขียนน้อยแต่ได้งานมาก ทำงานได้เร็ว ไม่ยึดติดกับแพลตฟอร์ม จึงทำงานได้บน Unix, Linux , Windows NT, Windows 2000, Windows XP รวมไปถึง Mac OS และชุดคำสั่งเหล่านี้เป็น OpenSource นำมาใช้ได้ฟรี ไม่ต้องเสียค่าใช้จ่าย

ภาษา Python สามารถนำไปประยุกต์ใช้ในเขียนโปรแกรมเพื่อการจัดการที่หลากหลาย เช่น การจัดการข้อมูลเชิงสถิติ (Data analysis) เขียนเว็บไซต์ (web development) การนำเสนอแบบสามมิติ (3-D visualization) การประมวลผลจากรูปภาพ (image processing) การประมวลผลภาษาธรรมชาติหรือภาษามนุษย์การเรียนรู้ภาษามนุษย์ (Natural language processing) และการนำไปพัฒนาให้ระบะคอมพิวเตอร์สามารถเรียนรู้ได้ด้วยตนเอง (machine learning)

Anaconda Navigator โปรแกรมจัดการ Python

การใช้งาน Python ผ่านโปรแกรมจัดการจะทำให้การใช้งานเป็นไปได้อย่างสะดวกและมีประสิทธิภาพยิ่งขึ้น ปัจจุบันโปรแกรมจัดการ Python นั้นมีอยู่หลายตัว เช่น Anaconda Python, ActivePython, CPython, Enthought Canopy, WinPython  ในการอบรมครั้งนี้ ผู้เข้ารับการอบรมได้ลองใช้โปรแกรมจัดการ Python ที่มีชื่อว่า Anaconda Navigator ในการเข้าถึงแพคเกจเกี่ยวกับ data science เช่น NumPy, Pandas, Matplotlib  การดาวน์โหลดโปรแกรม Anaconda Navigator มาใช้งาน สามารถดาวน์โหลดได้จากเว็บไซต์ https://www.anaconda.com/distribution/ แล้วเลือกระบบปฎิบัติการที่เหมาะสม (Windows/ MacOs / Linux) กับคอมพิวเตอร์ที่จะใช้งาน การเขียนภาษา Python ผ่าน Anaconda Navigator ช่วยลดเวลาในการจัดการแพกเกจต่างๆที่จะใช้ในการทำงาน เนื่องจากสามารถค้นหาแพกเกจได้อย่างสะดวกและมีการอัพเดทอยู่สม่ำเสมอ

การเริ่มต้นใช้งาน Python

การอบรมครั้งนี้สอนให้เรียนรู้ภาษา Python ผ่านแหล่งรวมแพกเกจชื่อว่า Anaconda Navigator โดยทำงานบน Open Source Web Application ที่มีชื่อว่า Jupyter ซึ่งเป็นการใช้งานผ่าน browser ที่มีข้อดีคือสามารถเขียนคำสั่งและสั่งให้รันใช้งานได้เฉพาะบรรทัดนั้นๆได้ตามต้องการโดยไม่จำเป็นจะต้องบันทึกไฟล์ลงบนเครื่องคอมพิวเตอร์

ก่อนจะทำการเขียนชุดคำสั่งต่างๆ ผู้ใช้งานจะต้องพิจารณานำเข้าไลบรารี่ที่เหมาะสมกับวัตถุประสงค์ในการใช้งาน ในการอบรมเบื้องต้นนี้ เป็นการนำ Python ไปใช้ในงานสถิติ ได้เรียนรู้การนำเข้าไลบรารี่ที่เกี่ยวการคำนวณทางคณิตศาสตร์ ได้แก่ Numpy Scipy Pandas Matplotlib และ Seaborn วิธีการนำเข้าข้อมูลตัวเลขที่บันทึกเป็นตารางในสกุลไฟล์ .csv  วิธีการจัดการตัวแปรรูปแบบต่างๆ ทั้งตัวแปรเชิงกลุ่ม(Categorical variable) ตัวแปรเชิงตัวเลข (Numerical variable) การคำนวณและการวิเคราะห์สถิติพรรณนา ไปจนถึงการวิเคราะห์สถิติเชิงถดถอย การอบรมครั้งนี้จึงทำให้ได้แนวทางการวิเคราะห์ทางสถิติโดยไม่ต้องอาศัยโปรแกรมสำเร็จรูปที่มีราคาแพง ผู้วิจัยสามารถเขียนชุดคำสั่งขึ้นมาใช้งานเองได้โดยไม่ต้องเสียค่าใช้จ่าย อย่างไรก็ตามการเขียนชุดคำสั่งขึ้นเองเพื่อใช้ในการวิเคราะห์ทางสถิติจำเป็นต้องอาศัยเวลาในการเรียนรู้และฝึกฝนการใช้ภาษา Python จึงจะสามารถนำมาใช้งานได้จริงโดยไม่ประสบปัญหาการใช้งาน

Data structure

การอบรมครั้งนี้ให้ความรู้เกี่ยวกับรูปแบบของข้อมูลที่มีอยู่ในปัจจุบัน 2 ส่วนหลัก ได้แก่

  • ข้อมูลเชิงโครงสร้าง (structured data) คือ ข้อมูลที่มีการจัดเรียนอย่างมีรูปแบบชัดเจนและเป็นระเบียบ สามารถนำไปใช้ในการวิเคราะห์ได้ทันที ส่วนใหญ่สามารถบันทึกลงใน spreadsheet ได้ เช่น ข้อมูลการสำรวจน้ำหนักและส่วนสูง สถิติสำมโนประชากร บันทึกรายรับรายจ่าย แบบสอบถามระดับความพึงพอใจ
  • ข้อมูลที่ไม่มีโครงสร้างแน่นอน (Unstructured data) คือข้อมูลที่ถูกจัดเก็บอย่างไม่เป็นระเบียบ ไม่สามารถนำมาวิเคราะห์ได้ทันที เช่น ข้อความบนเฟสบุ๊ค ข้อความเสียง ภาพถ่าย และวิดีโอ ซึ่งในอดีตข้อมูลประเภทนี้ไม่ได้ถูกนำมาใช้ประโยชน์เท่าที่ควร แต่ในปัจจุบันการทำ data mining ช่วยให้สามารถช่วยให้นำข้อมูลเหล่านี้มาใช้งานและถูกนำมาในการวิเคราะห์พฤติกรรมของผู้บริโภคได้อย่างแพร่หลาย

2. ความรู้ที่ได้รับจากหลักสูตร Fundamental Data Science for Data Scientist using Python

การอบรมนี้เป็นการอบรมหลักสูตรต่อเนื่องเพื่อเรียนรู้วิธีการเขียนโปรแกรมที่สามารถนำไปสู่การทำ Machine Learning และ Artificial Intelligence (AI)  

แนวคิดของ Machine Learning และ Artificial Intelligence (AI)

Machine Learning (ML) เป็นการสอนให้ระบบคอมพิวเตอร์เรียนรู้ ทำความเข้าใจได้ด้วยตนเองโดยการใช้ข้อมูลที่ถูกป้อนให้เรียนรู้ซ้ำไปมา เมื่อระบบคอมพิวเตอร์สามารถแก้ไขปัญหาและสามารถตัดสินใจได้ตามชุดคำสั่งที่สร้างไว้ได้สำเร็จจะเรียกการทำงานที่เกิดขึ้นว่า ปัญญาประดิษฐ์ (Artificial Intelligence) เนื่องจากระบบคอมพิวเตอร์สามารถเลียนแบบ พัฒนา และแสดงพฤติกรรมของมนุษย์ได้จากการทำงานชุดโค้ด เทคนิค หรืออัลกอลิทึมที่ถูกป้อนไว้ การที่ระบบจะมีการเรียนรู้เชิงลึก (Deep learning) ได้จำเป็นต้องมีส่วนที่เป็นเสมือนสมองและโครงข่ายประสาทที่เชื่อมต่อกันของมนุษย์ ซึ่งบนระบบคอมพิวเตอร์จะเรียกส่วนที่คล้ายสมองมนุษย์นี้ว่า โครงข่ายใยประสาทเสมือน (Artificial Neural Networks) ที่มีความสามารถเข้าใจและเรียนรู้จากข้อมูลจำนวนมากที่ได้รับอย่างต่อเนื่องคล้ายพฤติกรรมมนุษย์

ประเภทของข้อมูลและความเหมาะสมในการใช้ Python

Python สามารถใช้เขียนโปรแกรมเพื่อจัดการข้อมูลได้ทั้ง 2 รูปแบบคือ ข้อมูลเชิงโครงสร้าง และข้อมูลที่ไม่มีโครงสร้างแน่นอน ซึ่งแตกต่างจากบางโปรแกรมอาจจำเพาะกับข้อมูลเชิงโครงสร้างเป็นหลัก หากจะวิเคราะห์ข้อมูลที่ไม่มีโครงสร้างจำเป็นจะต้องซื้อโปรแกรมลิขสิทธิ์เพิ่มเติมจึงทำให้มีค่าใช้จ่ายเพิ่มขึ้น Python สามารถใช้ในเขียนโปรแกรมเพื่อวิเคราะห์ข้อมูล ทำ Data Mining และสามารถนำไปใช้ในการทำ Machine Learning ให้ระบบคอมพิวเตอร์สามารถคิดวิเคราะห์เองได้อีกด้วย

การประยุกต์ใช้ Python ในงานด้านต่างๆ

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