ชุดข้อมูลเข้าใจวิธีปฏิบัติที่ดีที่สุด


13

ฉันเป็นนักศึกษาปริญญาโท CS ในด้านการขุดข้อมูล หัวหน้างานของฉันเคยบอกฉันว่าก่อนที่ฉันจะเรียกใช้ตัวจําแนกใด ๆ หรือทำอะไรกับชุดข้อมูลฉันต้องเข้าใจข้อมูลทั้งหมดและตรวจสอบให้แน่ใจว่าข้อมูลสะอาดและถูกต้อง

คำถามของฉัน:

  • อะไรคือวิธีปฏิบัติที่ดีที่สุดในการทำความเข้าใจชุดข้อมูล (มิติสูงที่มีคุณลักษณะตัวเลขและระบุ)?

  • วิธีปฏิบัติเพื่อให้แน่ใจว่าชุดข้อมูลนั้นสะอาดหรือไม่

  • วิธีปฏิบัติเพื่อให้แน่ใจว่าชุดข้อมูลไม่มีค่าผิดหรือเป็นเช่นนั้น?

คำตอบ:


8

มีสิ่งพื้นฐานที่คุณสามารถทำได้กับชุดข้อมูลใด ๆ :

  1. ตรวจสอบค่า (การยอมรับความยาวสตริง, ชนิดข้อมูล, รูปแบบการจัดรูปแบบ, การมีอยู่ของฟิลด์ที่ต้องการ, ฯลฯ )
  2. ความถูกต้องของช่วง (ข้อมูลที่ถูกต้องดูเหมือนจะตกอยู่ในช่วงค่าที่คาดหวังหรือไม่)
  3. การประมวลผลเบื้องต้น (ถ้าฉันพยายามวิเคราะห์ข้อมูลนี้ฉันสามารถดำเนินการขั้นพื้นฐานได้โดยไม่เกิดข้อผิดพลาด)
  4. การรายงานเบื้องต้น (เรียกใช้รายงานกับชุดข้อมูลและตรวจสอบให้แน่ใจว่าผ่านการทดสอบสติ)
  5. การกำหนดค่า null เทียบกับค่าว่างกับศูนย์เทียบกับค่าเท็จสำหรับคอลัมน์ข้อมูลใด ๆ
  6. การระบุข้อมูลที่ไม่เข้าที่ (ค่าตัวเลขแตกต่างจากค่าอื่น ๆ ในชุดข้อมูลค่าสตริงที่ดูเหมือนว่าพวกมันอาจสะกดผิด ฯลฯ )
  7. การกำจัดหรือแก้ไขข้อมูลที่ผิดพลาดอย่างเห็นได้ชัด

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

ตัวอย่างเช่นคุณสามารถมีกฎที่ระบุว่าหมายเลขซีเรียลต้องแสดงอยู่ในชุดข้อมูลที่กำหนดและหมายเลขซีเรียลนั้นต้องเป็นตัวอักษรและตัวเลขที่มีความยาวสตริงสูงสุด 255 และความยาวสตริงต่ำสุดที่ 5

เมื่อดูที่ข้อมูลคุณอาจพบว่าหมายเลขซีเรียลหนึ่งค่าอ่าน"PLEASE ENTER SERIAL" ถูกต้องสมบูรณ์ แต่ผิด

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

ในโลกแห่งความเป็นจริงคุณไม่จำเป็นต้องมีความเข้าใจอย่างถ่องแท้ในข้อมูลของคุณ

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

นอกจากนี้การสอบถามแหล่งที่มาของข้อมูลและความน่าเชื่อถือของแหล่งข้อมูลนั้นมีความสำคัญเพียงใด ฉันมักจะมีแหล่งข้อมูลที่ขัดแย้งกันหลายครั้งและเราสร้างกฎเพื่อกำหนด "แหล่งที่มาของความจริง" บางครั้งชุดข้อมูลหนึ่งมีข้อมูลที่ยอดเยี่ยมในแง่มุมที่กำหนด แต่ชุดข้อมูลอื่นมีความแข็งแกร่งในด้านอื่น ๆ

ข้อมูลที่ป้อนด้วยตนเองมักเป็นสิ่งที่ฉันสงสัยมากที่สุด แต่ในบางกรณีมันมีความแข็งแกร่งกว่าสิ่งใด ๆ ที่สามารถรับได้ผ่านระบบอัตโนมัติ


5

ฉันชอบ @Kallestad ตอบมาก แต่ฉันต้องการเพิ่มเมตาขั้นตอน: ตรวจสอบให้แน่ใจว่าคุณเข้าใจว่าข้อมูลที่เก็บรวบรวมได้อย่างไรและมีข้อ จำกัด ประเภทใดบ้าง ฉันคิดว่ามันเป็นเรื่องธรรมดามากที่จะคิดว่าไม่มีขั้นตอนที่ไม่ชัดเจนเมื่อรวบรวมข้อมูล แต่ไม่ใช่ในกรณีส่วนใหญ่กระบวนการหรือการทำบางอย่างนั้นทำกับข้อมูลและขั้นตอนเหล่านี้สามารถและจะ มีอิทธิพลต่อรูปร่างของข้อมูล

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

ข้อผิดพลาดที่สองนั้นท้าทายมากขึ้น: เมื่อทำการวิเคราะห์ทางภูมิศาสตร์ฉันพบว่าผู้คนจำนวนมากมีรูปแบบการเคลื่อนไหวที่ใหญ่มากซึ่งบอกว่าพวกเขาจำนวนมากเดินทางจากมิวนิคไปยังฮัมบูร์กในไม่กี่นาที เมื่อฉันพูดกับ ppeople ต้นน้ำพวกเขาพบข้อผิดพลาดเล็กน้อยในซอฟต์แวร์การรวมข้อมูลซึ่งไม่มีใครสังเกตเห็นมาก่อน

สรุป:

  • อย่าคิดว่าข้อมูลของคุณถูกรวบรวมโดยกระบวนการ / มนุษย์ที่สมบูรณ์แบบ
  • พยายามเข้าใจขีด จำกัด ของผู้ให้บริการข้อมูลของคุณ
  • ดูที่แต่ละรูปแบบ / ค่าและลองพิจารณาว่าเป็นแบบลอจิคัล (ง่ายสำหรับการเคลื่อนย้าย / ข้อมูลทางภูมิศาสตร์)

4

ฉันมักจะใช้วิธีสองขั้นตอน

  1. คำนวณ univariate (ตัวแปรตามตัวแปร) สถิติสรุปเช่นค่าเฉลี่ย, ช่วง, ความแปรปรวน, จำนวนที่หายไป, cardinality, ฯลฯ สำหรับแต่ละตัวแปรและมองหาสิ่งที่แปลกประหลาด (เช่นช่วงที่ไม่น่าเชื่อถือเนื่องจากความหมายของตัวแปร) พล็อตฮิสโทแกรมสำหรับตัวแปรคี่เหล่านั้น

  2. แบ่งข้อมูลออกเป็นชุดย่อยที่จัดการได้ (เลือกตัวแปรที่มีความหมายและแยกข้อมูลตามตัวอย่างเช่นตัวอย่างเชิงบวกทั้งหมดและลบทั้งหมด) และสำรวจด้วยสายตา (เช่นกับggobi ) โดยเฉพาะอย่างยิ่งใช้เครื่องมือเช่นการแปรงและแผนการกระจายเพื่อทำความเข้าใจว่าตัวแปรเชื่อมโยงกันอย่างไร

และเมื่อคุณเริ่มสร้างแบบจำลองตรวจสอบให้แน่ใจว่าได้พล็อตส่วนที่เหลือมองหาข้อผิดพลาดมากที่อาจเกิดจากค่าผิดปกติหรือดูเมทริกซ์ความสับสนและตรวจสอบให้แน่ใจว่ามันมีความสมดุล ใช้การตรวจสอบความถูกต้องไขว้ของ k-fold เพื่อปรับแบบจำลองของคุณให้ดีที่สุดและดูความแปรปรวนของข้อผิดพลาดในการฝึกอบรมสำหรับแต่ละครั้งหากการพับหนึ่งครั้งมีประสิทธิภาพที่แย่กว่าตัวอื่น ๆ มากมันอาจมีค่าผิดปกติ


4

ด้านล่างนี้คุณสามารถค้นหาสำเนาคำตอบของฉันสำหรับคำถามที่เกี่ยวข้อง (แต่เน้นเรื่องการล้างข้อมูล) ที่นี่ในData Science StackExchange ( /datascience//a/722/2452 ) ซึ่งจัดทำไว้ให้ครบถ้วน ความสะดวกสบายของผู้อ่าน ฉันเชื่อว่าบางส่วนตอบคำถามของคุณเช่นกันและหวังว่าจะเป็นประโยชน์ ในขณะที่คำตอบคือได้มุ่งเน้นไปที่Rระบบนิเวศแพคเกจที่คล้ายกันและ / หรือห้องสมุดสามารถพบได้สำหรับอื่น ๆสภาพแวดล้อมในการวิเคราะห์ข้อมูล นอกจากนี้ขณะที่ทั้งสองอ้างเอกสารในการจัดเตรียมข้อมูลที่ยังมีตัวอย่างในการวิจัยเอกสารเหล่านี้นำเสนอโดยทั่วไป ขั้นตอนการทำงาน (กรอบ)และปฏิบัติที่ดีที่สุดที่มีผลบังคับใช้กับใด ๆ สภาพแวดล้อมการวิเคราะห์ข้อมูล

R มีบางส่วนมาตรฐานฟังก์ชั่นสำหรับการจัดการข้อมูลซึ่งสามารถนำมาใช้สำหรับการทำความสะอาดข้อมูลในของฐานแพคเกจ ( gsub, transformฯลฯ ) เช่นเดียวกับในแพคเกจของบุคคลที่สามต่างๆเช่นstringr , Reshape , reshape2และplyr ตัวอย่างและแนวทางปฏิบัติที่ดีที่สุดของการใช้งานสำหรับแพคเกจเหล่านี้และฟังก์ชั่นของพวกเขาจะอธิบายไว้ในบทความต่อไปนี้: http://vita.had.co.nz/papers/tidy-data.pdf

นอกจากนี้ R เสนอแพคเกจบางอย่างที่เน้นการทำความสะอาดข้อมูลและการแปลงเป็นพิเศษ:

วิธีการที่ครอบคลุมและเชื่อมโยงกันเพื่อให้ข้อมูลในการทำความสะอาดในการวิจัยรวมทั้งตัวอย่างและการใช้editrulesและdeducorrectแพคเกจรวมทั้งรายละเอียดของขั้นตอนการทำงาน ( กรอบ ) ของข้อมูลการทำความสะอาดในการวิจัยจะนำเสนอในบทความต่อไปนี้ซึ่งผมขอแนะนำ: http :


3

คนที่นี่ระบุขั้นตอนที่ดี แต่ฉันคิดว่ามีข้อมูลที่ดีที่ลิงค์ต่อไปนี้สิ่งที่ฉันทำเมื่อฉันได้รับชุดข้อมูลใหม่ตามที่บอกผ่านทวีตมันสรุปขั้นตอนที่คนทวีตตอบคำถาม @hmason ที่ดี "คนข้อมูล: อะไรคือสิ่งแรกที่คุณทำเมื่อคุณได้รับชุดข้อมูลใหม่ "

หวังว่ามันจะมีประโยชน์


1

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.