Data Science Process มีความสําคัญอย่างไร

2. Data Engineer ผู้มีหน้าที่จัดการโครงสร้างของข้อมูล และเป็นผู้สร้างระบบทั้งหมดที่เกี่ยวข้องกับข้อมูล ตั้งแต่ต้นกำเนิด การเชื่อมโยง การจัดเก็บ และการแสดงผล

3. Data Scientist ผู้สร้าง Model หรือคิดวิเคราะห์เพื่อสามารถสร้างผลลัพธ์ใหม่ๆ จากข้อมูล

กลับมาที่ภาพ Data Science Process Cycle จะเห็นได้ว่า ขั้นตอนการทำงาน ประกอบไปด้วย 6 ขั้นตอนด้วยกัน ได้แก่

1. Business Understanding นั่นคือ การทำความเข้าใจ และวางเป้าหมายเชิงธุรกิจ จะเห็นได้ว่า ผู้มีหน้าที่ในการวาง Scope ของการทำโครงการ คือ Business Analyst แต่การจะวาง Scope ของการทำโครงการได้ จำเป็นต้องทราบถึงแนวทางในการแก้ปัญหาขั้นต้น รวมไปถึง สามารถมองเห็นในสิ่งที่ต้องการได้

2. Data Understanding คือ ศึกษาแนวทางการได้มาซึ่งข้อมูล รวมไปถึง การเลือกปัจจัยที่คิดว่ามีส่วนสำคัญในการประมวลผล ในส่วนนี้ ผู้มีหน้าที่หลัก คือ Data Engineer เพราะเป็นขั้นตอนในการวางโครงสร้างตั้งแต่ต้นน้ำ จนถึงการจัดเก็บให้อยู่ในรูปที่พร้อมใช้

3. Data Preparation คือ การเตรียมข้อมูลให้อยู่ในรูปที่พร้อมนำไปวิเคราะห์ต่อ รวมไปถึงการทำความสะอาดข้อมูล หน้าที่นี้ Data Engineer และ Data Scientist จะต้องทำด้วยกัน ที่สำคัญที่สุด ขั้นตอนนี้จะเป็นการกระทำย้อนไปย้อนมา ร่วมกับการสร้าง Model หมายถึงว่า จะทำต้องวนไปวนมา จนกว่าจะแน่ใจว่า Model ที่ได้ เป็น Model ที่ตอบโจทย์ที่สุด จึงเป็นที่มาว่า การจะทำความสะอาดข้อมูล จะต้องเกิดจากการสร้าง Model เพราะตราบใดที่ยังไม่เคยนำข้อมูลไปใช้จริง ก็คงไม่สามารถทราบได้ว่า จะต้องทำความสะอาด หรือจัดเตรียมให้อยู่ในรูปใด

4. Modeling คือ การสร้าง Model (ภาษาง่ายๆ คือ การสร้างสมการที่ซับซ้อน) เหตุผลที่ต้องสร้าง Model เพราะธุรกิจต้องการความเป็นเลิศ ต้องการผลลัพธที่เป็นเอกเทศ เพื่อให้เกิดการแข่งขันทางการตลาด ในการทำ Data Science ไม่มี Model ไหนเป็น Model ที่ดีที่สุด จึงจำเป็นต้องมีการสร้าง Model หลายๆ แบบ เพื่อนำไปสู่กระบวนการประเมินผลลัพธ์ที่ได้จาก Model ในลำดับต่อไป

5. Evaluation คือ การประเมินผลลัพธ์ที่ได้จาก Model แต่ละโจทย์จะมีความต้องการที่ต่างกัน เช่น ต้องการ Model ที่ทำนายได้แม่นยำที่สุด ต้องการ Model ที่ประมวลผลได้เร็วที่สุด หรือต้องการ Model ที่นำไปใช้ได้ง่ายที่สุด และเช่นกัน ขั้นตอนนี้ ผู้มีหน้าที่สำคัญ คือ Business Analyst (ในขณะที่ Data Scientist เป็นผู้นำเสนอ Model แต่ละประเภทให้ Business Analyst เป็นผู้เลือก)

6. Deployment คือ การนำ Model ไปใช้งานจริง อาจจะเป็นการสร้างระบบขึ้นมาเพื่อให้เกิดการทำงานอย่างอัตโนมัติ หรือจะเป็นการใช้ Model เฉพาะเมื่อจำเป็นต้องใช้ แตกต่างกันตรงที่ หากเป็นระบบอัตโนมัติ ก็จำเป็นต้องนำไปขึ้นเป็นระบบ (คล้ายๆ การทำ Software หรือ อาจจะเป็นการทำ Software หรือ Application รูปแบบหนึ่งก็เป็นได้) ซึ่งผู้ที่ทำหน้าที่ให้ Requirement หรือ ออกแบบช่องทางการใช้งาน คือ Business Analyst เพราะถือว่า เป็นการส่งมอบงาน และนำ Model นั้นไปใช้จริงในธุรกิจ

จะเห็นได้ว่า การทำ Big Data หรือแม้แต่กระบวนการ Data Science นั้น จำเป็นต้องอาศัยความเชี่ยวชาญเฉพาะด้านที่หลากหลาย ดังนั้น สิ่งที่สำคัญที่สุด คือ ความเข้าใจในเนื้องาน ทั้งในส่วนงานของตัวเอง และงานของผู้ร่วมทีม เพื่อให้เกิดงานที่มีประสิทธิภาพ (ในเวลาอันรวดเร็ว)

Data Scientist คือนักวิทยาศาสตร์ข้อมูล นำข้อมูล (Big data) มาวิเคราะห์ตามกระบวนการวิทยาศาสตร์เพื่อหาข้อสรุปจากข้อมูลที่มี จากนั้นส่งต่อข้อสรุปให้ฝ่ายอื่นนำไปประยุกต์ใช้งานต่อไป (หรืออาจทำต่อเอง)

https://www.youtube.com/watch?v=X3paOmcrTjQ&feature=emb_title

Data Science In 5 Minutesหน้าที่หลักของ Data Scientist
  • ทำความเข้าใจในปัญหาที่ต้องการแก้ไข (Define question)
  • ดึงข้อมูลจากแหล่งข้อมูล (Data collection)
  • ทำความเข้าใจในข้อมูลที่มี (Data understanding / Data analysis)
  • เตรียมข้อมูลให้เรียบร้อยก่อนนำข้อมูลไปประมวลผล (Data preparation)
  • ประมวลผลข้อมูล (Data processing / Data modeling)
  • วัดประสิทธิภาพการประมวลผลข้อมูล (Data acquisition)
  • สรุปผลและแสดงผลที่ได้จากการประมวลผลข้อมูล (Data visualization)
  • ปรับปรุงประสิทธิภาพการประมวลผลข้อมูลให้ดีขึ้น (Optimization)
  • ทำงานร่วมกับ Data Engineer เพื่อออกแบบโครงสร้างข้อมูลที่ง่ายต่อการนำไปประมวลผล

Data Scientist Tasksความสามารถที่ Data Scientist ต้องมี

https://www.brandbuffet.in.th/2018/01/data-scientist-job-in-high-demand/

คณิตศาสตร์และสถิติ (Math / Stat)

เข้าใจในคณิตศาสตร์และสถิติเพื่อให้การประมวลผลข้อมูลมีความถูกต้องตามหลักการเพื่อให้ผลลัพธ์แม่นยำและสอดคล้องกับความเป็นจริง ช่วยให้เข้าใจกระบวนการทำงานเบื้องหลังของ Machine Learning สามารถเลือกใช้อัลกอริทึมได้เหมาะสมกับข้อมูลและปรับแต่งค่าได้อย่างเหมาะสมเพื่อให้ได้ผลลัพธ์ที่แม่นยำมากขึ้น นอกจากนี้ยังใช้ในเรื่องของการจัดการข้อมูลที่ขาด(missing value) การลดมิติของข้อมูลโดยยังคงลักษณะเทียบเท่าเดิม การเลือกข้อมูลมาประมวลผลให้สมดุลกัน(data balance) และลดความคลาดเคลื่อนของข้อมูล(bias, varience) การทดสอบสมมติฐานและวัดประสิทธิภาพผลลัพธ์

เขียนโปรแกรม (Programming)

ภาษาหลักที่ใช้ในสายงานวิเคราะห์ข้อมูล จะมี Python, Scala, R เนื่องจาก Framework และ Library ส่วนใหญ่จะรองรับภาษาพวกนี้เป็นหลัก

นอกจากนี้ควรสามารถใช้งาน Shell Script พื้นฐาน เพื่อให้สามารถติดตั้งระบบและส่วนเสริมเองได้ และอาจนำมาประยุกต์ใช้ในการจัดการข้อมูลได้ด้วย

ฐานข้อมูล (Database)

โดยทั่วไปแล้วการนำข้อมูลมาใช้งานในฝั่งวิเคราะห์ข้อมูล จะไม่ใช้งานฐานข้อมูลของระบบที่ผู้ใช้ใช้งานอยู่ (Production database) เพราะถ้าระหว่างการทำงานเกิดความผิดพลาดจะส่งผลกระทบต่อข้อมูลจริงได้ อาจทำให้ข้อมูลของผู้ใช้ถูกเปลี่ยนแปลงหรือลบหายไป โดยทั่วไปจึงทำการโคลนฐานข้อมูลออกมาอีกชุดและใช้ตัวที่โคลนแทน ซึ่งจะแบ่งออกเป็นระดับต่างๆ เช่น Data Lake, Data Warehouse, Data Mart

สำหรับ Data Scientist นอกจากการดึงข้อมูลมาใช้งานทั้งแบบ SQL และ NoSQL แล้ว ยังมีส่วนร่วมกับ Data Engineer ในการออกแบบโครงสร้างข้อมูลและฐานข้อมูลให้เหมาะสมกับการนำข้อมูลไปใช้งาน เช่น การเลือกว่าข้อมูลแบบใดควรเก็บข้อมูลด้วยฐานข้อมูลแบบ SQL หรือ NoSQL หรือการทำ Database normalization สำหรับข้อมูลประเภท SQL

จึงควรเข้าใจโครงสร้างฐานข้อมูลชนิดต่างๆ ทั้งฐานข้อมูลที่มีความสัมพันธ์(SQL) และฐานข้อมูลที่ไม่มีความสัมพันธ์(NoSQL) ฐานข้อมูลที่นิยม เช่น MySQL, PostgreSQL, MongoDB, Cassandra

นอกจากนี้ยังมีฐานข้อมูลที่เก็บข้อมูลในเมมโมรี(Memory) เช่น Redis, Memcached ที่ทำให้การประมวลผลข้อมูลเร็วมาก สำหรับใช้ในการประมวลผลที่ต้องการได้ผลลัพธ์อย่างรวดเร็ว หรือเพิ่มประสิทธิภาพในการประมวลผล

แพลตฟอร์มจัดการข้อมูลปริมาณมาก (Big Data Platform)

ข้อมูลส่วนใหญ่ที่นำมาประมวลผลมักมีปริมาณมาก การนำข้อมูลมาประมวลผลบนเครื่องไม่กี่เครื่องส่วนใหญ่จะทำงานได้ช้ามาก หรืออาจเกิด Error ขึ้นกลางทางเพราะทรัพยากรเครื่องที่จำกัด จึงมีเทคนิคในการนำคอมพิวเตอร์หลายเครื่องมารวมกันและติดตั้งแพลตฟอร์มสำหรับจัดการข้อมูลเอาไว้เพื่อช่วยกันประมวลผล งานในส่วนนี้ Data Scientist ไม่ต้องเป็นคนทำเอง แต่ต้องสามารถใช้งานเป็น โดยส่วนใหญ่ที่นิยมกัน เช่น PySpark

การประมวลผลตลอดเวลา (Real-Time Processing)

การประมวลผลบางอย่างที่ต้องการให้มีการอัพเดทตลอดเวลา ดังนั้นต้องรู้วิธีการใช้งานข้อมูลที่เชื่อมต่อมาจาก Message Queue เช่น Apache Kafka, RabbitMQ

การใช้บริการเสริมจากภายนอก (Third party)

บริการเกี่ยวกับ Big Data บนคลาวด์ เช่น Google Cloud Platform, Amazon Web Services, Microsoft Azure, Alibaba Cloud โดยแต่ละเจ้าก็จะมีเครื่องมือช่วยงานด้าน Big data ที่แตกต่างกัน

นอกจากนี้งานส่วนใหญ่ในปัจจุบันมักจะใช้ข้อมูลจาก Social media ด้วย จึงควรสามารถใช้งาน Facebook API, Twitter API เพื่อดึงข้อมูลมาใช้งาน หรือการทำ Web Scraping เพื่อดึงข้อมูลจากหน้าเว็บไซต์ต่างๆ (ทั้งนี้ควรอ่านรายละเอียดข้อจำกัดการใช้งานและลิขสิทธิข้อมูลบนแต่ละเว็บไซต์ก่อนดึงข้อมูลออกมา)

การแสดงผลข้อมูล (Data Visualization)

การแสดงผลข้อมูลจะต้องเข้าใจว่าข้อมูลลักษณะใดควรแสดงผลออกมาในรูปแบบใดเพื่อให้เข้าใจได้อย่างมีประสิทธิภาพและเข้าใจตรงตามความเป็นจริง แสดงข้อมูลเชิงลึก(insight) หรือแสดงเป็นหลักฐาน(evidence) เพื่อช่วยยืนยันข้อสรุปต่างๆ

ภาพจากสไลด์ Data Visualation ของ ดร.ภูริพันธุ์ รุจิขจร

ความรู้ทางด้านธุรกิจ (Business domain)

เข้าใจในธุรกิจที่เป็นต้นตอของข้อมูล เพื่อให้เข้าใจลักษณะของข้อมูล สามารถตั้งสมมติฐาน กำหนดปัญหาและหาวิธีแก้ไขได้อย่างตรงจุด อีกทั้งยังเข้าใจถึงวิธีที่มีความเป็นไปได้ในการนำไปปฏิบัติเพื่อให้เกิดผลตามที่คาดหวัง

Natural language processing (NLP)

การประมวลผลเกี่ยวกับข้อความต่างๆ เช่น หนังสือ บทความ ข้อความจากโซเชียลมีเดีย รีวิวตามเว็บ จำเป็นต้องรู้วิธีประมวลผลข้อมูลที่อยู่ในรูปข้อความ โดยเฉพาะข้อความภาษาไทยที่มีความซับซ้อนในการประมวลผล ควรสามารถใช้งาน PyThaiNLP หรือ PyICU และควรเข้าใจเทคนิคอื่นๆ เช่น การหาข้อความที่คล้ายกันด้วย Word2Vec นอกจากการนำมาวิเคราะห์แล้ว สามารถพัฒนาต่อยอดเป็น Chatbot เพื่อตอบโต้อัตโนมัติกับผู้ใช้งาน

Voice recognition

การประมวลผลข้อมูลประเภทเสียงวิธีที่ค่อนข้างง่ายคือ Speech-to-Text การแปลงเสียงเป็นข้อความก่อนแล้วนำไปประมวลผลต่ออีกที

Image processing

การประมวลผลเกี่ยวกับรูปภาพหรือวีดีโอ ต้องสามารถทำพวก Image Recognition

เครื่องมืออื่นๆ

ควรเข้าใจในเครื่องมือสำเร็จรูปอื่นๆ เพื่อนำมาช่วยในการทำงานบางอย่างที่ไม่จำเป็นต้องปรับแต่งมาก เพื่อทำงานได้เร็วขึ้น เช่น DataRobot, SAS, SPSS, Excel, Rapidminer, Alteryx, Tableau, PowerBI

Machine Learning

เข้าใจในอัลกอรึทึมต่างๆของ Machine Learning เพื่อให้สามารถเลือกใช้ได้เหมาะสมกับข้อมูลและได้ผลลัพธ์ที่แม่นยำ โดยจะแบ่งเป็น 3 ประเภทหลัก คือ Supervised Learning, Unsupervised Learning, Reinforcement Learning

http://www.cognub.com/index.php/cognitive-platform/

Supervised Learning (Regression, Classification)

การที่เรานำข้อมูลตัวอย่างมาสอน Machine Learning ตัดสินใจว่าข้อมูลแบบใดจะได้ผลลัพธ์อะไร จากนั้นเมื่อ Machine Learning ได้รับข้อมูลใหม่จะตัดสินใจโดยอิงตามสิ่งที่เราสอน เช่น Support Vector Machines(SVM), K-Nearest Neighbors(KNN), Regression, Decision Tree, Random Forest, Neural Networks

Self-Supervised Learning เทคนิคในการนำผลลัพธ์จากการทำนาย (prediction) มาเพิ่ม Dataset คือจะสอน Machine Learning ด้วย train data ที่มีก่อน จากนั้นจะนำโมเดลที่ได้มารันข้อมูลใหม่แล้วนำผลลัพธ์กลับมาสอนตัวเองใหม่อีกรอบ เช่น

  • ต้องการแยกรูปหมาแมว ในตอนแรกเราสามารถหารูปภาพที่มีการระบุว่าเป็นภาพหมาหรือแมวมาได้อย่างละ 5,000 ภาพ
  • นำ 10,000 ภาพนั้นมาสอน Machine Learning
  • เมื่อได้โมเดลออกมาแล้ว เราไปหาภาพใหม่มาได้อีก 100,000 ภาพ แต่ภาพใหม่นี้ยังไม่มีการระบุว่าเป็นหมาหรือแมว
  • ใช้โมเดลที่ได้มาทำนายว่าเป็นภาพหมาหรือแมว
  • จากนั้นนำผลลัพธ์มารวมกับภาพที่มีตอนแรก รวมเป็น 110,000 ภาพ ที่มีการระบุว่าเป็นหมาหรือแมว แล้วนำกลับไปสอนโมเดลเดิมใหม่อีกครั้ง

Active Learning เป็นการต่อยอดจาก Self-Supervised Learning คือผลลัพธ์ที่โมเดลทำนายออกมาจะถูกตรวจสอบโดยคนก่อนนำกลับไปสอนโมเดลใหม่อีกรอบ

Unsupervised Learning (Clustering, Association)

การที่เราไม่รู้ว่าข้อมูลจะมีผลลัพธ์อะไร แต่ให้ Machine Learning ทำการคิดเอง เช่น การจัดกลุ่มข้อมูลที่มีลักษณะใกล้เคียงกันออกเป็นกลุ่มตามจำนวนกลุ่มที่กำหนด (จะไม่รู้ว่าแต่ละกลุ่มคือกลุ่มของอะไร แต่รู้ว่าข้อมูลในกลุ่มนั้นมีลักษณะใกล้เคียงกัน) เช่น K-Means, DBSCAN, Neural Networks

Reinforcement Learning

การเรียนรู้จากการลองผิดลองถูกเพื่อตัดสินใจกระทำบางอย่าง(Markov Decision Process) โดยกำหนดเป้าหมาย(goal) และรางวัล(reward) จากการทำแอคชัน(action) ภายใต้ขอบเขตเงื่อนไข(policy) คือเมื่อมีการทำแอคชันค่ารางวัลก็จะถูกสะสมเพิ่มขึ้นตามที่ได้รับ มีหลักการตัดสินใจ 3 แบบ

Data Science มีความสําคัญอย่างไร

Data Science เป็นตัวช่วยสำคัญที่เข้ามาเพิ่มประสิทธิภาพการทำการตลาด ตั้งแต่การหาลูกค้าใหม่ไปจนถึงช่วยคาดการณ์รายได้ในระยะยาว แต่ถ้าต้องการให้กระบวนการวิเคราะห์ข้อมูลเกิดประสิทธิภาพสูงสุด อาจต้องเริ่มตั้งแต่การวาง Data Strategy เพื่อกำหนดกลยุทธ์การใช้ข้อมูล ออกแบบโครงสร้างระบบเก็บข้อมูล แล้วสร้างโมเดลวิเคราะห์ข้อมูล ...

ขั้นตอนสําคัญของกระบวนการวิทยาการข้อมูล มีอะไรบ้าง

กระบวนการวิทยาการข้อมูลจึงประกอบด้วย 5 ขั้น ได้แก่ การตั้งคำถาม การเก็บรวบรวมข้อมูล การสำรวจข้อมูล การวิเคราะห์ข้อมูล การสื่อสารและการทำผลลัพธ์ให้เป็นภาพ จึงทำให้การดำเนินกิจกรรมประสบความสำเร็จและเกิดประสิทธิภาพ

Data Scientist ทําหน้าที่ใด

Data Scientist คือ ผู้รวบรวมข้อมูลและวิเคราะห์ข้อมูลทั้ง 2 รูปแบบ คือ รูปแบบข้อมูลเชิงโครงสร้าง (Structure Data) เป็นตารางข้อมูลที่มีการจัดการอย่างชัดเจน เป็นระเบียบสามารถนำมาใช้ในการวิเคราะห์ต่อได้ทันที และสำหรับข้อมูลที่ไม่มีโครงสร้างแน่นอน (Unstructured Data) จะเป็นข้อความเสียง, รูปภาพและวีดิโอ เป็นต้น

Data Scientist ต้องมีคุณสมบัติอย่างไร

ทักษะที่จำเป็น Data Scientist คือบุคคลที่มีความรู้คณิตศาสตร์เชิงลึกและสถิติ เพื่อนำมากลั่นกรองและตีความผลลัพท์ของข้อมูล เช่น การเรียนรู้ด้วยตนเองของโปรแกรมต่างๆ (Machine Learning) การทำเหมืองข้อมูล (Data Mining) หรือพีชคณิต (Algebra) การเขียนโปรแกรม