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

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

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

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

دوره‌ها:
cafetadris.com/datascience
Download Telegram
🧑‍🎓 داکر در دیتا ساینس و پروژه‌های ماشین لرنینگ چطور به کار برده می‌شه؟

تصور کنین روی یک پروژه تا آخر کار کردین و به بهترین راه‌حل رسیدین، اما زمانی که کد رو به تیم دیگه ارسال می‌کنین، کدی که روی سیستم شما کار می‌کرد، روی سرورها و سیستم‌های دیگه کار نمی‌کنه.

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

🟢برای مطالعه بیشتر کلیک کنین:
👉📎 http://ctdrs.ir/ds0289

#MLOps
#Data_Science

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

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

🔵 طراحی مدل: در این مرحله، باید مطمئن شد که مدل انتخاب شده و معماری‌اش برای حل مسئله مورد نظر مناسبه. این شامل انتخاب الگوریتم‌های مناسب، فیچرهای ورودی و پارامترهای مدل می‌شه.

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

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

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

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

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

🔵 ابزارها و تکنیک‌های حاکمیت مدل

🔵سیستم‌های مدیریت مدل: سیستم‌های مدیریت مدل (Model Management Systems) ابزارهایی هستن که به ذخیره‌سازی، نسخه‌بندی و پیگیری تغییرات در مدل‌ها کمک می‌کنن. این سیستم‌ها به تیم‌های داده و توسعه کمک می‌کنن تا به راحتی نسخه‌های مختلف مدل‌ها رو مدیریت کرده و تغییرات رو کنترل کنن.

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

#MLOps

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
کوییز شماره ۱۹۳: کدوم تکنیک زیر برای بهبود شفافیت و قابلیت توضیح مدل‌های یادگیری ماشین در MLOps استفاده نمی‌شه؟
Anonymous Quiz
25%
Grad-CAM (Gradient-weighted Class Activation Mapping)
21%
SHAP (SHapley Additive exPlanations)
21%
LIME (Local Interpretable Model-agnostic Explanations)
32%
K-means Clustering
👨‍🎓 مقیاس‌پذیری و مدیریت منابع در MLOps

یکی از عوامل موفقیت در MLOps طراحی و پیاده‌سازی زیرساخت مقیاس‌پذیره که بتونه پیچیدگی‌ها و تقاضاهای بارهای کاری یادگیری ماشین رو مدیریت کنه.

🔵 مقیاس‌پذیری به توانایی سیستم برای مدیریت کارهای در حال افزایش به‌طور کارآمد و مؤثر اشاره داره. در زمینه MLOps، مقیاس‌پذیری شامل ابعاد مختلفی از جمله مقیاس‌پذیری داده، مقیاس‌پذیری مدل و مقیاس‌پذیری زیرساخت می‌شه.

🔵مقیاس‌پذیری داده: مدل‌های یادگیری ماشین برای آموزش، اعتبارسنجی و آزمایش نیاز به حجم‌های زیادی از داده دارن. با افزایش مقدار داده‌ها، زیرساخت باید قادر به جذب، پردازش و ذخیره داده‌ها به‌طور کارآمد باشه. این ممکنه شامل سیستم‌های ذخیره‌سازی توزیع‌شده مثل Hadoop Distributed File System (HDFS) یا راه‌حل‌های ذخیره‌سازی ابری مثل Amazon S3 یا Google Cloud Storage باشه.

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

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

🔵 طراحی زیرساخت مقیاس‌پذیر برای MLOps

🔵زیرساخت ابری: خدمات ابری مثل Amazon Web Services (AWS)، Microsoft Azure و Google Cloud Platform امکانات مقیاس‌پذیری رو برای MLOps ارائه می‌دن. این پلتفرم‌ها خدمات مدیریت‌شده برای ذخیره‌سازی، محاسبه و یادگیری ماشین رو فراهم کرده و قابلیت مقیاس‌پذیری خودکار دارن که منابع رو به‌طور پویا با بار کاری هماهنگ می‌کنه.

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

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

🔵تأمین و مقیاس‌پذیری خودکار: تأمین و مقیاس‌پذیری دستی منابع وقت‌گیر و مستعد خطاست. مکانیزم‌های خودکار، امکان تخصیص و آزادسازی منابع بر اساس تقاضا رو فراهم می‌کنن. ابزارهای زیرساخت به‌عنوان کد (IaC) مثل Terraform یا خدمات ابری مثل AWS Auto Scaling به تعریف و مدیریت منابع زیرساخت به‌صورت برنامه‌نویسی کمک کرده و بار عملیاتی رو کاهش می‌دن.

#MLOps

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

🟠شنبه: فرمت CSV

🔵یک‌شنبه: فرمت JSON

🟢دوشنبه: فرمت Parquet

🔴سه‌شنبه: فرمت Pickle

🟠چهارشنبه: فرمت XML

🔵پنج‌شنبه: فرمت HDF5

🟢جمعه: جمع‌بندی

#File_Formats

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
🟡 سلسه وبینارهای رایگان علم داده و ماشین لرنینگ تابستان ۱۴۰۳

🔵 سرفصل‌های وبینار چهارم: تلفیق هوش مصنوعی با پایان نامه رشته‌های غیر مرتبط
🔵لزوم وارد کردن هوش مصنوعی به پایان نامه رشته‌های غیرمرتبط
🔵تا چه حدی باید برای پایان نامه غیرمرتبط #هوش_مصنوعی بدونیم؟
🔵نحوه توسعه ایده ترکیبی هوش مصنوعی به صورت میان رشته‌ای
🔵مراحل گام به گام کار روی پایان نامه
🔵نکات مهمی که باید قبل از شروع کار روی پایان‌نامه بدونیم
🔵ساختار پیشنهادی برای نگارش پایان‌نامه‌های فنی با محوریت هوش مصنوعی
🔵پنل پرسش و پاسخ

🗓 شنبه، ۲۰ مرداد
ساعت ۲۰

🟢برای دریافت جزئیات بیشتر و ثبت‌نام، به لینک زیر سر بزنین:
👉📎 http://ctdrs.ir/cr15841

#Webinars

@DSLanders | دی‌اس‌لندرز
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍🎓 فرمت CSV در فایل‌ها

فایل‌های CSV (Comma-Separated Values) از نظر ساختاری بسیار ساده هستند. هر سطر در فایل CSV به معنی یک رکورد یا ردیف از داده‌هاست و هر رکورد شامل تعدادی فیلد یا ستونه که با کاراکتر جداکننده (معمولاً کاما) از هم جدا می‌شن.

اگر چه کاما (,) معمول‌ترین کاراکتر جداکننده در فایل‌های CSV هست، اما در بعضی مواقع از کاراکترهای دیگه‌ای مثل نقطه تب (\t) هم به عنوان جداکننده استفاده می‌شه.

🔵 مزایا فایل‌های CSV

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

🔵 معایب فایل‌های CSV

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

🔵 روش‌های خوندن و نوشتن فایل‌های CSV

🔵اکسل یکی از پرکاربردترین ابزارها برای کار با فایل‌های CSV هست. این نرم‌افزار به طور مستقیم فایل‌های CSV رو باز کرده و به صورت جدول نمایش می‌ده.

🔵زبان برنامه‌نویسی Python، کتابخانه‌های مختلفی برای کار با فایل‌های CSV وجود داره. کتابخانه csv یکی از ساده‌ترین و پرکاربردترین این کتابخانه‌هاست که امکان خوندن و نوشتن فایل‌های CSV رو به سادگی فراهم می‌کنه.

import csv

# Read a CSV file
with open('example.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
print(row)

# Write to a CSV file
with open('example.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(["Name", "Age", "City"])
writer.writerow(["Ali", "25", "Tehran"])


🔵زبان R هم توابعی مثل read.csv و write.csv برای خوندن و نوشتن فایل‌های CSV وجود داره که به تحلیل‌گران داده امکان مدیریت داده‌ها رو می‌ده.

# Read a CSV file
data <- read.csv("example.csv")

# Write to a CSV file
write.csv(data, "output.csv")


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

#File_Formats

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN 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