วิธีสำรวจและสรุปตัวแปรตามหมวดหมู่ใน Dataframe ด้วย Python
ในฐานะนักวิทยาศาสตร์ข้อมูล สิ่งสำคัญคือต้องเข้าใจตัวแปรในชุดข้อมูลของคุณ และดูว่าตัวแปรเหล่านั้นเกี่ยวข้องกันอย่างไร ตัวแปรเชิงหมวดหมู่ซึ่งรับค่าจำนวนจำกัดสามารถให้ข้อมูลเชิงลึกที่มีค่าในข้อมูลได้ เราจะสำรวจวิธีการระบุและสรุปตัวแปรหมวดหมู่ใน dataframe โดยใช้ Python
ก่อนอื่น เราจะเริ่มต้นด้วยการนำเข้าไลบรารีที่จำเป็น:
นำเข้า numpy เป็น np
นำเข้า pandas เป็น pd
นำเข้า seaborn เป็น sns
นำเข้า matplotlib.pyplot เป็น plt
ต่อไปเราจะโหลดชุดข้อมูลลงในดาต้าเฟรม สำหรับตัวอย่างนี้ เราจะใช้ชุดข้อมูล Titanic จากห้องสมุด Seaborn:
df = sns.load_dataset("ไททานิค")
ตอนนี้มาสร้างรายการcat_colsที่มีชื่อของคอลัมน์หมวดหมู่ทั้งหมดในดาต้าเฟรม เราสามารถทำได้โดยการวนซ้ำผ่านคอลัมน์ของ dataframe และตรวจสอบว่าประเภทข้อมูลเป็น "หมวดหมู่", "วัตถุ" หรือ "บูล":
cat_cols = [col สำหรับ col ใน df.columns if str(df[col].dtypes) ใน ["หมวดหมู่", "วัตถุ", "บูล"]]
นอกจากคอลัมน์ที่เป็นหมวดหมู่เหล่านี้แล้ว เราอาจต้องการพิจารณาคอลัมน์ตัวเลขที่มีค่าเฉพาะจำนวนเล็กน้อยเป็นตัวแปรตามหมวดหมู่ที่เป็นไปได้ เราสามารถสร้างรายการnum_but_catสำหรับคอลัมน์เหล่านี้ได้โดยการวนซ้ำผ่านคอลัมน์ตัวเลข (คอลัมน์ที่มีประเภทข้อมูล "int64" หรือ "float") และตรวจสอบว่ามีค่าที่ไม่ซ้ำกันน้อยกว่า 10 ค่าหรือไม่ (จำนวน 10 ที่เรากำหนดที่นี่อาจแตกต่างกันไปขึ้นอยู่กับ สถานการณ์ คุณสามารถระบุได้โดยการประมาณชุดข้อมูลที่คุณพบ):
num_but_cat = [col for col in df.columns if df[col].nunique() < 10 and df[col].dtypes in [“int64”, “float”]]
ในทางกลับกัน บางคอลัมน์อาจถูกระบุว่าเป็นหมวดหมู่ แต่จริง ๆ แล้วอาจเป็นตัวแปรที่เป็นตัวเลข ตัวอย่างเช่น คอลัมน์ที่มี ID หรือชื่อเฉพาะอาจไม่มีความหมายใดๆ และไม่ควรถือเป็นหมวดหมู่ เราสามารถสร้างรายการcat_but_numสำหรับคอลัมน์เหล่านี้ได้โดยการวนซ้ำผ่านคอลัมน์ที่เป็นหมวดหมู่ (คอลัมน์ที่มีประเภทข้อมูล "หมวดหมู่" หรือ "วัตถุ") และตรวจสอบว่ามีค่าที่ไม่ซ้ำกันมากกว่า 20 ค่าหรือไม่ ตัวเลข 20 แสดงไว้เป็นตัวอย่าง และเมื่อคุณเห็นข้อมูลที่มีรหัสเฉพาะมากเกินไปในชุดข้อมูลที่คุณสนใจ คุณต้องระบุตัวเลขเพื่อตัดสินใจว่าข้อมูลนั้นมีความหมายหรือไม่มีความหมาย:
cat_but_num = [col for col in df.columns if df[col].nunique() > 20 and str(df[col].dtypes) in ["หมวดหมู่", "วัตถุ"]]
ตอนนี้เราได้ระบุคอลัมน์ที่เป็นหมวดหมู่แล้ว เราสามารถสร้างรายการขั้นสุดท้ายcat_colsที่มีคอลัมน์ที่เป็นหมวดหมู่จริงทั้งหมดรวมถึงคอลัมน์ตัวเลขที่อาจถือเป็นหมวดหมู่ได้ เราสามารถทำได้โดยการรวม รายการ cat_colsและnum_but_catจากนั้นลบคอลัมน์ใดๆ ที่อยู่ในcat_but_num:
cat_cols = cat_cols + num_but_cat
cat_cols = [col สำหรับ col ใน cat_cols ถ้า col ไม่อยู่ใน cat_but_num]
ตัวแปรเชิงหมวดหมู่มีความสำคัญในการวิเคราะห์ข้อมูลเนื่องจากสามารถให้ข้อมูลเชิงลึกที่มีค่าเกี่ยวกับความสัมพันธ์ระหว่างตัวแปรและลักษณะของข้อมูล ตัวอย่างเช่น ในชุดข้อมูลไททานิค ตัวแปรตามหมวดหมู่ "เพศ" และ "คลาส" อาจเกี่ยวข้องกับตัวแปร "รอดชีวิต" ซึ่งบ่งชี้ว่าผู้โดยสารรอดชีวิตจากการจมของไททานิคหรือไม่ จากการตรวจสอบจำนวนและอัตราส่วนของตัวแปรเหล่านี้ เราสามารถเข้าใจปัจจัยต่างๆ ที่อาจส่งผลต่อการรอดชีวิตของผู้โดยสารได้ดีขึ้น
นอกจากนี้ ตัวแปรตามหมวดหมู่สามารถใช้เป็นตัวทำนายในโมเดลแมชชีนเลิร์นนิง เช่น แบบจำลองการจัดหมวดหมู่หรือแบบจำลองการถดถอย ด้วยการเข้ารหัสตัวแปรตามหมวดหมู่และรวมไว้เป็นคุณสมบัติอินพุต เราสามารถฝึกโมเดลเพื่อทำการทำนายตามตัวแปรเหล่านี้ได้
มีเหตุผลบางประการที่ทำให้การระบุตัวแปรหมวดหมู่ในชุดข้อมูลมีความสำคัญ:
- ตัวแปรเชิงหมวดหมู่สามารถให้ข้อมูลเชิงลึกที่มีค่าเกี่ยวกับความสัมพันธ์ระหว่างตัวแปรและลักษณะของข้อมูล การตรวจสอบจำนวนและอัตราส่วนของหมวดหมู่ต่างๆ ทำให้เราเข้าใจปัจจัยต่างๆ ที่อาจเกี่ยวข้องกับผลลัพธ์หรือปรากฏการณ์หนึ่งๆ ได้ดียิ่งขึ้น
- ตัวแปรตามหมวดหมู่สามารถใช้เป็นตัวทำนายในโมเดลแมชชีนเลิร์นนิง ด้วยการเข้ารหัสตัวแปรตามหมวดหมู่และรวมไว้เป็นคุณสมบัติอินพุต เราสามารถฝึกโมเดลเพื่อทำการทำนายตามตัวแปรเหล่านี้ได้
- ตัวแปรตามหมวดหมู่อาจต้องการการดูแลเป็นพิเศษในการวิเคราะห์ข้อมูลและการสร้างภาพ ตัวอย่างเช่น อาจจำเป็นต้องเข้ารหัสหรือแปลงเพื่อใช้ในการทดสอบหรือพล็อตทางสถิติบางอย่าง





































![รายการที่เชื่อมโยงคืออะไร? [ส่วนที่ 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)