۱۰ مثال برای تسلط بر طرح‌های توزیع با Python Seaborn

شکل ۱. نمودارهای توزیع
شکل ۱. نمودارهای توزیع
منتشر‌شده در: towardsdatascienceبه تاریخ ۹ ژوئن ۲۰۲۱
لینک منبع 10 Examples to Master Distribution Plots with Python Seaborn

اولین گام هر محصول داده باید درک داده‌های خام باشد. برای محصولات موفق و کارآمد، این مرحله بخش قابل‌توجهی از گردش کار کل را اشغال می‌کند.

چندین روش برای درک و بررسی داده‌ها وجود دارد. یکی از آن‌ها ایجاد تصویرسازی داده‌ها است. آن‌ها به ما کمک می‌کنند تا هم داده‌ها را کشف کنیم و هم آن‌ها را توضیح دهیم.

با ایجاد تجسم‌های مناسب و به خوبی طراحی‌شده، می‌توانیم ساختار اساسی و روابط درون داده‌ها را کشف کنیم.

نمودارهای توزیع برای تجزیه و تحلیل داده‌های اکتشافی اهمیت کمی دارند. آن‌ها به ما کمک می‌کنند تا تا ناهمواری ها و انحرافات را تشخیص دهیم، یا یک نمای کلی از معیارهای گرایش مرکزی (میانگین، میانه، و حالت) به دست آوریم.

در این مقاله، ما بیش از ۱۰ مثال برای تسلط بر چگونگی ایجاد نمودارهای توزیع با کتابخانه سیبورن برای پایتون خواهیم داشت. برای مثال، ما از یک نمونه کوچک از مجموعه داده مسکن ملبورن موجود در کاگل استفاده خواهیم کرد.

بیایید با وارد کردن کتابخانه‌ها و خواندن مجموعه داده‌ها به یک چارچوب داده Pandas شروع کنیم.

import pandas as pd
import seaborn as sns
sns.set(style="darkgrid", font_scale=1.2)df = pd.read_csv(
"/content/melb_housing.csv",
usecols=["Regionname", "Type", "Rooms", "Distance", "Price"]
)df.head()

این مجموعه داده شامل برخی از ویژگی‌های خانه‌ها در ملبورن به همراه قیمت آن‌ها است.

تابع توزیع سیبورن امکان ایجاد سه نوع مختلف از نمودارهای توزیع را فراهم می‌کند که عبارتند از:

  • هیستوگرام
  • طرح Kde (تخمین تراکم هسته)
  • نمودار Ecdf

ما فقط باید پارامتر نوع را تنظیم کنیم تا نوع طرح را انتخاب کنیم.

مثال ۱

مثال اول ایجاد یک هیستوگرام پایه است. این روش محدوده ارزش متغیرهای پیوسته را به سطل‌های گسسته تقسیم می‌کند و نشان می‌دهد که چند مقدار در هر سطل وجود دارد.

sns.displot(
data=df,
x="Price",
kind="hist",
aspect=1.4
)

ما نام چارچوب داده را به پارامتر داده منتقل می‌کنیم. پارامتر x نام ستون را باید رسم کرد. پارامتر ابعاد نسبت عرض به ارتفاع اندازه را تنظیم می‌کند. این امکان وجود دارد که ارتفاع را نیز تغییر دهید.

مثال ۲

در مثال اول، به وضوح می‌بینیم که نقاط پرت در ستون قیمت وجود دارند. هیستوگرام یک دنباله کشیده به سمت راست دارد که نشان می‌دهد تعداد کمی خانه با قیمت‌های بسیار بالا وجود دارد.

یک روش برای کاهش اثر چنین داده‌های پرت، گرفتن لگاریتم مقادیر است. تابع توزیع می‌تواند این عملیات را با استفاده از پارامتر مقیاس-لگاریتمی انجام دهد.

sns.displot(
data=df,
x="Price",
kind="hist",
aspect=1.4,
log_scale=10
)

قیمت به عنوان قدرت ۱۰ نشان داده می‌شود. اکنون ما دید بهتری از توزیع قیمت خانه‌ها داریم.

مثال ۳

همچنین می‌توانیم تعداد سطل‌های موجود در هیستوگرام را تنظیم کنیم. در برخی موارد، ترجیح داده می‌شود که تعداد سطل‌های کمتری داشته باشیم به طوری که یک مرور ساختار یافته‌تر به دست آوریم.

پارامتری که برای این تنظیم استفاده می‌شود، سطل‌ها هستند.

sns.displot(
data=df,
x="Price",
kind="hist",
aspect=1.4,
log_scale=10,
bins=20
)

مثال ۴

این مجموعه داده همچنین شامل متغیرهای قطعی است. به عنوان مثال، ستون نوع دارای سه دسته است که عبارتند ازh (خانه) ، t (خانه شهری) و u (واحد). ممکن است لازم باشد توزیع هر نوع را به طور جداگانه بررسی کنیم.

یک گزینه این است که آن‌ها را بارنگ‌های مختلف در یک تجسم یک‌سان نشان دهید. ما فقط باید نام ستون را به پارامتر رنگ منتقل کنیم.

sns.displot(
data=df,
x="Price",
hue="Type",
kind="hist",
aspect=1.4,
log_scale=10,
bins=20
)

این نمودار دو بخش از اطلاعات را در اختیار ما قرار می‌دهد:

  • اندازه هر دسته با توجه به تعداد خانه‌ها. گروه h بزرگ‌ترین گروه است.
  • توزیع قیمت خانه‌ها در هر دسته.

مثال ۵

گزینه دیگر برای بررسی توزیع برای هر دسته به صورت جداگانه، ایجاد نمودارهای جداگانه است. ما می‌توانیم از پارامتر مجموع یا ردیف برای این کار استفاده کنیم. یک نمودار فرعی برای هر دسته در ستون مربوطه وجود خواهد داشت.

sns.displot(
data=df,
x="Price",
col="Type",
kind="hist",
aspect=1.4,
log_scale=10,
bins=20
)

مثال ۶

تابع گسسته همچنین اجازه ایجاد هیستوگرام‌های دو بعدی را می‌دهد. بنابراین، ما یک مرور کلی از توزیع مشاهدات (مثلا ردیف‌ها) با توجه به مقادیر به‌دست‌آمده در دو ستون به دست می‌آوریم.

بیایید یکی از آن‌ها را با استفاده از ستون‌های قیمت و فاصله ایجاد کنیم. ما فقط نام‌های ستون را به پارامترهای x و y منتقل می‌کنیم.

sns.displot(
data=df,
x="Price",
y="Distance",
col="Type",
kind="hist",
height=5,
aspect=1.2,
log_scale=(10,0),
bins=20
)

مناطق تاریک‌تر متراکم‌تر هستند، بنابراین حاوی مشاهدات بیشتری هستند. به نظر می‌رسد که هر دو ستون یک توزیع نرمال دارند چون مناطق متراکم در مرکز قرار دارند.

ممکن است متوجه شده‌باشید که ما از یک تاپل به عنوان استدلالی برای پارامتر مقیاس-لگاریتمی استفاده کرده‌ایم. بنابراین، ما می‌توانیم مقیاس متفاوتی را برای هر ستون عبور دهیم.

مثال ۷

نمودارهایKde را می توان برای تجسم توزیع متغیرها نیز به کار برد. آن‌ها کاملا شبیه به هیستوگرام‌ها هستند. با این حال، یک نمودار Kde نشان‌دهنده توزیع با استفاده از یک منحنی تراکم احتمال پیوسته به جای سطل‌های گسسته است.

پارامتر نوع به عنوانkde برای تولید پلات‌های kde تنظیم شده‌است.

sns.displot(
data=df,
x="Price",
kind="kde",
aspect=1.4,
log_scale=10
)

مثال ۸

مشابه با هیستوگرام‌ها، نمودارهای kde را می توان به طور جداگانه برای دسته‌های مختلف ترسیم کرد. مجموعه داده ما شامل اطلاعات منطقه‌ای خانه‌ها است. بیایید بررسی کنیم که قیمت در مناطق مختلف چگونه تغییر می‌کند.

sns.displot(
data=df,
x="Price",
hue="Regionname",
kind="kde",
height=6,
aspect=1.4,
log_scale=10
)

به نظر می‌رسد که منطقه متروپولیتن جنوبی بالاترین میانگین قیمت خانه را دارد.

مثال ۹

روش دیگر برای بررسی توزیع یک متغیر، استفاده از یک نمودار است. این نمودار نشان‌دهنده نسبت یا تعداد مشاهداتی است که در زیر هر مقدار منحصر به فرد در ستون مورد نظر قرار می‌گیرند.

این نوعی تجسم مجموع تجمعی است. در نتیجه، می‌توانیم محدوده مقادیر متراکم‌تر را مشاهده کنیم.

sns.displot(
data=df,
x="Distance",
kind="ecdf",
height=6,
aspect=1.4,
stat="count"
)

محدوده ارزشی که در آن شیب منحنی بالا است با مشاهدات بیشتر پر شده‌است. به عنوان مثال، ما خانه‌های زیادی با فاصله بیشتر از ۳۰ نداریم. بر خلاف این، تعداد زیادی خانه در محدوده فاصله بین ۱۰ تا ۱۵ خانه وجود دارد.

مثال ۱۰

نمودارهایecdf از پارامترهای رنگ، مجموع، و ردیف نیز پشتیبانی می‌کنند. بنابراین ما می‌توانیم توزیع بین دسته‌های مختلف در یک ستون را تشخیص دهیم.

sns.displot(
data=df,
x="Distance",
kind="ecdf",
hue="Type",
height=6,
aspect=1.4,
stat="count"
)

نتیجه‌گیری

برای تجزیه و تحلیل داده‌ها یا وظایف یادگیری ماشینی، بسیار مهم است که در مورد توزیع متغیرها یاد بگیریم (برای مثال، ویژگی‌ها). نحوه برخورد ما با وظایف داده شده ممکن است به توزیع بستگی داشته باشد.

در این مقاله، ما دیده‌ایم که چگونه از تابع توزیع سیبورن برای تجزیه و تحلیل توزیع قیمت و ستون‌های فاصله استفاده کنیم.

از مطالعه شما متشکرم.

این متن با استفاده از ربات مترجم مقاله دیتاساینس ترجمه شده و به صورت محدود مورد بازبینی انسانی قرار گرفته است.در نتیجه می‌تواند دارای برخی اشکالات ترجمه باشد.
مقالات لینک‌شده در این متن می‌توانند به صورت رایگان با استفاده از مقاله‌خوان ترجمیار به فارسی مطالعه شوند.