การจัดกลุ่มข้อมูลด้วยเทคนิค Data binning

Image placeholder
แวะมาทักทายกันได้


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

โดยประโยชน์ของการวิเคราะห์ข้อมูลวิธีนี้ เพื่อหาข้อผิดพลาด ค่าที่มีมากๆ

สมมติว่ามี Dataset อยู่ 1 ชุด เช่น ชุดข้อมูลเงินเดือนของพนักงาน ใช้วิธี binning เพื่อจัดเป็นกลุ่ม เช่น กลุ่มช่วงอายุ กลุ่มช่วงเงินเดือน เพื่อวิเคราะห์ปริมาณของข้อมูล


IDAGESALARYAT
13030000UK
23533000US
33231500US
44945000US
54440000UK
64842000UK
73132000UK
83234000US
93541000UK


แบ่งตามอายุ และ ช่วงเงินเดือนเปรียบเทียบด้วยความถี่


ช่วงอายุ / ช่วงเงินเดือน30000 - 4000040000 - 50000
3010
3110
3220
3511
4410
4801
4901
รวม63


ลองทดลองเรื่อง binning ด้วยข้อมูลจาก google timeline

โดย Download จาก google trend ด้วย Keyword Cupcake แล้วลองทดสอบไปตาม code ด้านล่างได้เลย

df = pd.read_csv('cupcake.csv')

กำหนดขอบของค่า bin ที่ต้องการโดยกำหนด value ออกเป็น 3 กลุ่ม ได้แก่ small medium big จากนั้นก็คำนวนระยะห่างระหว่าง ค่าต่ำสุด และ ค่าสูงสุด โดย แยกออกเป็น 3 ส่วนด้วย code ด้านล่าง


min_value = df['cupcake: (ทั่วโลก)'].min()

max_value = df['cupcake: (ทั่วโลก)'].max()

print(min_value)

print(max_value)


ผลที่ได้คือ  min : 4 , max: 100


ตอนนี้เราสามารถที่จะคำนวณค่า range ของแต่ละ interval เช่นค่า  min max ของแต่ละ interval


small — (edge1, edge2)

medium — (edge2, edge3)

 big — (edge3, edge4) 


โดยการใช้ฟังก์ชัน linspace() ของ numpy


import numpy as np
bins = np.linspace(min_value,max_value,4)
bins

 

array([  4.,  36.,  68., 100.])

 

โดนการกำหนด labels

 

labels = ['small', 'medium', 'big']

 

เราจะใช้ฟังก์ชัน cut() convert ตัวเลข ของ column cupcake เพื่อแปลงเป็น categorical หมวดหมู่ จำเป็นที่จะต้องกำหนด ค่า bin และ label และ set include_lowest  เป็น true


df['bins'] = pd.cut(df['cupcake: (ทั่วโลก)'], bins=bins, labels=labels, include_lowest=True)

df['bins'] 

 

df['bins'] จะเป็นจัดกลุ่มข้อมูลที่ได้แบ่งเอาไว้

 

คราวนี้เราจะแสดงผลด้วย matplotlib


import matplotlib.pyplot as plt

plt.hist(df['bins'], bins=3)


สรุป

Data binning เป็นเทคนิคการประมวลผลข้อมูลเบื้องต้น โดยไว้ใช้สำหรับการหาค่าที่ missing valuesformattingnormalization and standardization


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


REF

data-preprocessing-with-python


image by

Histogram vector created by pikisuperstar - www.freepik.com

แวะมาทักทายกันได้
donate

Categories: Review , Research Tags: #Data Science , 2697