در سری مقالات ابزار برتر یادگیری علم داده در سال 2020 به معرفی بهترین ابزار برای یادگیری در حوزه علم داده که به نوعی این روزها جزو ترند فنون یادگیری هستند، پرداختیم. در قسمت اول به معرفی ابزار یادگیری ماشین که عبارتند از: Scikit Learn و Weka، در قسمت دوم به برترین و پرکاربردترین زبان های برنامه نویسی مانند Python و R و در قسمت سوم به ابزار یادگیری عمیق مانند TensorFlow، Keras و Pythorch پرداختیم. در این قسمت از مقاله سعیمان بر این است که بهترین کتابخانههای مصورسازی حال حاضر که بیش از دیگر موارد، مورد استفاده قرار میگیرند و کاربردی هستند را معرفی نماییم. با منظومه ایرانیان در این مقاله همراه باشید.
مصورسازی (Data Visualization) به چه معناست؟
مصورسازی یا به عبارتی دیگر، داده نمایی و یا گزارش تمام داده های جمع آوری شده در غالب گراف، نمودار یا هر نوع المان آماری دیگر را Data Visualization می نامند. به بیانی دیگر، مصورسازی داده ها نوعی از ارائه گرافیکی اطلاعات و دیتا با کمک استفاده از المان های گرافیکی مانند چارت ها، گراف ها و نقشه ها است (منبع: www.tableau.com) . مصورسازی در واقع آمیخته ای از علم و هنر است که می توان در یک لحظه، میلیون ها و حتی میلیاردها داده را در به صورتی برای ذهن انسان آماده سازی نمود که قدرت تحلیل آن را داشته باشد. به طور طبیعی، مغز انسان در آن واحد توانایی درک بیش از یک واحد اطلاعات را ندارد پس مصورسازی داده ها به یاری انسان آمده و حجم وسیعی از داده ها که به چندین اگزابایت در دقیقه می رسد را به صورتی برای انسان به نمایش می گذارد که به مغز او توانایی تحلیل و بررسی این حجم از اطلاعات را در لحظه می دهد. برخی از ویژگی های داده نمایی عبارتند از: سرعت بالا در ارائه اطلاعات حجیم و وسیع، امکان نمایش سریع و هنرمندانه اطلاعات، خلاقیت در تصمیم گیری سیستماتیک، برقراری آسان ارتباط بین انسان و ماشین و ... که در دنیای Big Data حائز اهمیت بسیار زیادی می باشند. با نگاهی به فرهنگ انسانی و ویژگی های آناتومیکال انسان به راحتی می توان دریافت که انسان موجودی بصری است به همین دلیل تبلیغات، برنامه های تلویزیونی، بیلبوردها و تصاویر به راحتی در ذهن انسان باقی می مانند و این صنایع روز به روز در حال پیشرفت و انتخاب مسیرهای جدید برای پیشبرد اهداف خود هستند. چشم انسان به دنبال رنگ ها می گردد و اشکال هندسی را در کسری از ثانیه از هم تمایز می دهد. این دایره است، این مربع است، رنگ آبی با قرمز متفاوت است و ...
برای مصورسازی داده ها، از نمودارهای بسیار متنوعی استفاده می شود که در ادامه برخی از آنها را مشاهده می نمایید.
زمانیکه در مورد مصورسازی داده ها سخن می گوییم، احتمالا اولین چیزی که به ذهن خطور می کند، گراف ها و نمودارهایی که در اشگال مختلف میله ای، دایره ای و ... هستند، می باشند. در حالیکه این نمودارها، بخشی جدایی ناپذیر از تجسم داده ها و نقطه مشترک برای بسیاری از تصاویر گرافیکی ارائه شده برای آنالیز دیتا می باشند، اما به زبان ساده می توان گفت که این نمودارها تنها نوک کوه یخ هستند و مصورسازی داده ها، دامنه ای بسیار وسیعتر و گسترده تر دارد که روش های متمادی را در بر می گیرد.
متداولترین روش های مصورسازی داده چارت ها، جداول ، گراف ها، نقشه ها، اینفوگرافیک ها و داشبوردها هستند که به صورت اختصاصی تر عبارتند از: نمودارهای مساحتی، نمودارهای میله ای، نمودارهای جعبه ای، گراف های گلوله ای، فضاهای حبابی، کارتوگرام، نمایش دایره ای، نمودارهای نقطه ای، نقشه های گرمایی، چارت های گانت، هیستوگرام، ماتریکس ها، گراف های درختی، اسکاترهای دوبعدی یا سه بعدی، تایم لاین ها، نمودارهای گوه ای و ...
برای ترسیم هر یک از این روش های مصورسزی داده به کمک نرم افزارها و برنامه های تصویرسازی نیازمندیم که کتابخانه های زیادی برای این منظور در زبان های مختلف مورد استفاده قرار می گیرند از جمله: کتابخانه های NumPy، SciPy، Pandas، Ipython و Matplotlib که جزو کتابخانه های پایتون هستند. این روزها، کتابخانه های Matplotlib و Seaborn جزو پرکاربردترین کتابخانه هایی هستند که در این زمینه مورد استفاده قرار می گیرند. با منظومه همراه باشید تا به بررسی جزئی هر یک از این کتابخانه ها بپردازیم:
8. کتابخانه مصورسازی Matplotlib
کتابخانه Matplotlib یکی از کتابخانه های استاندارد پایتون برای مصورسازی داده ها می باشد که برای رسم نمودارهای دو بعدی مورد استفاده قرار می گیرد. این کتابخانه در مقایسه با کتابخانه های دیگر پایتون که در بالا به آنها اشاره شد، بسیار ساده و سطح پایین تر است و برای رسم نمودارهای پیچیده باید دستورات زیادی در پایتون اضافه گردد اما یکی از بهترین انتخاب ها برای رسم نمودارهای ساده تر است که بسیار پرکاربرد می باشد. این کتابخانه توسط "جان هانتر" و همکارانش برای ایجاد نمودارها و شکل های با کیفیت ایجاد گردید که قادر به افزودن جزئیات بسیار به نمودارها و گراف ها می باشد. برخی از مفاهیم و کارکردهای اصلی این کتابخانه عبارتند از:
- شکل ها و محورها (Figure and axes)
شکل ها و محورها در کتابخانه Matplotlib توسط دستور Subplots() به دست می آیند.
- نقشه کشیدن (Plotting)
اولین چیزی که در کشیدن نقشه به آن نیاز داریم، دیتا می باشد. مقدارهای مورد نظر برای داده ها که به ترسیم نقشه برای آنها نیاز داریم توسط X و Y تعیین می شوند که بعد از آنها پرانتز گذاشته می شود و داخل پرانتز می توان از مقادیری مانند میزان پراکندگی استفاده نمود.
- بردار
شکل ها و محورهایی که به کمک دستور Subplot() ترسیم می شوند، به مشخصات و مقادیری نیاز دارند که توسط دستور Axes.set() مشخص می شوند. این مشخصات عبارتند از: لیبل محورها، مقادیر مینیمم و ماکزیمم و مقیاس بندی محورها و ...
در مرحله آخر، از دستور Pyplot.show() برای رسم و نمایش گراف استفاده می شود.
به مثال زیر توجه نمایید تا کاربرد دستوراات گفته شده در بالا را به صورت کامل مشاهده نمایید.
9. مصورسازی آماری به کمک ابزار Seaborn
Seaborn، یکی از کتابخانه های پایتون است که مبتنی بر Matplotlib می باشد. از آنجایی که همانطور که گفته شد این کتابخانه در مقایسه با کتابخانه های دیگر بسیار ساده و سطح پایین است، از همین رو برنامه نویسان بر آن شدند تا این کتابخانه را ارتقا دهند اما بسیاری از کاربران Matplotlib را به همان شکل ابتدایی می پسندیدند و عقیده داشتند که به ابزاری بسیار کاربردی تبدیل شده است که گستردگی آن می تواند از میزان محبوبیت آن بکاهد بنابراین Seaborn متولد شد. این کتابخانه اینترفیس یا رابطی گرافیکی با سطح بالا برای رسم داده نمایی های گرافیکی و جذاب را برای کاربر فراهم می آورد که می تواند در کاربردهای بسیاری مورد استفاده قرار گیرد.
کتابخانه Seaborn در مقایسه با Matplotlib بسیار گسترده است که وارد شدن به آن به مثابه وارد شدن به دریایی از دستورات و اطلاعات می باشد که برای آشنایی ابتدایی با آنها می توانید یادداشت های معرفی این کتابخانه را در هنگام نصب مطالعه نمایید.
ایده اصلی Seaborn این است که دستورات سطح بالایی را ایجاد کند تا بتواند انواع مختلفی از طرح های گرافیکی را برای نمایش اطلاعات آماری ارائه نماید. در ادامه برخی از دستورات Seaborn را مورد مطالعه قرار می دهیم.
- هیستوگرام و تراکم (histogram & densities)
در تجسم داده های آماری و برای نمایش میزان تراکم در هر نقطه و نمودارهای هیستوگرامی، Seaborn از دستور() Sns.kdeplot و Sns.distoplot()استفاده می نماید.
در دستورات بالا می توانیم توزیع های مشترک و توزیع های حاشیه ای را با استفاده از دستور Sns.jointplot() همزمان با هم ببینیم. برای نمایش داده های بالا، اگر بخواهیم از این دستور استفاده نماییم می توانیم ابتدا رنگ پس زمینه را به صورت سفید انتخاب کنیم سپس اقدام به رسم گراف بنماییم.
پارامترهای دیگری نیز وجود دارند که می توانیم به این دستور اضافه نماییم تا نماهای متفاوتی به گراف خود ببخشیم به عنوان مثال از نموداری مبتنی بر شش ضلعی استفاده نماییم.
- نمودارهای جفت (Pair Plots)
زمانی که نمودارهای مشترک را به مجموعه داده های با ابعاد بزرگ تعمیم می دهید، می توانید این کار را با Pair Plot انجام دهید. این ابزار یکی از کاربردی ترین ابزارها برای دیتاهای چند بعدی و زمانی که قصد دارید تا همه مقادیر را بر حسب هم به نمایش بگذارید، است. به مثال زیر توجه نمایید.
- نمودارهای فاکتوری (Factor plots)
نمودارهای فاکتوری کاربردهای متفاوتی دارند. یکی از این کاربردها، نمایش توزیع پارامترها بر اساس پارامترهای دیگر است. به مثال زیر توجه نمایید:
- توزیع های مشترک (Joint distributions)
همانطور که در نمودارهای جفتی اشاره کردیم، از دستور Sns.jointplot برای نمایش توزیع هایمشترک بین مجموعه داده های مختلف به همراه توزیع های حاشیه ای مرتبط استفاده نماییم.
- نمودارهای میله ای (Bar plots)
سری های زمانی را می توان با استفاده از دستور Sns.factorplot() رسم نمود. در مثال زیر اطلاعات مربوط به سیاره ها را در نموداری میله ای نمایش داده ایم.
جمع بندی:
به طور کلی کتابخانه ها و ابزارهای بسیار متنوعی برای مصورسازی داده ها مورد استفاده قرار می گیرند که هر یک از آنها مزیت ها و معایب مختص به خود را دارند اما Seaborn در دنیای امروز بیش از ابزار دیگر مورد استفاده قرار می گیرد و شاید به جرات بتوان گفت که در هیچ زمینه ای، دست کاربر را خالی باقی نمی گذارد پس برای کسانی که نیازمند به یادگیری ابزار داده نمایی هستند و یا به این زمینه علاقه دارند یکی از بهترین انتخاب ها محسوب می شود.
نظر دهید
با استفاده از فرم نظردهی زیر به بهبود خدمات کمک کنید.