Data Scientist คืออะไร และสกิลของ Data Scientist
Data Scientist คือนักวิทยาศาสตร์ข้อมูล นำข้อมูล (Big data) มาวิเคราะห์ตามกระบวนการวิทยาศาสตร์เพื่อหาข้อสรุปจากข้อมูลที่มี จากนั้นส่งต่อข้อสรุปให้ฝ่ายอื่นนำไปประยุกต์ใช้งานต่อไป (หรืออาจทำต่อเอง)
หน้าที่หลักของ 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 ต้องมี
คณิตศาสตร์และสถิติ (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) เพื่อช่วยยืนยันข้อสรุปต่างๆ
ความรู้ทางด้านธุรกิจ (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
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 แบบ
- Value-Based จะพยายามทำให้ได้ผลรางวัลระยะยาวมากที่สุด
- Policy-based จะพยายามทำแอคชันที่ส่งผลให้รางวัลในอนาคตเพิ่มขึ้น
- Model-Based จะสร้างโมเดลจำลองสำหรับแต่ละสภาพ และเรียนรู้จากสภาพนั้น
เช่น Monte Carlo, Sarsa, Q-learning
อ่านเพิ่มเติมเกี่ยวกับ Reinforcement Learning ได้ที่
ดูอัลกอรึทึมอื่นเพิ่มเติมได้ที่
ตัวอย่างประโยชน์จากการนำข้อมูลมาใช้งาน
- Customer Segmentation การแบ่งกลุ่มลูกค้าหรือผู้ใช้งาน ทำให้ทราบว่ากลุ่มไหนสนใจเรื่องอะไร ต้องการอะไร จะได้เสนอสิ่งที่ต้องการได้ตรงจุด
- Direct Marketing การทำการตลาดแบบตัวต่อตัว เพื่อให้ลูกค้าแต่ละคนได้รับในสิ่งที่ต้องการ
- Forecasting การคำนวณค่าต่างๆ ที่จะเกิดขึ้นในอนาคต เช่น ยอดขายสินค้า
- Recommendation การแนะนำสิ่งต่างๆที่สอดคล้องกับความต้องการของแต่ละคน เช่น การเรียง feed ใน Facebook ของแต่ละคนจะต่างกันไป ขึ้นกับพฤติกรรมการใช้งานของแต่ละคน หรือรายการแนะนำสินค้าที่แตกต่างกันสำหรับแต่ละคน
- Customer Churn Prediction การรู้ล่วงหน้าว่าลูกค้าคนใดกำลังจะเลิกใช้งาน ทำให้สามารถเข้าไปดำเนินการต่างๆได้ในทันที เพื่อเปลี่ยนใจลูกค้าให้ยังใช้งานต่อไป
- Employee Churn Prediction การรู้ล่วงหน้าว่าพนักงานคนใดกำลังจะลาออก ทำให้สามารถเข้าไปดำเนินการต่างๆได้ในทันที เพื่อช่วยแก้ไขปัญหาและเปลี่ยนใจพนักงานให้ยังอยากทำงานต่อไป
- Fraud Detection การระบุพฤติกรรมที่มีความเสี่ยงในการทำทุจริต ทำให้สามารถป้องกันความเสียหายได้ทัน
- Sentiment Analysis การวิเคราะห์ข้อมูลจากคำพูด เช่น ดูว่าคนพูดถึงองค์กรเราใน social media กันอย่างไร
- Cost Optimisation การปรับลดค่าใช้จ่ายต่างๆ หรือโยกย้ายการลงทุนเพื่อให้เกิดประสิทธิภาพสูงสุด
- SLA Analysis การวิเคราะห์ผลการบริการลูกค้า เพื่อให้รู้ประสิทธิภาพของพนักงานบริการ และความพึ่งพอใจของลูกค้า
- Sentiment Analysis การวิเคราะห์ความรู้สึกของคน อาจวิเคราะห์จากข้อความ เสียง วีดีโอหรือรูปถ่าย
- Image Recognition การจดจำและระบุวัตถุต่างๆในภาพ ประยุกต์ใช้เป็น Face Recognition ในการจดจำใบหน้า การถ่ายภาพอัตโนมัติเมื่อมีการยิ้ม เป็นต้น
- A/B Testing การวัดผลว่าสิ่งใดดีกว่ากันได้อย่างชัดเจน เพื่อนำสิ่งที่ดีกว่าไปปรับใช้จริง
- Analytic Dashboard เพื่อแสดงผลการวิเคราะห์ข้อมูลได้ตลอดเวลา
- AI การนำ Machine learning model มาต่อยอดเพื่อทำระบบตอบสนองอัตโนมัติ (automatic action) ตามที่ต้องการ
ตัวอย่างเส้นทางการพัฒนาความรู้เพื่อพัฒนาเป็น Data Scientist
สำหรับตำแหน่งงานอื่นในสายงานการจัดการข้อมูลสามารถอ่านเพิ่มเติมได้ที่