ستون فقرات روشها و مدلهای استفاده شده توسط توسعهدهندگان برای تفسیر و آنالیز دادهها، دیتاست «Dataset» یا مجموعه داده است. مجموعه دادهها شامل حجم زیادی از دادههای با مفهوم است که در یک جدول گروهبندی شدهاند. با توجه به اهمیت دیتاستها در یادگیری ماشین «Machine Learning» و هوش مصنوعی «Artificial Intelligence» در این مقاله به موضوع دیتاست چیست؟ خواهیم پرداخت و انواع، ویژگیهای دیتاستها را همراه با مثال تشریح خواهیم کرد.
مقدمه
امروزه، مجموعه دادهها تقریباً در تمام علوم به دلایل مختلف استفاده میشوند. در این عصر، برای آموزش نسل جوان به تعامل مؤثر با دیتاستها، بسیاری از دانشگاهها مجموعه دادههای خود را بهصورت عمومی منتشر میکنند. بهعنوان مثال، UCI و وبسایتهایی مانند Kaggle و حتی GitHub مجموعه دادههایی منتشر میکنند که توسعهدهندگان میتوانند از آنها برای دستیابی به نتایج موردنظر استفاده کنند. بسیاری از دیتاستها به صورت رایگان به صورت آنلاین در دسترس هستند تا برای توسعه و آزمایش برنامهها، آموزش مدلهای هوش مصنوعی، انجام تجزیه و تحلیل یا انجام پروژه های دیگر استفاده شوند. در ادامه به سوال اصلی این مقاله یعنی دیتاست چیست؟ میپردازیم.
دیتاست چیست؟
دیتاست، مجموعهای از دادههاست که بهصورت یک کل گردآوری شدهاند و توسعهدهندگان میتوانند برای رسیدن به اهداف خود با آن کار کنند. در یک مجموعه داده، ردیفها نشاندهنده تعداد نمونههای داده و ستونها نشاندهنده ویژگیهای دیتاست هستند.
مجموعه دادهها میتوانند از نظر اندازه و پیچیدگی متفاوت باشند و اغلب نیاز به پاکسازی «Data Cleaning» و پیشپردازش «Data Preprocessing» دارند تا کیفیت داده و مناسب بودن آنها برای تحلیل یا مدلسازی تضمین شود. یک نمونه از دیتاست واقعی با نام مجموعه داده Iris را در زیر مشاهده میکنید:
مجموعه داده Iris یا گل زنبق یک دیتاست چند متغیره است که در سال ۱۹۳۶ معرفی شد. این دیتاست شامل ۱۵۰ نمونهی جمعآوری شده از گلهای زنبق است. برای هر یک از نمونهها ۴ ویژگی از گل زنبق اندازهگیری شده است. این ویژگیها شامل طول و عرض کاسبرگ و گلبرگ، بر حسب سانتی متر است. این مجموعه داده به عنوان یک مثال پرکاربرد در زمینههای آماری و یادگیری ماشین مورد استفاده قرار گرفتهاست.
همانطور که در مجموعه داده Iris مشاهده میشود این دیتاست شامل ویژگیهای ورودی و ویژگی خروجی است:
- ویژگیهای ورودی: طول کاسبرگ (Sepal Length)، عرض کاسبرگ (Sepal Width)، طول گلبرگ (Petal Length)، و عرض گلبرگ (Petal Width).
- ویژگی خروجی: گونه (Species) ویژگی خروجی است.
مجموعه دادهها میتوانند در فرمتهای مختلف CSV، Excel، JSON و فایلهای فشرده (zip) ذخیره شوند.
انواع دیتاست
- مجموعه داده عددی «Numerical Dataset»: شامل نقاط داده عددی است که میتوان آنها را با معادلات حل کرد؛ مانند دما، رطوبت و نمرات.
- مجموعه داده دستهای «Categorical Dataset»: شامل دستهبندیهایی مانند رنگ، جنسیت، شغل، بازیها و ورزشها است.
- مجموعه داده وب «Web Dataset»: دادههایی که از طریق فراخوانی API با درخواستهای HTTP ایجاد شده و برای تحلیل دادهها پر میشوند. این مجموعه دادهها معمولاً در فرمت JSON ذخیره میشوند.
- مجموعه داده سری زمانی «Time Series Dataset»: شامل دادههایی در یک بازه زمانی است، مانند تغییرات جغرافیایی زمین در طول زمان.
- مجموعه داده تصویری «Image Dataset»: شامل مجموعهای از تصاویر است و بیشتر برای تشخیص انواع بیماریها یا شرایط قلبی استفاده میشود.
- مجموعه داده مرتب «Ordered Dataset»: شامل دادههایی است که بهصورت رتبهبندی شده مرتب شدهاند، مانند نظرات مشتریان یا امتیازات فیلم.
- مجموعه داده تفکیکشده «Partitioned Dataset»: دادههایی که به بخشهای مختلف یا اعضای مختلف تفکیک شدهاند.
- مجموعه داده مبتنی بر فایل «File-Based Datasets»: دادههایی که در فایلها ذخیره شدهاند، مانند فایلهای Excel با فرمت CSV یا XLSX.
- مجموعه داده دو متغیره «Bivariate Dataset»: شامل دو ویژگی است که مستقیماً به یکدیگر مرتبط هستند؛ مانند قد و وزن.
- مجموعه داده چندمتغیره «Multivariate Dataset»: شامل دو یا چند ویژگی است که به هم مرتبط هستند؛ مانند حضور در کلاس، نمرات تکالیف و نمره کلی دانشآموز.
خصوصیات مجموعه داده
- مرکز داده «Center of Data»: نشاندهنده مقدار »میانی» داده است که معمولاً با میانگین، میانه یا نما اندازهگیری میشود.
- چولگی داده «Skewness of Data»: تقارن توزیع داده را نشان میدهد. چولگی صفر نشاندهنده تقارن کامل است.
- پراکندگی دادهها «Spread Among Data Members»: میزان فاصله نقاط داده از مرکز را نشان میدهد، مانند انحراف معیار یا واریانس.
- وجود مقادیر پرت «Presence of Outliers»: دادههایی که بهطور قابل توجهی خارج از الگوی کلی قرار دارند.
- همبستگی بین دادهها «Correlation Among the Data»: نشاندهنده قدرت و جهت رابطه بین متغیرهای مختلف است.
- نوع توزیع احتمالی «Type of Probability Distribution»: نوع توزیع (مانند نرمال، یکنواخت، دوجملهای) را مشخص میکند که در تحلیل دادهها اهمیت دارد.
ویژگیهای دیتاست ها
- ویژگیهای عددی «Numerical Features»: شامل مقادیر عددی مانند قد و وزن است.
- ویژگیهای دستهای «Categorical Features»: شامل دستههایی مانند جنسیت یا رنگ است.
- متا دیتا «Metadata»: شامل توضیح کلی مجموعه داده، بهویژه در مجموعههای داده بزرگ.
- اندازه داده «Size of the Data»: تعداد ورودیها و ویژگیهای موجود در فایل مجموعه داده را نشان میدهد.
- فرمتبندی دادهها «Formatting of Data»: فرمتهایی مانند JSON، CSV، XML، یا فایلهای Excel.
- متغیر هدف «Target Variable»: ویژگیای که از آن برای پیشبینی خروجیها با تکنیکهای یادگیری ماشین استفاده میشود.
- ورودیهای داده «Data Entries»: مقادیر فردی موجود در مجموعه داده که در تحلیل دادهها نقش کلیدی دارند.
مثالهای مختلف از دیتاستها
اکنون که با متوجه شدیم که دیتاست چیست؟ بر روی مثال بر رو دیتاست ها متمرکز میشویم. مجموعه داده یا دیتاستهای زیادی برای کاربردهای مختلف در سطح اینترنت موجود است. برای دانلود مجموعه دادهها میتوانید به وبسایتهایی مانند Kaggle، UCI Machine Learning Repository و بسیاری وبسایتهای دیگر مراجعه کنید. در ادامه به عنوان مثال چند دیتاست مهم مورد بررسی قرار می گیرند.
مثال ۱: دیتاست Cities and Towns in Tamil Nadu
این دیتاست در Kaggle با عنوان “Cities and Towns in Tamil Nadu – Population statistics” در فرمت فایل CSV موجود است. این مجموعه داده توزیع تراکم جمعیت را در مناطق مختلف تامیل نادو، هند نشان میدهد. این مجموعه داده از یک وبسایت دیگر ارجاع داده شده است. از این مجموعه داده میتوان برای ایجاد نقشههای تراکم جمعیت استفاده کرد.
این نوع مجموعه دادهها برای انجام تصویریسازی روی نقشهها استفاده میشوند.
مثال ۲: دیتاست Iris
یک مثال معروف دیگر، مجموعه داده “Iris” است که آن هم در فرمت CSV موجود است.
دیتاست Iris یک نمونه برای آزمایش مدلهای الگوریتم طبقهبندی یادگیری نظارتشده است و بهطور خاص برای ورود به دنیای یادگیری ماشین ایجاد شده است.
مثال ۳: دیتاست German Credit Risk
یک مثال دیگر از کار با مدلهای بدون نظارت، مجموعه داده German Credit Risk است: این مجموعه داده برای خوشهبندی افراد در آلمان بر اساس برخی ویژگیها مانند کسانی که امتیاز اعتباری خوب دارند یا کسانی که امتیاز اعتباری ضعیف دارند، استفاده میشود.
به این ترتیب، دادهها میتوانند به انواع مختلف خوشهبندی شوند. در این مورد، این مجموعه داده با استفاده از Tableau مورد پردازش قرار گرفته است.
چگونه یک دیتاست ایجاد کنیم؟
در ادامه مقاله دیتاست چیست؟ یاد خواهیم گرفت که چگونه یک دیتاست ایجاد و از آن استفاده کنیم. راههای مختلفی برای ایجاد یک مجموعه داده وجود دارد. یکی از این روشها نوشتن کد Python برای پر کردن مقادیر تصادفی تا اندازه دلخواه و استفاده از آن بهعنوان داده تست برای تحلیل است.
روش دیگر این است که جداول/دادهها را با استفاده از ابزارهای هوش مصنوعی مانند ChatGPT، Perplexity AI یا Bard درخواست کنید تا مجموعه دادهها را تولید کنند. این روش بیشتر برای تولید تعداد زیادی جمله بهمنظور استفاده در مدلهای زبان بزرگ (LLM) انجام میشود. این مدلها اساس مدلهای هوش مصنوعی مولد مانند ChatGPT هستند.
روش ۱: ایجاد دیتاست با پایتون
برای ایجاد یک مجموعه داده، با اجرای یک اسکریپت Python میتوانیم مقادیر و ویژگیها را از پیش تعریف کرده و سپس این مقادیر را در یک محدوده خاص با مقادیر تصادفی پر کنیم، همانطور که در زیر نشان داده شده است:
import pandas as pd import numpy as np import random as rd #Bussiness_type = ['Office_space','Restaurants','Textile_shop','Showrooms','grocery_shop'] Bussiness_type = [1, 2, 3, 4, 5] #Demographics = ['Kids', 'Youth', 'Midde_aged', 'Senior'] Demographics = [1, 2, 3, 4] #Accessibility = ['Bad', 'Fair', 'Good', 'Excellent'] Accessibility = [1, 2, 3, 4] #Competition = ['low', 'medium', 'high'] Competition = [1, 2, 3] Area = [250, 500, 750, 1000, 1500] Rent_per_month = ['5000', '75000', '95000', '10000', '13000', '17000', '20000'] Gross_tax = [2.2, 3.4, 4.5, 5.6, 7.2, 10.2, 6.8, 9.3, 11, 13.4] labour_cost = [3500, 5000, 6500, 7500, 9000, 11000, 16000, 25000, 15000, 12500] location = ['San Diego', 'Miami', 'Seattle', 'LosAngeles', 'LasVegas', 'Idaho', 'Phoenix', 'New Orleans', 'WashingtionDC', 'Chicago', 'Boston', 'Philadelphia', 'New York', 'San Jose', 'Detroit', 'Dallas'] #location = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] buss_type = [] demo = [] access = [] comp = [] area = [] rpm = [] gtax = [] labour_cst = [] loc = [] # Net_profit is to be calculated for i in range(1000): buss_type.append(rd.choice(Bussiness_type)) demo.append(rd.choice(Demographics)) access.append(rd.choice(Accessibility)) comp.append(rd.choice(Competition)) area.append(rd.choice(Area)) rpm.append(rd.choice(Rent_per_month)) gtax.append(rd.choice(Gross_tax)) labour_cst.append(rd.choice(labour_cost)) loc.append(rd.choice(location)) dic_data = {'Business_type': buss_type, 'Demographics': demo, 'Accessibility': access, 'Competition': comp, 'Area(sq feet)': area, 'Rent_per_month': rpm, 'Gross_tax(%)': gtax, 'labour_cost(USD)': labour_cst, 'location': loc} frame_data = pd.DataFrame(dic_data) frame_data.to_csv('autogen_data.csv')
خروجی:
This creates a CSV file with 9 features (columns) and 1000 rows: Business Type Demographics Accessibility Competition Area (square feet) Rent Per Month Gross Tax Labour Cost Location
روش ۲: ایجاد دیتاست با ابزارهای هوش مصنوعی مولد
روش دیگر برای ایجاد مجموعه دادهها، تولید دادهها با کمک ابزارهای هوش مصنوعی مولد مانند ChatGPT و غیره است. به مثال زیر توجه کنید:
خروجی:
با این روش، میتوان حجم زیادی از دادهها را برای ایجاد دیتاست برای مدلها به این شیوهها تولید کرد.
روشهای کار با مجموعه داده
روشهای زیادی برای کار با مجموعه دادهها بهکار میرود. این بستگی به دلیلی دارد که چرا شما با مجموعه داده خاص خود کار میکنید. برخی از روشهای رایج که برای مجموعه دادهها بهکار میروند عبارتند از:
۱- بارگذاری و خواندن مجموعه دادهها
قبل از اینکه از مجموعه داده استفاده کنیم بایستی آن را در برنامه خود بارگذاری یا لود کنیم. مجموعهای از روشهایی که برای بارگذاری و خواندن مجموعه دادهها در ابتدا بهمنظور اجرای وظایف مورد نیاز استفاده میشود در اصطلاح بارگذاری داده نامیده میشود.
مثال: استفاده از دستوراتی نظیر ()read_csv()، read_json()، read_excel و غیره.
۲- تحلیل داده اکتشافی
برای انجام تحلیل دادهها و تجسم آن، از این توابع برای کار با یک مجموعه داده استفاده میکنیم.
مثال: ()head()، tail()، groupby و غیره.
۳- پیشپردازش دادهها
قبل از تحلیل یک مجموعه داده، آن را پیشپردازش میکنیم تا مقادیر اشتباه و نقاط داده با برچسب نادرست را حذف کنیم.
مثال: ()drop()، fillna()، dropna()، copy و غیره.
۴- دستکاری دادهها
نقاط داده در مجموعه داده برای دستکاری ویژگیها مرتب میشوند یا دوباره مرتب میشوند. در برخی موارد، حتی ویژگیهای مجموعه داده دستکاری میشوند تا پیچیدگی محاسباتی کاهش یابد و غیره. این ممکن است شامل روشها یا توابعی برای ادغام ستونها، افزودن نقاط داده جدید و غیره باشد.
مثال: ()merge()، concat()، join و غیره.
۵- تصویریسازی دادهها
روشهایی که برای توضیح مجموعه دادهها به افرادی که در زمینههای فنی نیستند استفاده میشود، مانند استفاده از نمودارهای میلهای و نمودارها برای ارائه نمای تصویری از مجموعه دادهها در یک شرکت/کسبوکار.
مثال: ()plot
۶- شاخصگذاری دادهها و زیرمجموعههای داده
روشهایی که برای ارجاع به ویژگی خاصی در یک مجموعه داده استفاده میشود. از شاخصگذاری دادهها یا ایجاد زیرمجموعههای قطعی استفاده میکنیم.
مثال: ()iloc
۷- ایمپورت داده ها
روشهایی که برای ایمپورت دادههایی که روی آنها کار کردهاید در فرمتهای مختلف بهصورت موردنیاز استفاده میشود.
مثال: ()to_csv()، to_json و غیره.
داده، مجموعه داده و پایگاه داده
دادهها:
دادهها شامل اطلاعاتی مانند دادههای عددی، دادههای دستهای، ویژگیها و غیره هستند. اما دادهها بهتنهایی نمیتوانند بهطور مؤثر استفاده شوند. برای انجام تحلیل، نیاز به جمعآوری حجم زیادی از دادهها است.
مجموعه دادهها:
مجموعه دادهها یک مجموعه از دادهها هستند که شامل دادههای خاص دسته خود بوده و هیچ چیز دیگری را در بر نمیگیرند. این برای توسعه مدلهای یادگیری ماشین، انجام تحلیل دادهها و مهندسی داده و ویژگی استفاده میشود. مجموعه دادهها میتوانند ساختاری (تحلیل قد، وزن) یا بدون ساختار (فایلهای صوتی، ویدیوها، تصاویر) باشند.
پایگاه دادهها:
یک پایگاه داده شامل چندین مجموعه داده است. ممکن است یک پایگاه داده شامل چندین مجموعه داده باشد که ممکن است به هم مرتبط نباشند. دادهها در پایگاههای داده قابل پرسوجو هستند تا چندین کاربرد را انجام دهند.
انواع مختلفی از پایگاههای داده برای نگهداری انواع مختلف دادهها، ساختاری یا بدون ساختار، وجود دارد. اینها به پایگاههای داده SQL و NoSQL تقسیم میشوند.
نتیجهگیری
مجموعه دادهها نقش حیاتی در تمامی جنبههای زندگی ما دارند. در دنیای مدرن امروزی، تمامی دستگاهها بهطور خاص برای جمعآوری دادهها و ایجاد مجموعه دادهها طراحی شدهاند تا تبلیغکنندگان و کسبوکارها تبلیغات خود را برای مصرفکنندگان شخصیسازی کنند. محدودیت این است که به دلیل وابستگی بیش از حد به مجموعه دادهها، تکنیکهای استخراج داده بهطور اخلاقی مورد سوال قرار گرفتهاند و بسیاری از اپلیکیشنها و وبسایتهای رسانههای اجتماعی بهدلیل مشکلات حریم خصوصی دادهها، نشت دادهها و غیره مورد انتقاد قرار گرفتهاند. در نتیجه، دادهها بهعنوان ارز شناخته میشوند و بسیاری از شرکتها اطلاعات کاربران را بدون اطلاع آنها برای ایجاد مجموعه دادهها استخراج میکنند.