مصورسازی داده در یادگیری ماشین با پایتون یکی از جنبههای مهم یادگیری ماشین (ML) است؛ چرا که به تحلیل و انتقال الگوها، روندها و بینشهای موجود در دادهها کمک میکند. این مصورسازی شامل ایجاد نمایشهای گرافیکی از دادهها است که میتواند به شناسایی الگوها و روابطی کمک کند که در دادههای خام بهراحتی قابل تشخیص نیستند.
مصورسازی داده ها چیست؟
مصورسازی داده (Data Visualization) نمایش گرافیکی دادهها و اطلاعات است. با کمک مصورسازی دادهها، میتوان ظاهر کلی داده را مشاهده کرد و نوع همبستگی میان ویژگیهای آن را تشخیص داد. این روش سریعترین راه برای بررسی رابطه بین ویژگیها و خروجی است.
اگر میخواهید مهارت عملی خود را در این زمینه تقویت کنید، شرکت در یک دوره تخصصی پایتون به شما کمک میکند تا با کتابخانههای مصورسازی کار کرده و توانایی تحلیل دادهها را بهصورت حرفهای افزایش دهید.
اهمیت مصورسازی دادهها در یادگیری ماشین
مصورسازی دادهها نقش مهمی در یادگیری ماشین (Machine Learning) ایفا میکند. در بسیاری از مراحل فرایند یادگیری ماشین میتوان از آن استفاده کرد. در ادامه به برخی از کاربردهای مصورسازی دادهها در این حوزه اشاره میشود:
-
بررسی و کاوش دادهها: مصورسازی ابزاری ضروری برای کاوش و درک دادهها است. با استفاده از این روش میتوان الگوها، همبستگیها و نقاط پرت را شناسایی کرد. همچنین میتوان مشکلات کیفی داده مانند مقادیر گمشده یا ناسازگاریها را تشخیص داد.
-
انتخاب ویژگیها (Feature Selection): مصورسازی میتواند در انتخاب ویژگیهای مناسب برای مدل یادگیری ماشین مؤثر باشد. با نمایش بصری دادهها و ارتباط آنها با متغیر هدف (Target Variable)، میتوان ویژگیهایی را که ارتباط قوی با خروجی دارند شناسایی کرده و ویژگیهای بیاهمیت را کنار گذاشت.
-
ارزیابی مدل: مصورسازی دادهها در ارزیابی عملکرد مدل یادگیری ماشین کاربرد دارد. روشهایی مانند نمودار ROC، منحنی دقت-بازیابی (Precision-Recall)، و ماتریس درهمریختگی (Confusion Matrix) میتوانند در تحلیل معیارهایی چون دقت، بازخوانی، صحت و امتیاز F1 مؤثر باشند.
-
ارائهی بینشها: مصورسازی دادهها روشی مؤثر برای انتقال نتایج و بینشها به ذینفعانی است که زمینهی فنی ندارند. نمودارهایی مانند نمودار پراکندگی (Scatter Plot)، نمودار خطی و نمودار میلهای میتوانند اطلاعات پیچیده را به شکلی قابل فهم نمایش دهند.
کتابخانههای پرکاربرد پایتون برای مصورسازی دادهها
در یادگیری ماشین، کتابخانههای زیر از جمله محبوبترین ابزارهای پایتون برای مصورسازی دادهها هستند. این کتابخانهها طیف گستردهای از روشهای مصورسازی و گزینههای سفارشیسازی را برای پاسخگویی به نیازها و ترجیحات مختلف ارائه میدهند:
1. Matplotlib
Matplotlib یکی از پرکاربردترین کتابخانههای پایتون برای مصورسازی دادههاست. این ابزار چندسکویی (cross-platform) امکان ترسیم نمودارهای دوبعدی از دادههای موجود در آرایهها را فراهم میکند. Matplotlib یک رابط برنامهنویسی شیگرا (object-oriented API) ارائه میدهد که امکان درج نمودارها در برنامههایی با رابط گرافیکی کاربر (GUI) مانند PyQt، WxPython یا Tkinter را فراهم میسازد. این کتابخانه در محیطهای Python و IPython، نوتبوک Jupyter و همچنین سرورهای وب نیز قابل استفاده است.
2. Seaborn
Seaborn یک کتابخانه متنباز پایتون با مجوز BSD است که یک API سطح بالا برای مصورسازی دادهها از طریق زبان برنامه نویسی پایتون فراهم میکند. این ابزار بر پایه Matplotlib ساخته شده و برای تولید نمودارهای آماری زیبا و تعاملی بسیار مناسب است.
3. Plotly
Plotly یک شرکت فنی مستقر در مونترال است که در زمینه توسعه ابزارهای تحلیل و مصورسازی داده مانند Dash و Chart Studio فعالیت دارد. این شرکت همچنین کتابخانههای متنباز API برای ترسیم نمودار را برای زبانهای برنامهنویسی مختلف از جمله Python، R، MATLAB، JavaScript و سایر زبانها توسعه داده است.
4. Bokeh
Bokeh یک کتابخانه پایتون برای مصورسازی دادههاست. برخلاف Matplotlib و Seaborn که نمودارها را در محیط داخلی پایتون ترسیم میکنند، Bokeh خروجی نمودارها را با استفاده از HTML و JavaScript تولید میکند. به همین دلیل، این کتابخانه گزینهای بسیار مناسب برای طراحی داشبوردهای مبتنی بر وب محسوب میشود.
انواع مصورسازی دادهها
مصورسازی دادهها در یادگیری ماشین را میتوان به دو دسته کلی تقسیم کرد:
-
نمودارهای تکمتغیره (Univariate Plots)
-
نمودارهای چندمتغیره (Multivariate Plots)
در ادامه، هر یک از این دو نوع مصورسازی را بهطور جداگانه بررسی میکنیم.
نمودارهای تکمتغیره: درک مستقل ویژگیها
سادهترین نوع مصورسازی، نمودارهای تکمتغیره هستند. در مصورسازی تکمتغیره میتوان هر ویژگی (Attribute) از مجموعهداده را بهصورت مستقل بررسی کرد. برخی از تکنیکهای پرکاربرد در پایتون برای این نوع مصورسازی عبارتند از:
-
هیستوگرام (Histogram)
-
نمودار چگالی (Density Plot)
-
نمودار جعبهای و خط ریش (Box and Whisker Plot)
در فصلهای مربوطه، این تکنیکها را با جزئیات بررسی خواهیم کرد. در اینجا مروری کوتاه بر آنها داریم.
هیستوگرامها
هیستوگرامها دادهها را در بازههایی موسوم به «بین» (bin) گروهبندی میکنند و یکی از سریعترین روشها برای مشاهده توزیع هر ویژگی در مجموعهداده هستند. برخی از ویژگیهای هیستوگرام عبارتند از:
-
هیستوگرامها تعداد مشاهدات موجود در هر بازه را نمایش میدهند.
-
از شکل توزیع بینها میتوان بهراحتی نوع توزیع داده را تشخیص داد؛ مانند توزیع نرمال (Gaussian)، چولگی (Skewed) یا نمایی (Exponential).
-
هیستوگرامها به شناسایی دادههای پرت (Outliers) نیز کمک میکنند.
مثال
کد زیر نمونهای از اسکریپت پایتون برای ایجاد هیستوگرام است. در این مثال از تابع hist()
روی آرایه NumPy برای تولید هیستوگرام استفاده شده و رسم نمودار با استفاده از کتابخانه matplotlib انجام میشود:
1 2 3 4 5 6 7 8 9 10 |
import matplotlib.pyplot as plt import numpy as np # Generate some random data data = np.random.randn(1000) # Create the histogram plt.hist(data, bins=30, color='skyblue', edgecolor='black') plt.xlabel('Values') plt.ylabel('Frequency') plt.title('Histogram Example') plt.show() |
از آنجا که دادهها بهصورت تصادفی تولید میشوند، ممکن است خروجی برنامه در هر بار اجرا کمی متفاوت باشد.
نمودارهای چگالی (Density Plots)
نمودار چگالی یکی دیگر از روشهای سریع و ساده برای مشاهده توزیع هر ویژگی (Attribute) است. این نمودار شباهت زیادی به هیستوگرام دارد، اما بهجای ستونهای جداگانه، یک منحنی نرم روی بالای هر بازه ترسیم میشود. میتوان گفت نمودارهای چگالی، نسخهی انتزاعی (Abstracted) هیستوگرامها هستند.
مثال
در مثال زیر، یک اسکریپت پایتون نمودار چگالی مربوط به ویژگیهای مجموعهدادهی معروف “iris” را تولید میکند:
1 2 3 4 5 6 7 8 9 10 11 12 |
import seaborn as sns import matplotlib.pyplot as plt # Load a sample dataset df = sns.load_dataset("iris") # Create the density plot sns.kdeplot(data=df, x="sepal_length", fill=True) # Add labels and title plt.xlabel("Sepal Length") plt.ylabel("Density") plt.title("Density Plot of Sepal Length") # Show the plot plt.show() |
با مشاهده خروجی، تفاوت بین نمودارهای چگالی و هیستوگرامها بهوضوح قابل تشخیص است؛ نمودار چگالی نمایی هموار و پیوسته از توزیع داده ارائه میدهد، در حالی که هیستوگرام از ستونهایی مجزا تشکیل شده است.
نمودار جعبهای (Box and Whisker Plots)
نمودار جعبهای که به اختصار Boxplot نیز نامیده میشود، یکی دیگر از روشهای مفید برای بررسی توزیع ویژگیها است. برخی از ویژگیهای این روش عبارتند از:
-
این نمودار ماهیت تکمتغیره (Univariate) دارد و توزیع هر ویژگی را بهطور خلاصه نمایش میدهد.
-
یک خط در میانه جعبه ترسیم میشود که نشاندهنده میانه (Median) دادههاست.
-
یک جعبه اطراف مقادیر صدک ۲۵٪ و ۷۵٪ رسم میشود.
-
خطهای باریک در دو طرف جعبه (Whiskers) گستره دادهها را نشان میدهند.
-
نقاطی که خارج از خطهای باریک قرار دارند، مقادیر پرت (Outliers) هستند. مقادیر پرت معمولاً بیش از ۱.۵ برابر گستره میانی دادهها (IQR) فاصله دارند.
مثال
کد زیر یک نمودار جعبهای را برای مجموعهای از دادههای نمونه ترسیم میکند:
1 2 3 4 5 6 7 8 9 10 11 |
import matplotlib.pyplot as plt # Sample data data = [10, 15, 18, 20, 22, 25, 28, 30, 32, 35] # Create a figure and axes fig, ax = plt.subplots() # Create the boxplot ax.boxplot(data) # Set the title ax.set_title('Box and Whisker Plot') # Show the plot plt.show() |
نمودارهای چندمتغیره: تعامل میان چندین متغیر
نوع دیگری از مصورسازی، نمودارهای چندمتغیره (Multivariate) هستند. با استفاده از این روشها میتوان تعامل و ارتباط میان چندین ویژگی (Attribute) در یک مجموعهداده را درک کرد. برخی از تکنیکهای متداول پایتون برای پیادهسازی مصورسازی چندمتغیره عبارتند از:
-
نمودار ماتریس همبستگی (Correlation Matrix Plot)
-
نمودار ماتریس پراکندگی (Scatter Matrix Plot)
نمودار ماتریس همبستگی (Correlation Matrix Plot)
همبستگی (Correlation) نشاندهنده میزان تغییرات وابسته بین دو متغیر است. با ترسیم نمودار ماتریس همبستگی میتوان مشخص کرد کدام متغیرها با یکدیگر همبستگی بالا یا پایین دارند.
مثال
کد زیر یک نمودار ماتریس همبستگی ایجاد میکند. برای این کار ابتدا با استفاده از تابع corr()
روی یک DataFrame در Pandas ماتریس همبستگی محاسبه میشود، سپس با کمک seaborn و matplotlib ترسیم خواهد شد:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import pandas as pd import seaborn as sns import matplotlib.pyplot as plt # Sample data data = {'A': [1, 2, 3, 4, 5], 'B': [5, 4, 3, 2, 1], 'C': [2, 3, 1, 4, 5]} df = pd.DataFrame(data) # Calculate the correlation matrix c_matrix = df.corr() # Create a heatmap sns.heatmap(c_matrix, annot=True, cmap='coolwarm') plt.title("Correlation Matrix") plt.show() |
همانطور که در خروجی مشاهده میشود، این ماتریس متقارن است؛ به این معنا که بخش پایین-چپ دقیقاً مشابه بخش بالا-راست است.
نمودار ماتریس پراکندگی (Scatter Matrix Plot)
نمودار ماتریس پراکندگی نشان میدهد که یک متغیر تا چه اندازه تحت تأثیر متغیر دیگر قرار دارد یا رابطه میان آنها چگونه است. این نمودار با استفاده از نقاط دوبعدی ترسیم میشود. از نظر مفهوم، نمودارهای پراکندگی شباهت زیادی به نمودارهای خطی دارند؛ زیرا هر دو از محور افقی و عمودی برای نمایش نقاط داده استفاده میکنند.
مثال
در مثال زیر، اسکریپت پایتون نمودار ماتریس پراکندگی مربوط به مجموعهداده معروف Iris را ایجاد میکند. این نمودار با استفاده از تابع scatter_matrix()
روی یک DataFrame در Pandas ساخته شده و با pyplot ترسیم میشود:
1 2 3 4 5 6 7 8 9 |
import pandas as pd import matplotlib.pyplot as plt from sklearn import datasets # Load the iris dataset iris = datasets.load_iris() df = pd.DataFrame(iris.data, columns=iris.feature_names) # Create the scatter matrix plot pd.plotting.scatter_matrix(df, diagonal='hist', figsize=(8, 7)) plt.show() |
در فصلهای بعدی به بررسی برخی از تکنیکهای پرکاربرد و رایج مصورسازی داده در یادگیری ماشین با پایتون خواهیم پرداخت.
راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.
- انتشار: ۳۰ مرداد ۱۴۰۴
دسته بندی موضوعات
- آموزش ارز دیجیتال
- آموزش برنامه نویسی
- آموزش متنی برنامه نویسی
- اطلاعیه و سایر مطالب
- پروژه برنامه نویسی
- دوره های تخصصی برنامه نویسی
- رپورتاژ
- فیلم های آموزشی
- ++C
- ADO.NET
- Adobe Flash
- Ajax
- AngularJS
- apache
- ARM
- Asp.Net
- ASP.NET MVC
- AVR
- Bootstrap
- CCNA
- CCNP
- CMD
- CSS
- Dreameaver
- EntityFramework
- HTML
- IOS
- jquery
- Linq
- Mysql
- Oracle
- PHP
- PHPMyAdmin
- Rational Rose
- silver light
- SQL Server
- Stimulsoft Reports
- Telerik
- UML
- VB.NET&VB6
- WPF
- Xml
- آموزش های پروژه محور
- اتوکد
- الگوریتم تقریبی
- امنیت
- اندروید
- اندروید استودیو
- بک ترک
- بیسیک فور اندروید
- پایتون
- جاوا
- جاوا اسکریپت
- جوملا
- دلفی
- دوره آموزش Go
- دوره های رایگان پیشنهادی
- زامارین
- سئو
- ساخت CMS
- سی شارپ
- شبکه و مجازی سازی
- طراحی الگوریتم
- طراحی بازی
- طراحی وب
- فتوشاپ
- فریم ورک codeigniter
- فلاتر
- کانستراکت
- کریستال ریپورت
- لاراول
- معماری کامپیوتر
- مهندسی اینترنت
- هوش مصنوعی
- یونیتی
- کتاب های آموزشی
- Android
- ASP.NET
- AVR
- LINQ
- php
- Workflow
- اچ تی ام ال
- بانک اطلاعاتی
- برنامه نویسی سوکت
- برنامه نویسی موبایل
- پاسکال
- پایان نامه
- پایتون
- جاوا
- جاوا اسکریپت
- جی کوئری
- داده کاوی
- دلفی
- رباتیک
- سئو
- سایر کتاب ها
- سخت افزار
- سی اس اس
- سی پلاس پلاس
- سی شارپ
- طراحی الگوریتم
- فتوشاپ
- مقاله
- مهندسی نرم افزار
- هک و امنیت
- هوش مصنوعی
- ویژوال بیسیک
- نرم افزار و ابزار برنامه نویسی
- وردپرس