مصورسازی داده با Seaborn: راهنمای جامع
Seaborn یک کتابخانه مصورسازی داده در پایتون است که بر پایه Matplotlib ساخته شده است. Seaborn رابطی سطح بالاتر برای ایجاد نمودارهای آماری جذاب و آموزنده فراهم میکند. این کتابخانه به ویژه برای کاوش و درک روابط بین متغیرها در مجموعه دادهها مفید است. در این مقاله، به بررسی مفاهیم کلیدی Seaborn، انواع نمودارهای رایج و نحوه استفاده از آن برای مصورسازی دادهها در پروژههای علم داده و یادگیری ماشین خواهیم پرداخت.
پیشنیازها
برای استفاده از Seaborn، باید پایتون و کتابخانههای زیر را نصب داشته باشید:
- پایتون (نسخه 3.6 یا بالاتر توصیه میشود)
- Matplotlib
- NumPy
- Pandas
- Seaborn
میتوانید این کتابخانهها را با استفاده از pip نصب کنید:
pip install matplotlib numpy pandas seaborn
مقدمهای بر Seaborn
Seaborn با ارائه تمها و پالتهای رنگی پیشفرض، به طور خودکار نمودارهای زیباتری نسبت به Matplotlib ایجاد میکند. همچنین، Seaborn توابع خاصی برای مصورسازی انواع مختلف دادهها و روابط بین آنها ارائه میدهد. Seaborn به خوبی با Pandas DataFrames ادغام میشود، که این امر کار با دادهها را بسیار آسانتر میکند.
انواع نمودارهای رایج در Seaborn
Seaborn طیف گستردهای از نمودارها را ارائه میدهد. در اینجا به برخی از رایجترین آنها اشاره میکنیم:
1. نمودار توزیع (Distribution Plots)
نمودارهای توزیع برای نمایش توزیع یک متغیر منفرد استفاده میشوند. Seaborn چندین نوع نمودار توزیع را ارائه میدهد:
- Histogram (هیستوگرام): تعداد دفعات وقوع مقادیر مختلف را نشان میدهد.
- Kernel Density Estimate (KDE): تخمین چگالی احتمال را نشان میدهد.
- Displot: ترکیبی از هیستوگرام و KDE را نمایش میدهد.
- Distplot: نسخه قدیمیتر Displot که هنوز هم کاربرد دارد.
مثال:
import seaborn as sns import matplotlib.pyplot as plt # فرض کنید df یک DataFrame با ستون 'age' است sns.displot(df['age'], kde=True) plt.show()
2. نمودار رابطه (Relational Plots)
نمودارهای رابطه برای نمایش رابطه بین دو یا چند متغیر استفاده میشوند.
- Scatter Plot (نمودار پراکندگی): رابطه بین دو متغیر عددی را نشان میدهد.
- Line Plot (نمودار خطی): رابطه بین دو متغیر عددی را با خطوط متصل نشان میدهد.
- Relplot: یک نمودار رابطه انعطافپذیر که میتواند انواع مختلفی از نمودارها را ایجاد کند.
مثال:
sns.scatterplot(x='height', y='weight', data=df) plt.show()
3. نمودار دستهای (Categorical Plots)
نمودارهای دستهای برای نمایش رابطه بین یک یا چند متغیر دستهای و یک متغیر عددی استفاده میشوند.
- Bar Plot (نمودار میلهای): مقادیر میانگین یا تعداد مقادیر را برای هر دسته نشان میدهد.
- Count Plot (نمودار شمارش): تعداد مقادیر را برای هر دسته نشان میدهد.
- Box Plot (نمودار جعبهای): توزیع دادهها را برای هر دسته نشان میدهد (شامل میانه، چارکها و مقادیر پرت).
- Violin Plot (نمودار ویولن): توزیع دادهها را برای هر دسته نشان میدهد (شبیه به نمودار جعبهای، اما با نمایش چگالی احتمال).
- Catplot: یک نمودار دستهای انعطافپذیر که میتواند انواع مختلفی از نمودارها را ایجاد کند.
مثال:
sns.boxplot(x='gender', y='salary', data=df) plt.show()
4. نمودارهای ماتریسی (Matrix Plots)
نمودارهای ماتریسی برای نمایش رابطه بین چندین متغیر به صورت همزمان استفاده میشوند.
- Heatmap (نقشه حرارتی): رابطه بین دو متغیر را با استفاده از رنگها نشان میدهد.
- Pairplot: نمودارهای پراکندگی را برای همه جفتهای متغیرها در یک DataFrame ایجاد میکند.
مثال:
sns.heatmap(df.corr(), annot=True) plt.show()
تنظیمات ظاهری نمودارها
Seaborn امکانات زیادی برای تنظیم ظاهر نمودارها فراهم میکند. برخی از تنظیمات رایج عبارتند از:
- پالت رنگی (Color Palette): انتخاب رنگهای مورد استفاده در نمودار.
- تم (Theme): انتخاب یک تم پیشفرض برای نمودار.
- سبک (Style): انتخاب یک سبک پیشفرض برای نمودار.
- عنوان و برچسبها (Title and Labels): اضافه کردن عنوان و برچسب به نمودار.
- اندازه و فونت (Size and Font): تنظیم اندازه و فونت متن در نمودار.
مثال:
sns.set_style("whitegrid")
sns.set_palette("pastel")
sns.scatterplot(x='height', y='weight', data=df, hue='gender')
plt.title("رابطه بین قد و وزن بر اساس جنسیت")
plt.xlabel("قد (سانتیمتر)")
plt.ylabel("وزن (کیلوگرم)")
plt.show()
استفاده از Seaborn در یادگیری ماشین
Seaborn ابزاری قدرتمند برای مصورسازی دادهها در پروژههای یادگیری ماشین است. میتوانید از Seaborn برای:
- کاوش دادهها (Exploratory Data Analysis – EDA): شناسایی الگوها، روندها و روابط در دادهها.
- انتخاب ویژگی (Feature Selection): شناسایی ویژگیهای مهم برای مدل یادگیری ماشین.
- ارزیابی مدل (Model Evaluation): مصورسازی نتایج مدل و مقایسه عملکرد مدلهای مختلف.
- تشخیص خطا (Error Analysis): شناسایی مواردی که مدل در پیشبینی آنها دچار خطا شده است.
به عنوان مثال، میتوانید از نمودارهای جعبهای برای مقایسه توزیع یک ویژگی برای کلاسهای مختلف استفاده کنید، یا از نمودارهای پراکندگی برای بررسی رابطه بین ویژگیها و متغیر هدف استفاده کنید.
نکات تکمیلی
Seaborn یک کتابخانه بسیار قدرتمند و انعطافپذیر است. برای یادگیری بیشتر، میتوانید به مستندات رسمی Seaborn مراجعه کنید و مثالهای مختلف را بررسی کنید. همچنین، میتوانید از منابع آنلاین و آموزشهای موجود برای یادگیری تکنیکهای پیشرفتهتر مصورسازی داده با Seaborn استفاده کنید.
به یاد داشته باشید که هدف از مصورسازی داده، انتقال اطلاعات به شکلی واضح و قابل فهم است. بنابراین، در انتخاب نوع نمودار و تنظیمات ظاهری آن دقت کنید تا نمودار شما به بهترین شکل ممکن اطلاعات مورد نظر را منتقل کند.

بدون دیدگاه