فرض کنید قصد دارید یک پروژه یادگیری ماشین (Machine Learning) را آغاز کنید. اولین و مهمترین چیزی که نیاز دارید چیست؟ پاسخ، دادهها هستند. برای شروع هر پروژه یادگیری ماشین، ابتدا باید دادهها را بارگذاری کنیم. در این بخش، بارگذاری داده در یادگیری ماشین با پایتون را آموزش می دهیم.
در یادگیری ماشین، «بارگذاری داده» به وارد کردن دادهها از منابع خارجی گفته میشود. این دادهها باید به قالبی تبدیل شوند که برای الگوریتم یادگیری ماشین قابل استفاده باشد. پس از آن، دادهها پیشپردازش میشوند. در این مرحله، ناهماهنگیها، مقادیر گمشده و دادههای پرت حذف میشوند. سپس دادهها به دو بخش آموزش (training) و آزمایش (testing) تقسیم میگردند. این دو مجموعه برای آموزش مدل و ارزیابی آن استفاده میشوند.
منابع داده میتوانند متنوع باشند. برای نمونه: فایلهای CSV، پایگاه داده، رابطهای وب (API) و فضای ابری. یکی از رایجترین قالبها در پروژههای یادگیری ماشین، فایل CSV (Comma Separated Values) است.
نکات مهم هنگام بارگذاری دادههای CSV
فرمت CSV، متنی ساده برای ذخیره دادههای جدولی است. در این فایلها، هر ردیف یک رکورد و هر ستون یک ویژگی را نمایش میدهد. این قالب به دلیل سادگی و سبک بودن، بسیار پرکاربرد است. همچنین بهراحتی توسط زبانهایی مانند پایتون (Python)، آر (R) و جاوا (Java) پردازش میشود.
در پایتون، روشهای مختلفی برای بارگذاری دادههای CSV وجود دارد. اما پیش از بارگذاری، باید به چند نکته مهم توجه داشت.
در این فصل، با اجزای اصلی فایل CSV آشنا میشویم. همچنین بررسی میکنیم که این اجزا چگونه بر تحلیل دادهها تأثیر میگذارند. در پایان، ملاحظاتی که پیش از بارگذاری دادهها باید رعایت شوند را مرور خواهیم کرد.
سرصفحه فایل (File Header)
اولین ردیف در فایل CSV معمولاً شامل نام ستونها در جدول است. هنگام بارگذاری دادههای CSV در یک پروژه یادگیری ماشین، سرصفحه فایل (که با عنوان نام ستونها یا متغیرها نیز شناخته میشود) نقش مهمی در تحلیل داده و آموزش مدل ایفا میکند. در ادامه به نکاتی اشاره میشود که هنگام استفاده از سرصفحه باید در نظر گرفت:
-
یکپارچگی: ردیف سرصفحه باید در تمام فایل CSV یکسان باشد. تعداد ستونها و نام آنها باید برای همه ردیفها مشابه باشد. هرگونه ناهماهنگی میتواند باعث ایجاد خطا در خواندن یا تحلیل دادهها شود.
-
نامگذاری معنادار: نام ستونها باید واضح، توصیفی و معنادار باشند. این کار در درک بهتر داده و ساخت مدلهای دقیقتر مؤثر است. از نامهای عمومی و بیمعنا مانند “column1” یا “column2” خودداری کنید.
-
حساسیت به حروف بزرگ و کوچک: بسته به ابزار یا کتابخانهای که برای بارگذاری فایل استفاده میشود، ممکن است نام ستونها نسبت به حروف بزرگ و کوچک حساس باشند. مطمئن شوید که حروف موجود در سرصفحه با حساسیت مورد انتظار ابزار مورد استفاده همخوانی دارند.
-
کاراکترهای خاص: نام ستونها نباید شامل کاراکترهای خاص مانند فاصله، ویرگول یا علامت نقلقول باشند. این موارد ممکن است در خواندن یا تحلیل دادهها اختلال ایجاد کنند. بهجای آن، از خط زیر (_) یا روش camelCase برای جداسازی واژهها استفاده کنید.
-
نبود سرصفحه: اگر فایل CSV فاقد ردیف سرصفحه باشد، باید نام ستونها را بهصورت دستی مشخص کرد. همچنین میتوان یک فایل جداگانه یا مستندات مربوط به نام ستونها را ارائه داد.
-
کدگذاری (Encoding): کدگذاری (encoding) سرصفحه میتواند بر نحوهی تفسیر آن در زمان بارگذاری اثر بگذارد. لازم است کدگذاری فایل با ابزار یا کتابخانهای که برای خواندن آن استفاده میشود، سازگار باشد.
توضیحات (Comments)
توضیحات، خطوط اختیاری هستند که معمولاً با کاراکتری خاص مانند #
یا //
آغاز میشوند. اغلب برنامههایی که فایلهای CSV را میخوانند، این خطوط را نادیده میگیرند. از این توضیحات میتوان برای ارائه اطلاعات یا توضیحات اضافی درباره دادههای موجود در فایل استفاده کرد.
در فایلهای CSV، توضیحات معمولاً بخشی از دادههایی نیستند که مستقیماً در پروژه یادگیری ماشین استفاده میشوند. با این حال، اگر در فایل توضیحاتی وجود داشته باشد، باید تأثیر آنها بر فرآیند بارگذاری و تحلیل دادهها بررسی شود. در ادامه به نکات مهمی اشاره میشود:
-
علامت توضیح (Comment Marker): توضیحات در فایل CSV با علامتی مشخص مانند
#
یا//
آغاز میشوند. باید بدانید کدام علامت استفاده شده است تا فرآیند بارگذاری بتواند این خطوط را به درستی نادیده بگیرد. -
محل قرارگیری: توضیحات باید در خطوطی جدا از دادههای اصلی قرار گیرند. اگر یک توضیح در همان خط داده قرار گیرد، ممکن است در خواندن یا تحلیل دادهها اختلال ایجاد کند.
-
یکپارچگی: اگر در فایل CSV از توضیحات استفاده میشود، علامت توضیح باید در تمام فایل بهصورت یکسان بهکار رود. استفاده ناهماهنگ از علامتها ممکن است باعث بروز خطا در پردازش فایل شود.
-
نحوه پردازش توضیحات: بسته به ابزار یا کتابخانهای که برای بارگذاری فایل استفاده میشود، ممکن است توضیحات بهصورت پیشفرض نادیده گرفته شوند. گاهی نیز نیاز است پارامتر خاصی تنظیم شود. بنابراین، باید بدانید ابزار مورد نظر چگونه با توضیحات برخورد میکند.
-
تأثیر بر تحلیل دادهها: در مواردی ممکن است توضیحات حاوی اطلاعات مهمی درباره دادهها باشند. در این صورت، بهتر است آنها بهصورت جداگانه از دادههای اصلی پردازش شوند. این کار میتواند فرآیند بارگذاری و تحلیل دادهها را پیچیدهتر کند.
جداکننده (Delimiter)
جداکننده، کاراکتری است که فیلدها (ستونها) را در هر ردیف از یکدیگر جدا میکند. اگرچه نام CSV به معنی «مقادیر جداشده با ویرگول» است، اما ممکن است از کاراکترهای دیگری مانند تب (tab)، نقطهویرگول (;) یا خط عمودی (|) نیز استفاده شود. نوع جداکننده، بسته به ساختار فایل، میتواند متفاوت باشد.
نوع جداکننده در فایل CSV تأثیر قابل توجهی بر دقت و عملکرد مدل یادگیری ماشین دارد. به همین دلیل هنگام بارگذاری دادهها باید به نکات زیر توجه کرد:
-
انتخاب جداکننده: انتخاب جداکننده باید با دقت و با توجه به ساختار داده انجام شود. برای مثال، اگر در مقادیر موجود در ستونها از ویرگول استفاده شده باشد (مانند
"New York, NY"
)، استفاده از ویرگول بهعنوان جداکننده باعث خطا در خواندن داده میشود. در چنین مواردی، استفاده از تب یا نقطهویرگول گزینهی بهتری است. -
یکپارچگی: جداکننده باید در تمام فایل بهصورت یکسان استفاده شود. استفاده ترکیبی از جداکنندههای مختلف یا فاصلههای نامنظم، باعث ایجاد خطا و دشواری در پردازش دقیق داده میشود.
-
کدگذاری (Encoding): گاهی نوع جداکننده ممکن است تحتتأثیر کدگذاری فایل قرار گیرد. برای مثال، اگر جداکننده غیر از ASCII استفاده شود و فایل با UTF-8 کدگذاری شده باشد، برخی ابزارهای یادگیری ماشین ممکن است نتوانند فایل را بهدرستی بخوانند. بنابراین، هماهنگی بین کدگذاری و جداکننده اهمیت دارد.
-
ملاحظات دیگر: گاهی نیاز است جداکننده بر اساس ابزار یادگیری ماشین تنظیم شود. برخی کتابخانهها تنها از جداکننده خاصی پشتیبانی میکنند یا ممکن است برخی جداکنندهها را نپذیرند. بررسی مستندات ابزار مورد استفاده و تنظیم جداکننده بر اساس آن ضروری است.
علامت نقلقول (Quotes)
علامت نقلقول، کاراکتری اختیاری است که برای محصور کردن فیلدهایی استفاده میشود که شامل کاراکتر جداکننده یا خط جدید هستند. برای مثال، اگر یک فیلد شامل ویرگول باشد، قرار دادن آن درون علامت نقلقول باعث میشود ویرگول بهعنوان بخشی از مقدار فیلد شناخته شود، نه بهعنوان جداکننده.
هنگام بارگذاری دادههای CSV در پروژههای یادگیری ماشین، رعایت نکات زیر درباره استفاده از نقلقول ضروری است:
-
کاراکتر نقلقول: کاراکتری که بهعنوان علامت نقلقول استفاده میشود باید در سراسر فایل یکسان باشد. رایجترین علامت، نقلقول دوتایی (
"
) است. با این حال، در برخی فایلها ممکن است از نقلقول تکی ('
) یا دیگر کاراکترها استفاده شود. ضروری است که کاراکتر انتخابشده با ابزار یا کتابخانه مورد استفاده سازگار باشد. -
مقادیر دارای نقلقول: گاهی برخی مقادیر در فایل CSV درون علامت نقلقول قرار میگیرند تا از مقادیر دیگر متمایز شوند. بهعنوان نمونه، اگر فیلدی شامل ویرگول باشد، با قرار دادن آن درون نقلقول از تفسیر اشتباه جلوگیری میشود. هنگام بارگذاری دادهها باید از نحوه پردازش صحیح این مقادیر مطمئن شد.
-
فرار دادن نقلقول (Escaping): اگر مقدار یک فیلد شامل همان کاراکتر نقلقول باشد، باید از فرار دادن آن استفاده کرد. معمولاً این کار با تکرار کاراکتر نقلقول انجام میشود. برای مثال، اگر کاراکتر نقلقول
""
باشد و مقدار فیلد بهصورت"John "the Hammer" Smith"
باشد، شکل صحیح آن خواهد بود:"John ""the Hammer"" Smith"
. -
نحوه استفاده از نقلقول: استفاده از علامت نقلقول در فایلهای CSV ممکن است بسته به ابزار تولیدکننده متفاوت باشد. برخی ابزارها تمام فیلدها را درون نقلقول قرار میدهند. برخی دیگر فقط برای فیلدهای خاص مانند دارای ویرگول یا خط جدید از نقلقول استفاده میکنند. لازم است نحوه استفاده از نقلقول با ابزار یا کتابخانه خوانندهی فایل سازگار باشد.
-
کدگذاری (Encoding): استفاده از علامت نقلقول ممکن است تحت تأثیر نوع کدگذاری فایل نیز قرار گیرد. اگر فایل با کدگذاری غیر استاندارد ذخیره شده باشد، احتمال بروز خطا هنگام بارگذاری داده وجود دارد. بنابراین اطمینان از سازگاری کدگذاری با ابزار یا کتابخانه مورد استفاده ضروری است.
روشهای مختلف بارگذاری فایل داده CSV
در پروژههای یادگیری ماشین، یکی از مهمترین وظایف، بارگذاری صحیح دادههاست. همانطور که پیشتر اشاره شد، رایجترین قالب داده در پروژههای یادگیری ماشین، فایلهای CSV هستند. این فایلها انواع مختلفی دارند و ممکن است بارگذاری آنها ساده یا پیچیده باشد.
در این بخش، چند روش متداول برای بارگذاری فایل CSV در پروژههای یادگیری ماشین با استفاده از زبان پایتون بررسی میشود:
استفاده از ماژول csv
ماژول csv
یکی از ماژولهای داخلی پایتون است که امکان خواندن و نوشتن فایلهای CSV را فراهم میکند. با استفاده از این ماژول میتوان دادههای CSV را بهصورت لیست یا دیکشنری بارگذاری کرد.
مثال زیر یک پیادهسازی ساده از این روش را نشان میدهد:
1 2 3 4 5 |
import csv with open('mydata.csv', 'r') as file: reader = csv.reader(file) for row in reader: print(row) |
mydata.csv
خوانده میشود و هر ردیف موجود در فایل بهصورت جداگانه چاپ میشود.
استفاده از کتابخانه Pandas
کتابخانه Pandas یکی از مهمترین و پرکاربردترین ابزارها برای پردازش و تحلیل دادهها در زبان پایتون است. این کتابخانه تابعی به نام read_csv()
دارد که فایل CSV را مستقیماً به یک شیء از نوع DataFrame تبدیل میکند. این روش بسیار ساده و کارآمد است و برای انجام انواع عملیات روی دادهها کاربرد دارد.
نمونه پیادهسازی آن در پایتون به شکل زیر است:
1 2 3 |
import pandas as pd data = pd.read_csv('mydata.csv') |
mydata.csv
خوانده شده و در شیء به نام data
از نوع DataFrame ذخیره میشود. این شیء امکانات متعددی برای فیلتر کردن، دستهبندی، خلاصهسازی، و تحلیل دادهها فراهم میکند.
استفاده از کتابخانه NumPy
کتابخانه NumPy یکی از کتابخانههای پایه برای محاسبات عددی در پایتون است. این کتابخانه تابعی به نام genfromtxt()
دارد که برای بارگذاری فایلهای CSV به آرایه NumPy استفاده میشود.
نمونه پیادهسازی آن در پایتون به شکل زیر است:
1 2 3 |
import numpy as np data = np.genfromtxt('mydata.csv', delimiter=',') |
mydata.csv
خوانده شده و دادهها در یک آرایه NumPy به نام data
ذخیره میشوند.
استفاده از کتابخانه SciPy
کتابخانه SciPy یکی از ابزارهای علمی پایتون است که تابع loadtxt()
را برای بارگذاری فایلهای متنی، از جمله فایلهای CSV، ارائه میدهد.
نمونه پیادهسازی آن در پایتون به شکل زیر است:
1 2 3 4 |
import numpy as np from scipy import loadtxt data = loadtxt('mydata.csv', delimiter=',') |
mydata.csv
بهصورت مستقیم به یک آرایه NumPy به نام data
بارگذاری میشود.
استفاده از کتابخانه sklearn
کتابخانه Scikit-learn یکی از پرکاربردترین کتابخانهها در حوزه یادگیری ماشین است. این کتابخانه شامل تابعی به نام load_iris()
برای بارگذاری دیتاست معروف «iris» میباشد. این دیتاست معمولاً برای آموزش و آزمایش الگوریتمهای طبقهبندی استفاده میشود.
نمونه پیادهسازی آن در پایتون به شکل زیر است:
1 2 3 |
from sklearn.datasets import load_iris data = load_iris().data |
iris
از طریق تابع load_iris()
بارگذاری شده و در آرایه NumPy با نام data
ذخیره میشود.
اگر تازه وارد دنیای برنامه نویسی و یادگیری ماشین شدهاید، بهترین نقطه شروع شما یک دوره تخصصی پایتون است. این دوره به شما کمک میکند پایههای برنامهنویسی را بهخوبی یاد بگیرید، با کتابخانهها و ابزارهای مهم آشنا شوید و قدمبهقدم مهارتهای عملی خود را تقویت کنید.
راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.
- انتشار: ۳۰ مرداد ۱۴۰۴
دسته بندی موضوعات
- آموزش ارز دیجیتال
- آموزش برنامه نویسی
- آموزش متنی برنامه نویسی
- اطلاعیه و سایر مطالب
- پروژه برنامه نویسی
- دوره های تخصصی برنامه نویسی
- رپورتاژ
- فیلم های آموزشی
- ++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
- اچ تی ام ال
- بانک اطلاعاتی
- برنامه نویسی سوکت
- برنامه نویسی موبایل
- پاسکال
- پایان نامه
- پایتون
- جاوا
- جاوا اسکریپت
- جی کوئری
- داده کاوی
- دلفی
- رباتیک
- سئو
- سایر کتاب ها
- سخت افزار
- سی اس اس
- سی پلاس پلاس
- سی شارپ
- طراحی الگوریتم
- فتوشاپ
- مقاله
- مهندسی نرم افزار
- هک و امنیت
- هوش مصنوعی
- ویژوال بیسیک
- نرم افزار و ابزار برنامه نویسی
- وردپرس