Data Analytic : การเตรียมข้อมูลเพื่อการวิเคราะห์

09/07/2016 11:45 AM คอมพิวเตอร์ 2,098 views

FY58O0P400

ปัญหาของการทำงานด้านวิเคราะห์ข้อมูลที่พบมากที่สุดก็คือ ข้อมูลที่ได้รับมาไม่ตรงตามรูปแบบที่จะจัดเก็บ เนื่องจากแหล่งข้อมูลที่ได้มาจากหลายที่ (Source) แต่ละที่ก็เก็บข้อมูลแตกต่างกัน ซึ่งไม่มีรูปแบบ (Format)  ที่แน่นอนทำให้เราต้องตรวจสอบข้อมูลนั้นก่อน มาดูกันว่าเบื้องต้องทำอะไรบ้างในการจัดการกับข้อมูลก่อนที่จะเอาไปใช้ประโยชน์ต่อได้

….คำศัพท์เกี่ยวกับ data analytics….

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

Data Standardization: การทำข้อมูลให้อยู่ในรูปแบบมาตรฐาน
เนื่องจากข้อมูลที่ได้มาอาจจะมีรูปแบบไม่เหมือนกับที่เราได้ออกแบบไว้ตามโครงสร้างของฐาน (Database Structure) ซึ่งจะเชื่องโยงกับ Data Cleansing เช่น อาจจะมีการกำหนดจังหวัดที่จัดเก็บข้อมูลเป็นตัวเลข แล้วเชื่อมโยงไปกับตารางข้างนอกเพื่อให้รู้ว่ารหัสนี้หมายถึงจังหวัดอะไร เพื่อแผนกอื่นจะได้เข้าใจตรงกัน

Data Deduplication: ความซ้ำซ้อนของข้อมูล
การทำความสะอาดข้อมูล (Data Cleansing) จะช่วยตรวจสอบได้ว่ามีข้อมูลทีซ้ำกันอยู่เท่าไหร่ ข้อมูลต่างกันตรงไหนและเราสามารถใช้ข้อมูลตัวไหนได้ จะช่วยลดพื้นที่ในการจัดเก็บทำรายงานที่มีประสิทธิภาพได้ เช่น หากจัดงานแสดงผลงานจะต้องเตรียมอาหารมีผู้ลงชื่อร่วมงาน 3,000 คนแต่มีข้อมูลซ้ำกัน 500 คนก็จะได้สรุปถูกว่ามีผู้ร่วมงานจริงๆ 2500 คน บวก ลบ อีกประมาณ 100 คนเป็นต้น

Data Quality: คุณภาพของข้อมูล
จากวิธีการทำความสะอาดข้อมูล (Data Cleansing) การลดความซ้ำซ้อนของข้อมูลและการทำให้ข้อมูลอยู่ในรูปแบบมาตรฐานและทำให้ข้อมูลมีคุณภาพและสามารถนำไปใช้งานได้ครับ

 

….ขั้นตอนการทำ Data Cleansing….

  1. ชื่อ-นามสกุล
    จากตัวอย่างจะเห็นว่าข้อมูลที่ได้มาไม่เหมือนกัน ซึ่งผมจะใช้สูตรใน Excel เข้ามาช่วยในการแบ่งชื่อกับนามสกุล แต่ถ้าแหล่งข้อมูลมีการแบ่งช่องของชื่อนามสกุลอยู่แล้วตรงกับรูปแบบของระบบ เราก็สามารถลดขึ้นตอนการแบ่งช่องข้อมูลได้ เช่น บางคนให้คำนำหน้าชื่อ บางคนไม่กรอก บางคนมีช่องว่างระหว่างชื่อนามสกุลมากกว่า 1 ช่อง หรือมีนามสกุลแบบเว้นวรรค  เช่น นายสมชาย ณ สยาม เป็นต้น
  1. E-mail
    การตรวจสอบ E-mail ก็เป็นขั้นตอนสำคัญเพราะถ้าหากเก็บข้อมูลไม่ถูกต้องตามรูปแบบ เมื่อต้องการเอาไปใช้อาจจะเกิดความเสียหายต่อหลายฝ่ายรวมถึงด้วยเราเองด้วย  เช่น ถ้าระบบมีการตรวจสอบรูปแบบของ E-mail ให้อยู่ในรูปแบบ myemail@gmail.com  แต่ข้อมูลที่ได้มา ไม่มี email provider ที่อยู่ข้างหลัง @ ระบบก็จะไม่อนุญาติให้เราอัพโหลดข้อมูลได้ ถ้าหากมีข้อมูลแบบนี้อยู่แค่หลักสิบหรือร้อยก็ไม่เท่าไหร่ แต่ถ้ามีถึงหลักหมื่นหรือแสนก็อาจจะต้องเสียเวลามาเช็คใหม่
    ผลกระทบที่อาจจะเกิด
    หากเป็นข้อมูลลูกค้าที่ต้องการส่ง E-mail เพื่อประชาสัมพันธ์สินค้าตัวใหม่ของบริษัท อาจจะเสียเวลา เสียค่าใช้จ่าย หรือคุณอาจจะถูกตำหนิด้วยกรณีที่ต้องทำรายงานสรุปว่า จำนวน  จดหมายที่ส่งออกเท่าไหร่ มีลูกค้าสนใจเท่าไหร่ เปิดอ่านเท่าไหร่ ไม่เปิดเท่าไหร่ และการส่งผิดพลาดเท่าไหร่ (Error) ตรงนี้แหละครับเรื่องใหญ่แน่ๆ  555
  2. เบอร์โทรศัพท์
    เบอร์โทรศัพท์ก็เป็นข้อมูลสำคัญอย่างหนึ่งที่ต้อง Cleansing ก่อนจัดเก็บ ถ้าหากเป็นเบอร์โทรศัพท์มือถือของประเทศไทยที่เราคุ้นเคยก็ไม่ยุ่งยากเพียงแค่ดูว่าครบ 10 หลักและเริ่มต้นด้วย 08, 09, 06 หรือไหม่ หากเป็นโทรษัพท์บ้านหรือที่ทำงานก็เช็คว่าครบ 9 หลักหรือไม่
    ผลกระทบที่อาจจะเกิด
    หากไม่ตรวจสอบข้อมูลเบอร์โทรศัพท์ก่อนจัดเก็บ แล้วแผนกอื่นนำไปใช้เช่นนำไปโทรหาลูกค้าหรือส่งข้อมูลประชาสัมพันธ์งานอาจเสียค่าใช้จ่าย ข้อมูลไม่ถึงลูกค้า และต้องเสียอารมณ์อีกด้วย 55

ขั้นตอนสำคัญ ใส่ Number ให้กับข้อมูล

ต้องแทรกเลขลำดับให้แต่ละแถวด้านหน้าสุด (No) ต้องทำทุกครั้งเพื่อป้องกันการเรียงข้อมูล (Sort) ผิดพลาด เพราะในขึ้นตอนถัดไปเราอาจจะต้องเรียงข้อมูล (Sort) โดย E-mail หรือ Mobile ถ้าไม่ใส่เลขตรงนี้ไว้จะไม่สามารถเรียงกลับมาให้เป็นเหมือนข้อมูลเริ่มต้นได้

….ชื่อ-นามสกุล….

ถ้าหากข้อมูลที่ได้เป็นแบบที่ผมทำสีฟ้าไว้ในคอลัมน์ B:C  ไม่ได้มีการแบ่งช่องและยังมีข้อมูลอื่นแทรกมาด้วย เราต้องการแบ่ง ชื่อ สกุล และบทที่นักแสดงคนละคนแยกจากกันในคอลัมน์ F และ G ถ้าข้อมูลที่ได้มามีแค่ชื่อ นามสกุลก็สามารถทำขั้นตอน 1 และ 3 ได้เลย

ขั้นตอน 1 แบ่งชื่อ-นามสกุลและบทที่ได้รับ

ในขั้นตอนนี้จะแบ่งชื่อ-นามสกุลและบทที่นักแสดงได้รับออกจากกันก่อน โดยผมจะเพิ่มหัวตารางถัดไปดังรูปและมาดูกันว่าแต่ละช่องทำงานยังไง

Data2

(1) Find Word , Column E
ช่องนี้จะใส่สูตรเพื่อหาคำที่จะมาใช้แบ่งข้อมูลเราสังเกตได้ว่าทุกช่องจะมีคำว่า “รับบท” เหมือนกัน
สูตร Excel คือ  =FIND(“คำที่ต้องค้นหา”,ช่องข้อมูลต้องการค้นหา)
=FIND(“รับบท”,B2)

(2) Firstname- Lastname จะแบ่งชื่อ-นามสกุล ออกจากบทที่ได้รับ , Column F
สูตร Excel คือ  =LEFT(ช่องข้อมูลต้องการแบ่ง, ช่องหาคำที่ใช้แบ่ง-1)
 =LEFT(B2, E2 -1)

(3) Act as จะใส่บทที่นักแสดงได้รับ , Column G
 สูตร Excel คือ  =RIGHT(ช่องข้อมูลต้องการแบ่ง,LEN(ช่องข้อมูลต้องการแบ่ง) -ช่องหาคำที่ใช้แบ่ง-6)
6 ที่ต้องลบออกคือนับคำว่า รับบท ได้ 6 ตัวอักษรเพือให้ได้ค่าเริ่มต้นที่ตัวละครพอดี
=RIGHT(B2,LEN(B2) -E2-6)

 Data3

ขั้นตอน 2 แบ่งชื่อกับนามสกุล

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

(1) Find Word , Column K
สังเกตว่าเวลาเราพิมพ์ชื่อ นามสกุลมักจะคั่นด้วยช่องว่าง (Space) ฉะนั้นเราจะใช้ช่องว่างนี่แหละครับมาแบ่งข้อมูลของชื่อกับนามสกุลให้อยู่คนละคอลัมน์
สูตร Excel คือ  =FIND(” “,ช่องข้อมูลต้องการแบ่ง)
=FIND(” “,B2)

(2) Firstname , Column L
สูตร Excel คือ  =LEFT(ช่องข้อมูลต้องการแบ่ง, ช่องหาคำที่ใช้แบ่ง-1)
=LEFT(J2, K2 -1)

(3) Lastname, Column M
สูตร Excel คือ  =RIGHT(ช่องข้อมูลต้องการแบ่ง,LEN(ช่องข้อมูลต้องการแบ่ง) -ช่องหาคำที่ใช้แบ่ง)
=RIGHT(J2,LEN(J2) -K2)

 

Data4

….Email….

ขั้นตอน 1 แบ่งข้อมูล

ขั้นตอนนี้มาดูว่าวิธีการตรวจสอบ E-mail ที่ได้มาถูกต้องหรือไม่โดยเพิ่มคอลัมน์ทางขวาและใส่หัวตารางดังรูป

(4) Blank , Column O
เช็คว่าข้อมูล Email มีช่องว่างหรือไม่ เพราะมาตรฐานการตั้งชื่อ E-mail นั้นห้ามมีช่องว่าง
สูตร Excel คือ  FIND(” “,ช่องข้อมูลต้องการค้นหา)
** ข้อมูล E-mail เป็นข้อมูลปลอมที่เขียนขึ้นเพื่อยกตัวอย่างการวิเคราะห์ข้อมูลนะครับ
=FIND(” “,N2)

ผลลัพธ์ ในรูปจะเห็นว่าเจอตำแหน่งของช่องว่างในตำแหน่งที่ 3, 10, 5 ซึ่งเป็นข้อมูลที่ไม่ถูกต้อง

(5) Find , Column P
หาตำแหน่งของ “@” เป็นอักขระที่ขาดไม่ได้ในข้อมูล E-mail
สูตร Excel คือ  FIND(” “,ช่องข้อมูลต้องการค้นหา)
=FIND(” “,N2)

ผลลัพธ์ ในรูปจะเห็นว่าไม่พบ @  (#VALUE!) ใน Email ของนักแสดงคนที่ 13, 21  ซึ่งเป็นข้อมูลที่ไม่ถูกต้อง

(6) Right, Column Q  
หา Email provider
สูตร Excel คือ  =RIGHT(ช่องข้อมูลต้องการแบ่ง,LEN(ช่องข้อมูลต้องการแบ่ง) -ช่องหาคำที่ใช้แบ่ง)
=RIGHT(N2,LEN(N2)-P2)

ผลลัพธ์ ในรูปจะเห็นว่าไม่พบ Email provider (#VALUE!) ด้านหลัง @ ใน Email ของนักแสดงคนที่ 13, 21  ซึ่งเป็นข้อมูลที่ไม่ถูกต้อง

(7) Mid , Column R
หาอักขระด้านหน้า @
สูตร Excel คือ  =MID(ช่องข้อมูลต้องการแบ่ง, ช่องอักขระที่ใช้แบ่ง – 1, 1)
=MID(N2,P2-1,1)

ผลลัพธ์จะเห็นว่าพบจุดและ #VALUE! ใน Email ของนักแสดงคนที่ 5, 10, 19, 21  เพราะไม่สามารถใส่จุดหน้า @ ได้และไม่มี @ ใน Email ซึ่งเป็นข้อมูลที่ไม่ถูกต้อง


Data5

ขั้นตอน 2 เช็ค E-mail Provider

หลังจากแบ่งข้อมูลแต่ละส่วนของ E-mail แล้วจะมาเช็คว่า E-mail Provider นั้นถูกต้องหรือไม่ โดยเรียงข้อมูล Column Q  ตามอักขระจะเห็นได้ชัดว่าตัวไหนผิด ถ้าเป็น E-mail สากลที่มีคนใช้เยอะๆ เราก็พอจะเดาได้ว่าเป็น gmail.com หรือ Hotmail.com และแก้ไขให้ถูกต้องได้
จำได้ไหมครับ “ขั้นตอนสำคัญ ใส่ No ให้กับข้อมูล” เราจะเรียงข้อมูลให้กลับไปลำดับเหมือนเริ่มต้นโดยใช้ช่องนี้ครับ

 

Data6

….เบอร์โทรศัพท์…. 

ข้อมูลเบอร์โทรศัพท์จะต้องเช็คว่าจำนวนถูกต้องตามรูปแบบเบอร์โทรศัพท์มือถือประเทศไทยซึ่งมี 9 ตัวหรือไม่ (ไม่นับ 0) และเลขขึ้นต้นของแต่ละเบอร์คือ 08, 09, 06 หรือไม่

(8) Count , Column T
สูตร Excel คือ  =LEN(ช่องที่ต้องการนับ)
=LEN(S2)

ผลลัพธ์ให้ เรียงข้อมูลเบอร์โทร (Sort) ตามลำดับ Column S เพื่อดูว่ามีจำนวนตัวเลข 8 กับ 9 และเบอร์ที่มี 9 ตัวก็ไม่ได้ถูกต้องทั้งหมดเพราะประเทศไทยมีแค่ 08, 09, 06 เท่านั้น

จำได้ไหมครับ “ขั้นตอนสำคัญ ใส่ No ให้กับข้อมูล” เราจะเรียงข้อมูลให้กลับไปลำดับเหมือนเริ่มต้นโดยใช้ช่องนี้ครับ
** ข้อมูลเบอร์โทรศัพท์เป็นข้อมูลที่สุ่มขึ้นเพื่อยกตัวอย่างการวิเคราะห์ข้อมูลเท่านั้นนะครับ

ขอบคุณข้อมูลจาก drama.kapook.com/view130817.html