آموزش دیتاساینس و ماشین‌لرنینگ
1.92K subscribers
161 photos
9 videos
134 links
🔴 آموزش مباحث حوزه دیتا شامل علم داده، یادگیری ماشین و تحلیل داده (رضا شکرزاد)

🌀 کانال اخبار و منابع هوش مصنوعی:
@DSLanders

🌀 مشاوره و ارتباط مستقیم:
https://t.me/dslanders_admin

یوتیوب:
Youtube.com/@RezaShokrzad

دوره‌ها:
cafetadris.com/datascience
Download Telegram
💡 در فایل‌های CSV، گویش یا Dialect به مجموعه‌ای از قواعد و ویژگی‌های خاص اشاره داره که تعیین می‌کنه چطور داده‌ها در فایل CSV فرمت‌بندی و ذخیره می‌شن. استفاده از Dialect به سازگاری و درک بهتر داده‌ها بین سیستم‌های مختلف کمک می‌کنه و موجب می‌شه که فایل‌های CSV در موقعیت‌های مختلف به درستی پردازش شن.

#File_Formats

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍🎓 فرمت JSON در فایل‌ها

فرمت JSON (JavaScript Object Notation) به دلیل سادگی و خوانایی بالا، به‌طور گسترده در سیستم‌های مختلف نرم‌افزاری، از جمله برنامه‌های وب و موبایل، APIها و پایگاه‌های داده استفاده می‌شه. این ساختار از دو نوع داده اصلی تشکیل شده: اشیاء (Objects) و آرایه‌ها (Arrays).

{
"id": 12345,
"name": "Sara Jamshidi",
"email": "sara.jamshidi@example.com",
"age": 28,
"is_active": true,
"preferences": {
"language": "fa",
"notifications": {
"email": true,
"sms": false
}
},
"hobbies": ["reading", "traveling", "photography"]
}


🔵 فرمت JSON از انواع داده‌های ساده مانند رشته‌ها (Strings)، اعداد (Numbers)، منطق (Boolean)، لیست‌های خالی (Null)، آرایه‌ها (Arrays) و اشیاء (Objects) پشتیبانی می‌کنه. با این حال، محدودیت‌هایی هم داره؛ برای مثال، JSON فاقد نوع داده‌ای برای تاریخ و زمانه.

🔵 مزایای JSON

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

🔵 بسیاری از پایگاه‌های داده NoSQL مثل MongoDB و Couchbase از JSON به عنوان فرمت اصلی ذخیره‌سازی داده‌ها استفاده می‌کنن. این پایگاه‌های داده به دلیل ساختار بدون اسکیمای JSON، از انعطاف‌پذیری بالایی در ذخیره‌سازی و بازیابی داده‌ها برخوردارن.

🔵 در طراحی APIهای وب، JSON به دلیل خوانایی و سادگی، به عنوان فرمت استاندارد برای پاسخ‌ها و درخواست‌ها استفاده می‌شه. JSON Schema یک استاندارد تعریف شده برای اعتبارسنجی ساختار JSON در APIها است که تضمین می‌کنه داده‌ها با ساختار مشخص شده همخوانی داشته باشن.

#File_Formats

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
💡فرمت JSONL که مخفف JSON Lines هست، یک فرمت فایل ساده برای ذخیره‌سازی و پردازش مجموعه‌ داده‌های بزرگ به صورت خط به خطه. در این فرمت، هر خط از فایل حاوی یک شیء JSON مستقل و کامله.

🔵فرض کنین می‌خوهیم یک لیست از کاربران رو در قالب JSONL ذخیره کنیم. هر کاربر یک شیء JSON مستقله و هر خط فایل یک شیء مجزاست:

{"id": 1, "name": "Ali", "email": "ali@example.com"}
{"id": 2, "name": "Sara", "email": "sara@example.com"}
{"id": 3, "name": "Reza", "email": "reza@example.com"}


🔵 مزایای JSONL

🔵پردازش ساده: به دلیل اینکه هر خط یک شیء JSON مستقله، می‌شه به راحتی هر خط رو به عنوان یک رکورد پردازش کرد. این ویژگی در پردازش دسته‌ای (Batch Processing) یا استریم داده‌ها بسیار کارآمده.

🔵مقیاس‌پذیری: JSONL به راحتی می‌تونه با حجم‌های بزرگ داده کار کنه. از اونجا که هر خط به صورت مستقل پردازش می‌شه، می‌شه داده‌ها رو به صورت موازی پردازش کرد.

🔵استفاده در یادگیری ماشین: در یادگیری ماشین، اغلب نیازه داده‌ها به صورت خط به خط پردازش شن. JSONL به دلیل سادگی و ساختار خط به خط، برای این کاربرد بسیار مناسبه.

#File_Formats

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍🎓 فرمت Parquet در قالب‌های فایل

فرمت پارکت (Parquet) یک فرمت فایل ستونیه که برای ذخیره‌سازی داده‌های بزرگ و تحلیل اونها بهینه شده. این فرمت توسط Apache به عنوان بخشی از پروژه Hadoop توسعه داده شد.

🔵 ذخیره‌سازی ستونی در مقابل ذخیره‌سازی سطری

🔵ذخیره‌سازی سطری: در فرمت‌های سنتی مثل CSV یا فایل‌های متنی، داده‌ها به صورت سطری ذخیره می‌شن. یعنی هر سطر یک رکورد کامل از داده رو نشون می‌ده و همه ستون‌ها به ترتیب در کنار هم قرار می‌گیرن. این نوع ذخیره‌سازی برای خوندن و نوشتن رکوردهای کامل مناسبه، اما وقتی بخوایم تنها یک یا چند ستون خاص از داده‌ها رو تحلیل کنیم، کارایی کاهش پیدا می‌کنه.

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

🔵 ساختار فایل Parquet

🔵متادیتا (Metadata): فایل پارکت شامل یک بخش متادیتاست که به موتورهای پردازشی این امکان رو می‌ده تا به سرعت به داده‌های مورد نیاز دسترسی پیدا کنن.

🔵بلاک‌ها و صفحه‌ها (Blocks and Pages): داده‌ها در پارکت به صورت بلاک‌هایی از صفحه‌های کوچک‌تر سازماندهی می‌شن. هر بلاک می‌تونه شامل داده‌های یک یا چند ستون باشه و صفحه‌ها شامل داده‌های مربوط به همون ستون‌ها هستن. این ساختار به فشرده‌سازی بهتر و افزایش سرعت دسترسی به داده‌ها کمک می‌کنه.

🔵فشرده‌سازی و رمزگذاری: پارکت از روش‌های مختلف فشرده‌سازی و رمزگذاری پشتیبانی می‌کنه. کاربران می‌تونن بر اساس نیاز از الگوریتم‌های مختلف فشرده‌سازی مثل Snappy، GZIP یا LZO استفاده کنن.

🔵 موارد استفاده پارکت

🔵سیستم‌های ذخیره‌سازی داده‌های بزرگ (Big Data): پارکت یکی از پرکاربردترین فرمت‌ها در سیستم‌های ذخیره‌سازی داده‌های بزرگ هست. ساختار ستونی این فرمت برای عملیات‌های تحلیلی بهینه‌سازی شده که نیاز به خوندن سریع حجم زیادی از داده دارن.

🔵پردازش و تحلیل داده‌های حجیم: در پردازش داده‌های حجیم، اغلب نیازه که داده‌ها به سرعت فیلتر و تحلیل شن. پارکت با ساختار ستونی و فشرده‌سازی مؤثر، انتخابی مناسب برای این نوع تحلیل‌هاست.

🔵انتقال داده‌ها بین سیستم‌های مختلف: به دلیل حجم کم فایل‌های پارکت و پشتیبانی از انواع داده‌های مختلف، این فرمت برای انتقال داده‌ها بین سیستم‌های مختلف، به ویژه در محیط‌های توزیع‌شده، بسیار مناسبه.

#File_Formats

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
💡در Parquet ویژگی Bloom Filter برای تشخیص سریع اینکه آیا یک مقدار خاص در یک ستون وجود داره یا نه استفاده میشه. دلیل سرعت این فیلتر عدم نیازش به اسکن کامل ستونه. در نتیجه عملکرد پرس‌وجوها به خصوص برای عملیات فیلترینگ به طور قابل توجهی بهبود پیدا می‌کنه.

#File_Formats

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍🎓 آشنایی با فرمت Pickle در فایل‌های داده

فرمت Pickle در پایتون برای سریال‌سازی (serializing) و دی‌سریال‌سازی (deserializing) اشیاء به کار می‌ره. به عبارت ساده‌تر، Pickle این امکان رو می‌ده که اشیاء پایتون رو به یک فرمت بایت تبدیل، در یک فایل ذخیره و بعد دوباره به صورت اشیاء پایتون بازیابی کنین.

🔵 چرا از Pickle استفاده کنیم؟

🔵ذخیره‌سازی آسان داده‌ها: با استفاده از Pickle اشیاء پیچیده، مثل لیست‌ها، دیکشنری‌ها و حتی نمونه‌های کلاس‌ها رو به سادگی ذخیره و بازیابی می‌شن. این ویژگی برای ذخیره‌سازی داده‌ها در استفاده‌های آینده مفیده.

🔵قابلیت پشتیبانی از انواع مختلف داده: فرمت Pickle توانایی پشتیبانی از انواع مختلف داده‌ها رو داره. این شامل اشیاء ساده مثل اعداد و رشته‌ها و همچنین اشیاء پیچیده‌تر مثل شیءهای کلاس‌های تعریف شده توسط کاربر می‌شه.

🔵 نحوه استفاده از Pickle

🔵سریال‌سازی اشیاء: برای سریال‌سازی اشیاء با استفاده از Pickle، از تابع pickle.dump() استفاده می‌شه. این تابع اشیاء رو به فرمت بایت تبدیل و در یک فایل ذخیره می‌کنه. در این مثال، دیکشنری data به فایل data.pkl سریال‌سازی شده و ذخیره می‌شه.

import pickle

data = {'name': 'Ali', 'age': 30, 'is_student': False}

with open('data.pkl', 'wb') as file:
pickle.dump(data, file)


🔵بازگردانی اشیاء: برای بازیابی اشیاء از فایل، از تابع ()pickle.load استفاده می‌شه. این تابع داده‌های ذخیره شده رو از فایل خونده و اونها رو به اشیاء پایتون تبدیل می‌کنه. در اینجا، داده‌های ذخیره شده در data.pkl به دیکشنری data تبدیل شده و چاپ می‌شن.

import pickle

with open('data.pkl', 'rb') as file:
data = pickle.load(file)

print(data)


🔵 نکات مهم در استفاده از Pickle

🔵امنیت: استفاده از Pickle برای سریال‌سازی و بازگردانی داده‌ها باید با احتیاط انجام شه. چون داده‌های Pickle ممکنه شامل کدهای اجرایی خطرناک باشن که می‌تونن به سیستم آسیب بزنن. بنابراین، از بارگذاری داده‌هایی که از منابع غیرقابل اعتماد دریافت شدن، خودداری کنین.

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

🔵محدودیت‌ها: فرمت Pickle برای استفاده در محیط‌های عمومی و به اشتراک‌گذاری داده‌ها چندان مناسب نیست، چون این فرمت به طور خاص به پایتون وابسته است و به راحتی نمی‌شه ازش در زبان‌های برنامه‌نویسی دیگه استفاده کرد.

#File_Formats

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
💡مکانیزم Memo در Pickle

🔵ذخیره‌سازی اشیاء: وقتی pickle شی‌ای را سریال‌سازی می‌کنه، به جای ذخیره‌سازی کامل هر شیء، از مکانیزم memo برای ذخیره‌سازی مرجع‌ها استفاده می‌کنه. این کار به کاهش حجم داده‌های سریال‌شده کمک می‌کنه.

🔵استفاده از Memo: وقتی شی‌ای در pickle سریال‌سازی می‌شه، اون شیء به memo اضافه می‌شه. اگه شیء دیگه‌ای ارجاع به این شیء داشته باشه، به جای ذخیره‌سازی دوباره، فقط برای ارجاع به اون از memo استفاده می‌شه.

🔵استفاده در بازگردانی: زمان بازگردانی اشیا، pickle از memo برای بازیابی و بازسازی اشیاء استفاده می‌کنه. در نتیحه اشیاء تکراری به درستی به همون شیء اصلی اشاره می‌کنن و با همون هویت اصلی بازیابی می‎شن.

به عبارت ساده‌تر، مکانیزم memo به pickle کمک می‌کنه تا با ذخیره‌سازی مجدد اشیاء تکراری و استفاده از ارجاع‌ها، کارایی و حجم داده‌های سریال‌شده رو بهینه کنه.

#File_Formats

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍🎓 آشنایی با فرمت XML در فایل‌های داده

زبان نشانه‌گذاری توسعه‌پذیر یا XML (eXtensible Markup Language)، یک زبان نشانه‌گذاریه که برای توصیف و انتقال داده‌ها استفاده می‌شه. XML یک استاندارد جهانیه که توسط سازمان W3C (کنسرسیوم شبکه جهانی وب) تعریف شده و یکی از مهم‌ترین ابزارهای انتقال داده بین سیستم‌ها و برنامه‌های مختلف به حساب میاد.

در واقع، XML یک قالب (syntax) برای ایجاد فرمت‌های سفارشیه که برای ذخیره و انتقال اطلاعات استفاده می‌شه. برای مثال، فرمت‌هایی مثل RSS (برای اخبار و محتوای وبلاگی)، SOAP (برای خدمات وب) و SVG (برای گرافیک برداری) همگی بر اساس XML ساخته شدن.

🔵 ساختار XML: یک زبان مبتنی بر متنه که از مجموعه‌ای از عناصر (Elements) و صفات (Attributes) تشکیل شده. هر عنصر به وسیله یک تگ (Tag) مشخص می‌شه که محتوای خاصی رو داخلش جا بده. ساختار یک فایل XML به صورت سلسله مراتبی هست. این ساختار سلسله مراتبی امکان سازماندهی داده‌ها به صورت منطقی و قابل درک رو فراهم می‌کنه.

<bookstore>
<book>
<title>XML در عمل</title>
<author>محمد احمدی</author>
<year>2024</year>
<price>200000</price>
</book>
<book>
<title>راهنمای جامع XML</title>
<author>زهرا موسوی</author>
<year>2023</year>
<price>250000</price>
</book>
</bookstore>


در مثال بالا، عنصر ریشه (Root Element) bookstore نام داره که دو عنصر فرزند (Child Elements) book رو در خودش جا داده. هر book شامل چهار عنصر فرزند دیگه است که عنوان، نویسنده، سال و قیمت کتاب رو مشخص می‌کنن.

🔵 قواعد XML

🔵هر فایل XML باید دقیقاً یک عنصر Root داشته باشه.
🔵تگ‌های باز و بسته باید به درستی مشخص شن.
🔵عناصر باید به درستی تودرتو (Nested) باشن.
🔵به حروف بزرگ و کوچک حساسه؛ بنابراین <Title> با <title> متفاوته.
🔵مقادیر صفات (Attributes) باید در داخل " " قرار بگیرن.

🔵 صفات در XML: صفات در XML به عنوان ویژگی‌های اضافی برای عناصر استفاده می‌شن. در این مثال، genre یک صفته.
<book genre="science fiction">
<title>تخیلات علمی</title>
<author>علی رضایی</author>
</book>


🔵 مزایای XML

🔵خوانایی برای انسان: به نحوی طراحی شده که هم برای انسان و هم برای ماشین قابل خوندن باشه. ساختار سلسله مراتبی و استفاده از تگ‌های معنادار، خوندن و درک فایل‌های XML رو آسون می‌کنه.

🔵استاندارد بودن: یک استاندارد جهانیه که توسط بسیاری از سیستم‌ها و برنامه‌ها پشتیبانی می‌شه. این باعث می‌شه که داده‌های XML به راحتی بین سیستم‌های مختلف منتقل شن.

🔵انعطاف‌پذیری: یکی از بزرگترین مزایای XML، انعطاف‌پذیری‌اش هست. XML می‌تونه هر نوع داده‌ای رو توصیف کنه و به راحتی با نیازهای خاص هر پروژه تطبیق پیدا کنه.

🔵 معایب XML

🔵حجم بالای داده: حجم فایل‌های XML به دلیل استفاده از تگ‌های توصیفی زیاده. این موضوع باعث کاهش سرعت انتقال داده و افزایش نیاز به پهنای باند می‌شه.

🔵پیچیدگی پردازش: اگرچه XML به راحتی قابل خوندنه، اما پردازش‌اش نسبت به فرمت‌های دیگر مثل JSON پیچیده‌تره. این موضوع به ویژه در سیستم‌های بزرگ و پیچیده که حجم زیادی از داده‌ها رو پردازش می‌کنن، مشکل‌سازه.

#File_Formats

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
💡 با استفاده از XML Signature، سازمان‌ها و افراد می‌تونن از یکپارچگی و صحت داده‌ها اطمینان حاصل کنن و هویت ارسال‌کنندگان رو تأیید کنن. XML Signature تضمین می‌کنه که داده‌ها بعد از امضا تغییر نکردن و هر گونه تغییر در سند موجب نامعتبر شدن امضا می‌شه. XML Signature در پروتکل‌های امنیتی وب مثل SOAP و امضای قراردادهای الکترونیکی و سایر اسناد حساس که در قالب XML ذخیره و انتقال داده می‌شن، استفاده می‌شه.

#File_Formats

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
پست‌های هفته‌ای که گذشت رو این‌جا پیدا کنین!

🔺 آموزشی

🔵فرمت CSV
🔵فرمت JSON
🔵فرمت Parquet
🔵فرمت Pickle
🔵فرمت XML

🔺 کوئیز

🔵کوییز شماره ۱۹۵: مفهوم CSV on the Web (CSVW)
🔵کوییز شماره ۱۹۶: استفاده از JSON در فرمت فایل BSON
🔵کوییز شماره ۱۹۷: قابلیت‌های Page Index در Parquet
🔵کوییز شماره ۱۹۸: تفاوت بین pickle و json
🔵کوییز شماره ۱۹۹: XML Catalogs

🔺 نکته

🔵گویش در فایل‌های CSV
🔵فرمت JSONL
🔵ویژگی Bloom Filter در Parquet
🔵مکانیزم Memo در Pickle
🔵ویژگی XML Signature

#Weekend
#File_Formats

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM