ปัจจุบัน ทรัพยากรที่มีค่าที่สุดในโลกไม่ใช่น้ำมันอีกต่อไป แต่เป็นข้อมูล การแสดงภาพกำลังกลายเป็นเครื่องมือที่สำคัญมากขึ้นในการทำความเข้าใจแถวข้อมูลนับพันล้านแถว ด้วยการแปลข้อมูลเป็นการแสดงภาพกราฟิกที่ตีความได้ง่าย การแสดงภาพข้อมูลจึงช่วยในการเล่าเรื่องของข้อมูลด้วยการเน้นข้อมูล รูปแบบ และค่าผิดปกติที่เกี่ยวข้อง อย่างไรก็ตาม ข้อมูลและกราฟิกจะต้องทำงานร่วมกัน ซึ่งเป็นศิลปะแห่งการผสมผสานการวิเคราะห์ที่ยอดเยี่ยมเข้ากับการเล่าเรื่องที่ยอดเยี่ยม ในบล็อกโพสต์นี้ เราจะแสดงให้คุณเห็น "Sea Born" ซึ่งเป็นหนึ่งในเครื่องมือสร้างภาพที่มีชื่อเสียงที่สุดซึ่งเขียนด้วยภาษา Python
เครื่องมือแสดงภาพ
เราใช้เครื่องมือการแสดงภาพเพื่อแสดงภาพแนวโน้ม รูปแบบ ค่าผิดปกติ และความสัมพันธ์ระหว่างตัวแปร เป็นทักษะที่เป็นที่ต้องการอย่างมากโดยเฉพาะอย่างยิ่งสำหรับอาชีพด้านวิทยาศาสตร์ข้อมูล
ซีบอร์น
Seaborn เป็นไลบรารีการแสดงภาพข้อมูล Python ที่อิงจาก matplotlib มันมีอินเทอร์เฟซระดับสูงสำหรับการวาดภาพกราฟิกทางสถิติที่น่าสนใจและให้ข้อมูล
ฟังก์ชั่นการวางแผนท้องทะเล:
ในทะเลเรามีแปลง 3 ประเภท
-
แปลงหมวดหมู่
-
แปลงจำหน่าย
-
แผนการเชิงสัมพันธ์
แปลงหมวดหมู่
เราใช้ฟังก์ชันการจัดหมวดหมู่ของสัตว์ทะเลเพื่อแสดงภาพแนวโน้มของตัวแปรจัดหมวดหมู่ หรือเพื่อแสดงความสัมพันธ์ระหว่างตัวแปรสองตัวกับตัวแปรประเภทอย่างน้อยหนึ่งรายการ
จำนวนแปลง:
- แสดงจำนวนการสังเกตของแต่ละหมวดหมู่จากตัวแปรหมวดหมู่ เราเพียงแค่นับจำนวนการสังเกตของตัวแปรแต่ละหมวดหมู่
seaborn.catplot(kind = 'count',
data = dataset,
x = 'variable')
เนื้อที่บาร์:
-
เป็นค่าประมาณแนวโน้มของตัวแปรต่อเนื่องที่มีความสูงของรูปสี่เหลี่ยมผืนผ้าสำหรับตัวแปรหมวดหมู่แต่ละประเภท ดังนั้นฟังก์ชันการพล็อตจะใช้ตัวแปรสองตัวเป็นอินพุต ตัวแปรหนึ่งต่อเนื่องและอีกตัวแปรเป็นหมวดหมู่ สำหรับแต่ละหมวดหมู่จากตัวแปร_1 เราจะคำนวณแนวโน้มของตัวแปร_2
-
แนวโน้มอาจเป็นค่าเฉลี่ย ความแปรปรวน หรือคุณสามารถส่งผ่านฟังก์ชันที่กำหนดเองบางอย่างได้...
seaborn.catplot(kind = 'bar',**data = dataset,**
x = 'variable_1',**y = 'variable_2',**
estimator = np.mean)**
โครงเรื่อง:
- Strip plot เป็นหนึ่งในพล็อตที่ง่ายที่สุดและตรงไปตรงมาที่สุดในการแสดงข้อมูล เราเพียงแค่วาดจุดที่แสดงค่าของตัวแปรต่อเนื่อง สำหรับแต่ละประเภทของตัวแปร 1 เราจะวาดค่าของตัวแปร 2
seaborn.catplot(kind = 'strip',
data = dataset,
x = 'variable_1',
y = 'variable_2',
jitter = 0.15)
พล็อตฝูง:
-
Swarm plot นั้นคล้ายคลึงกับ strip plot มาก เนื่องจากมีฟังก์ชันการทำงานที่เหมือนกันทุกประการ ข้อแตกต่างเพียงอย่างเดียวคือวิธีการแสดงคะแนน ขณะอยู่ในสตริปพล็อต จุดข้อมูลอาจทับซ้อนกันเนื่องจากวางแบบสุ่มบนแกน x ในกราฟแบบฝูง เราตรวจสอบให้แน่ใจว่าจุดต่างๆ จะไม่ทับซ้อนกันโดยการซ้อนกัน
-
ข้อเสียเปรียบที่นี่คือหากเรามีจุดข้อมูลจำนวนมาก มันเป็นไปไม่ได้ที่จะไม่ทับซ้อนกัน ดังนั้นอัลกอริทึมจะลบจุดข้อมูลบางส่วนเพื่อไม่ให้ทับซ้อนกัน
seaborn.catplot(kind = 'swarm',
data = dataset,
x = 'variable_1',
y = 'variable_2')
โครงกล่อง:
-
Box plot ใช้เพื่อแสดงการกระจายของตัวแปรต่อเนื่องสำหรับตัวแปรหมวดหมู่แต่ละประเภท แม้ว่าจะค่อนข้างง่าย แต่ก็ให้ข้อมูลมากมาย:
-
ค่าของควอไทล์:
กล่องมีเส้นแนวนอนอยู่ข้างในซึ่งแสดงถึงค่ามัธยฐาน เส้นแนวนอนด้านบนคือควอไทล์บน ส่วนเส้นแนวนอนด้านล่างคือควอร์ไทล์ล่าง
- ค่าผิดปกติ:
โปรดสังเกตว่ามีจุดบางจุดอยู่นอกกรอบ จุดเหล่านี้แสดงถึงค่าผิดปกติ
seaborn.catplot(kind = 'box',
data = dataset,
x = 'variable_1',
y = 'variable_2')
เนื้อเรื่องไวโอลิน:
แทนที่จะพล็อตกล่องแจกจ่าย พล็อตไวโอลินจะพล็อตการกระจายที่แท้จริงของตัวแปรต่อเนื่องสำหรับตัวแปรหมวดหมู่แต่ละประเภทโดยใช้ KDE ( Kernel Density Estimation )
seaborn.catplot(kind = 'violin',
data = dataset,
x = 'variable_1',
y = 'variable_2')
แปลงจำหน่าย:
เราใช้ฟังก์ชันการวางแผนการกระจายของสัตว์ทะเลเพื่อแสดงภาพการกระจายตัวของตัวแปรต่อเนื่อง
โครงเรื่อง:
โครงเรื่องฮิสต์แสดงถึงการกระจายตัวของตัวแปรต่อเนื่องโดยใช้ถังเก็บ
seaborn.distplot(kind = 'hist',
data = dataset,
x = 'variable',
bins = 20)
โครงเรื่องของ KDE:
พล็อต Kde แสดงถึงการกระจายข้อมูลตามจริง โดยใช้การประมาณความหนาแน่นของเคอร์เนล
seaborn.distplot(kind = 'kde',
data = dataset,
x = 'variable')
นอกจากนี้ยังสามารถใช้เพื่อแสดงการกระจายตัวแบบไบวาเรียตของตัวแปรต่อเนื่องสองตัวได้ด้วย
seaborn.distplot(kind = 'kde',
data = dataset,
x = 'variable_1',
y = 'variable_2')
โครงเรื่อง ECDF:
พล็อต ECDF แสดงถึงการกระจายตัวสะสมเชิงประจักษ์ของตัวแปรต่อเนื่อง
seaborn.distplot(kind = 'ecdf',
data = dataset,
x = 'variable')
โครงเรื่องที่เกี่ยวข้อง:
เราใช้ฟังก์ชันการวางแผนเชิงสัมพันธ์ของสัตว์ทะเลเพื่อแสดงความสัมพันธ์ระหว่างตัวแปรต่อเนื่อง
แผนภูมิกระจาย:
- แสดงความสัมพันธ์ระหว่างตัวแปรต่อเนื่อง 2 ตัว เพียงแค่พล็อตจุดข้อมูลทั้งหมด
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2')
โครงเรื่อง:
- แสดงถึงความสัมพันธ์ระหว่างตัวแปรในรูปแบบฟังก์ชันต่อเนื่อง
seaborn.relplot(kind = 'line',
data = dataset,
x = 'variable_1',
y = 'variable_2')
ฟังก์ชันเพิ่มเติม:
คุณอาจสังเกตเห็นว่าในฟังก์ชันการวางแผนทั้งหมด เราใช้ตัวแปรสูงสุดสองตัวต่อพล็อต แต่จะเป็นอย่างไรหากเราต้องการแนะนำตัวแปรเพิ่มเติมในการแสดงภาพของเรา โชคดีที่ Seaborn จัดการเรื่องนั้น:
สี:
- การใช้สีเราสามารถแนะนำตัวแปรตัวที่ 3 ที่เป็นหมวดหมู่สำหรับการแสดงภาพของเราโดยใช้การเข้ารหัสสี หมายความว่าจุดข้อมูลที่อยู่ในหมวดหมู่เดียวกันของตัวแปรตัวที่ 3 นี้จะมีสีเดียวกัน
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2',
hue = 'variable_3')
ขนาด:
- ขนาดคล้ายกับเฉดสี แต่ใช้การเข้ารหัสขนาดแทนการเข้ารหัสสี หมายความว่าจุดข้อมูลที่อยู่ในหมวดหมู่เดียวกันของตัวแปรที่ 3 จะมีขนาดไม่ซ้ำกัน ขนาดที่ต่างกันหมายถึงหมวดหมู่ที่แตกต่างกัน
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2',
size = 'variable_3',
sizes = [50, 100])
สไตล์:
- เกือบจะเหมือนกับ Hue และ Size ซึ่งหมายความว่าจุดข้อมูลที่อยู่ในหมวดหมู่เดียวกันของตัวแปรตัวที่ 3 จะมีสไตล์ที่เป็นเอกลักษณ์เหมือนกัน รูปแบบจุดอาจเป็นจุด ดาว กากบาท สามเหลี่ยม … เราเรียกว่าเครื่องหมาย
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2',
style = 'variable_3',
markers = ['X', '*'])
นอกจากนี้เรายังสามารถแนะนำตัวแปรหมวดหมู่ใหม่โดยใช้พล็อตหลายรายการ แต่ละพล็อตอยู่ในหมวดหมู่จากตัวแปรหมวดหมู่หมวดหมู่:
คอล:
จะสร้างตัวเลขจำนวนมากในแนวนอนตามประเภทของตัวแปรที่ 3
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2',
col = 'variable_3')
แถว:
จะสร้างตัวเลขจำนวนมากในแนวตั้งตามประเภทของตัวแปรที่ 3
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2',
row = 'variable_3')
นอกจากนี้เรายังสามารถใช้ Hue และ Size ในพล็อตเดียวกัน เพื่อแสดงตัวแปร 4 ตัว หรือแม้แต่ Hue และ Style และ Col เพื่อใช้ 5 ตัวแปรในพล็อตเดียวกัน ! เราสามารถใช้ตัวแปรได้มากถึง 7 ตัว (ตัวแปร 1, ตัวแปร 2, Hue, ขนาด, สไตล์, Col, แถว) ในพล็อตเดียวกัน แต่มันจะทำให้เรามีพล็อตที่มีค่าใช้จ่ายสูงซึ่งยุ่งมากและยากต่อการตีความอย่างมาก บางครั้งก็ไม่ ข้อมูลเลย
seaborn.relplot(kind = 'scatter',
data = dataset,
x = 'variable_1',
y = 'variable_2',
hue = 'variable_3',
size = 'variable_4')
บทสรุป:
ในโพสต์นี้ เราได้เรียนรู้เกี่ยวกับสัตว์ทะเล ซึ่งมี 3 ประเภทของฟังก์ชันการวางแผน: การแบ่งหมวดหมู่ การแจกแจง และพล็อตเชิงสัมพันธ์ และเราได้อธิบายฟังก์ชันการวางแผนแต่ละฟังก์ชันสำหรับแต่ละหมวดหมู่ ควบคู่ไปกับโค้ด python
ลองดู Data Science Bootcamp ของเราเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับหัวข้อนี้