در دنباله نوشته هایی درباره تبدیل داده های رسته ای (Categorical Data) به شمارهای صفر و یک که در الگوریتم های یادگیری ماشین و شبکه های عصبی و یادگیری عمیق به کار می روند، در این نوشته می خواهیم ویژگی از ماژول Pandas برای ساخت متغیرهای Dummy را بگوییم.

اداره کردن داده های رسته ای – کد گذاری One-Hot

کلاس های LabelEncoder و OneHotEncoder در ماژول Scikit-Learn

برای این نوشته می خواهیم از مجموعه داده فروش از اینجا برای ساخت متغیرهای Dummy کمک بگیریم. مجموعه داده فروش دارای چندین ویژگی است که در شکل زیر نشان داده شده اند. در میان آنها برخی ویژگی ها مانند sx (یا sex) و rk (یا rank) و dg (یا degree) مقدارهای رسته ای دارند و باید پیش از به کارگیری آنها در الگوریتم، آنها را به داده های شماره ای تبدیل کنیم.

در کد زیر مجموعه داده ای با فرمت dat را از نشانی URL به کمک متد ()read_table خوانده که مقدار برگشتی آن یک دیتا فریم در Pandas است. توجه کنید متغیر dataframe از کلاس DataFrame است و از این رو، سپس به کمک متد ()head از کلاس DataFrame، پنج سطر آغازین آن را نمایش داده ایم.

متد get_dummies از Pandas

برای تبدیل متغیرهای رسته ای مانند ستون sx در این مجموعه داده در کتابخانه Pandas باید از متد ()get_dummies کمک بگیریم. در کد زیر ستون sx از دیتافریم dataframe را به کمک get_dummies به متغیر Dummy تبدیل کرده ایم. توجه کنید چون متغیر sx تنها دارای دو مقدار female و male است، پس متغیر Dummy ساخته شده تنها دارای دو شماره صفر و یک است.

در کد بالا به رشته female شماره 1 و به رشته male شماره 0 اخصتاص داده شده است. در کد زیر می خواهیم متغیر ساخته شده به نام dummy را به پایان دیتافریم dataframe می افزاییم. برای این کار و بر پایه نوشته نمایش یکپارچه داده در پایتون توسط DataFrame از متد ()contact کمک گرفته ایم.