کافه‌تدریس

چگونه با پکیج Klib داده‌ها را تمیز و آماده تحلیل کنیم؟

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

فهرست مطالب پنهان‌کردن فهرست
  1. 1. مرور کلی بر پاکسازی و پیش‌پردازش داده‌ها
  2. 2. اهمیت مدیریت کارآمد داده‌ها در یادگیری ماشین
  3. 3. معرفی پکیج Klib
  4. 4. شروع به کار با پکیج Klib
    1. 4.1. نصب و راه‌اندازی
    2. 4.2. مرور کلی توابع Klib
  5. 5. پاک‌سازی داده‌ها با پکیج Klib
    1. 5.1. مروری بر قابلیت‌های پاک‌سازی Klib
    2. 5.2. مثالی از پاک‌سازی یک مجموعه داده با Klib
  6. 6. تصویرسازی داده‌ها با پکیج Klib
    1. 6.1. مروری بر ابزارهای تصویرسازی Klib
    2. 6.2. مثالی از تصویرسازی داده‌ها با Klib
  7. 7. مزایای استفاده از Klib
    1. 7.1. قابلیت‌های پاک‌سازی و تجمیع داده‌ها
    2. 7.2. تغییر در نوع داده‌ها
    3. 7.3. برخورد پیشرفته با مقادیر از دست رفته
    4. 7.4. خلاصه‌ای از مزایا
  8. 8. محدودیت‌های پکیج Klib
  9. 9. مقایسه پکیج Klib با سایر کتابخانه‌های پاکسازی و پیش‌پردازش داده
  10. 10. نکاتی درباره استفاده از پکیج Klib
    1. 10.1. استفاده مؤثر از توابع Klib
    2. 10.2. یکپارچه‌سازی Klib با کتابخانه‌ها و ابزارهای دیگر
    3. 10.3. اشتباهات رایج و چگونگی اجتناب از آن‌ها
  11. 11. جمع‌بندی
  12. 12. پرسش‌های متداول
    1. 12.1. چگونه می‌توان داده‌های بزرگ را با استفاده از پکیج Klib بهینه‌سازی کرد؟
    2. 12.2. پکیج Klib چه قابلیت‌هایی برای تجسم (Visualization) داده‌ها ارائه می‌دهد؟
    3. 12.3. مزایای استفاده از Klib در مقابل کتابخانه‌های مشابه چیست؟
    4. 12.4. آیا Klib قابلیت یکپارچه‌سازی با سایر کتابخانه‌ها و ابزارهای پایتونی را دارد؟
    5. 12.5. محدودیت‌های پکیج Klib چیست و چگونه می‌توان بر آنها غلبه کرد؟
  13. 13. یادگیری تحلیل داده را از امروز شروع کنید!

مرور کلی بر پاکسازی و پیش‌پردازش داده‌ها

پاکسازی (Data cleaning) و پیش‌پردازش داده‌ها (Preprocessing) از مراحل اساسی در جریان کار علم داده هستند. داده‌های خام جمع‌آوری‌شده از منابع مختلف اغلب حاوی ناسازگاری‌ها، مقادیر گمشده و نویز هستند که می‌توانند عملکرد مدل‌های یادگیری ماشین را به طور نامطلوبی تحت تأثیر قرار دهند. پاکسازی موثر داده‌ها اطمینان حاصل می‌کند که مجموعه داده‌ها دقیق، کامل و آماده برای تحلیل هستند، که این امر منجر به مدل‌های پیش‌بینی قابل اعتمادتر و مستحکم‌تری می‌شود.

پیش‌پردازش، از سوی دیگر، شامل تبدیل داده‌های پاکسازی‌شده به فرمتی مناسب برای الگوریتم‌های یادگیری ماشین است. این عملیات شامل مقیاس‌بندی ویژگی‌ها، کدگذاری متغیرهای غیرعددی و تقسیم مجموعه داده‌ها به مجموعه‌های آموزش و تست می‌شود. پاکسازی و پیش‌پردازش داده‌ها به طور مشترک پایه و اساس هر پروژه موفق علم داده را تشکیل می‌دهند.

برای مطالعه بیشتر کلیک کنید: پیش پردازش داده یا Data Preprocessing چیست؟

اهمیت مدیریت کارآمد داده‌ها در یادگیری ماشین

مدیریت کارآمد داده‌ها به دلایل متعددی اهمیت دارد:

یک استراتژی مناسب برای مدیریت داده‌ها به دانشمندان داده اجازه می‌دهد که بیشتر بر توسعه مدل تمرکز کنند تا اینکه انرژی قابل توجهی روی دستکاری داده‌ها صرف کنند. لذا انتخاب استراژی خوب منجر به تسریع فرآیند یادگیری ماشین می‌شود.

معرفی پکیج Klib

Klib یک پکیج پایتونی است که برای ساده‌سازی فرآیندهای پاک‌سازی داده‌ها، پیش‌پردازش و تجسم داده‌ها طراحی شده‌است. با مجموعه‌ای از توابع شهودی و کارآمد، پکیج Klib به دانشمندان داده کمک می‌کند تا مجموعه داده‌های خود را با کمترین تلاش آماده کنند و اطمینان حاصل کنند که داده‌ها تمیز، منسجم و آماده برای تحلیل هستند.

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

شروع به کار با پکیج Klib

نصب و راه‌اندازی

قبل از بررسی قابلیت‌های Klib، لازم است آن را در محیط پایتونی خود نصب و راه‌اندازی کنیم. پکیج Klib به راحتی با استفاده از pip قابل نصب است:

    
!pip install klib      
    
  

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

    
 import klib
import pandas as pd     
    
  

مرور کلی توابع Klib

پکیج Klib مجموعه‌ای از توابع را ارائه می‌دهد که به سه ماژول اصلی تقسیم می‌شوند:

هر ماژول برای انجام وظایف خاصی طراحی شده‌است که معمولاً در مرحله آماده‌سازی داده‌ها با آن‌ها مواجه می‌شویم.

پاک‌سازی داده‌ها با پکیج Klib

در این بخش به معرفی ابزارهای تمیز کردن داده‌ها و مثالی از آن‌ها می‌پردازیم.

مروری بر قابلیت‌های پاک‌سازی Klib

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

در اینجا برخی از اصلی‌ترین توابع پاک‌سازی داده‌ها توسط Klib آمده است:

مثالی از پاک‌سازی یک مجموعه داده با Klib

برای نشان دادن اثربخشی پکیج Klib، بیایید یک مثال از پاک‌سازی یک مجموعه داده را مرور کنیم.

    
 import klib
import pandas as pd
# Load a sample dataset
df = pd.read_csv('sample_data.csv')
# Perform comprehensive data cleaning
cleaned_df = klib.data_cleaning(df)
# Display the cleaned dataset
print(cleaned_df.head())
     
    
  

تابع klib.data_cleaning چندین وظیفه پاک‌سازی را به صورت یکجا انجام می‌دهد. با این حال، می‌توانیم از توابع مجزا برای کنترل دقیق‌تر استفاده کنیم.

    
 # Clean column names
df = klib.clean_column_names(df)
# Convert data types
df = klib.convert_datatypes(df)
# Drop missing values
df = klib.drop_missing(df)
# Handle columns with high ratio of missing values
df = klib.mv_col_handling(df)
# Pool duplicate subsets
df = klib.pool_duplicate_subsets(df)
     
    
  

 این توابع تضمین می‌کنند که مجموعه داده عاری از ناسازگاری‌ها و آماده برای تجزیه و تحلیل بیشتر است.

همچنین بخوانید: نقش حیاتی پیش‌پردازش داده‌ها و مدیریت مقادیر گم‌شده در یادگیری ماشین

تصویرسازی داده‌ها با پکیج Klib

در این بخش به معرفی ابزارهای تجسم داده‌ها و مثالی از آن‌ها می‌پردازیم.

مروری بر ابزارهای تصویرسازی Klib

تصویرسازی (Visualization) بخش ضروری تحلیل داده‌هاست. این کار کمک می‌کند الگوها و توزیع‌های پنهان در داده‌ها را درک کنیم، همبستگی‌ها را شناسایی کنیم و ناهنجاری‌ها را مشاهده کنیم.

Klib چندین ابزار قدرتمند برای تصویرسازی ارائه می‌دهد:

مثالی از تصویرسازی داده‌ها با Klib

بیایید چند نمونه تصویرسازی با استفاده از پکیج Klib را بررسی کنیم.

    
   import klib
import pandas as pd
# Load a sample dataset
df = pd.read_csv('sample_data.csv')
# Visualize categorical features
klib.cat_plot(df)
# Visualize correlation matrix
klib.corr_mat(df)
# Visualize correlation heatmap
klib.corr_plot(df)
# Visualize distribution of numeric features
klib.dist_plot(df)
# Visualize missing values
klib.missingval_plot(df)
   
    
  
بصری‌سازی با پکیج Klib

این توابع تصاویر ارزشمندی تولید می‌کنند که به فهم بهتر داده‌ها و اتخاذ تصمیمات آگاهانه کمک می‌کنند.

برای مطالعه بیشتر کلیک کنید: راهنمای جامع تحلیل داده و تحلیلگر داده

مزایای استفاده از Klib

پکیج Klib مزایای قابل‌توجهی برای پاک‌سازی و تجمیع داده‌ها ارائه می‌دهد که آن را به ابزاری ارزشمند برای دانشمندان داده تبدیل می‌کند. این بخش به قابلیت‌های Klib می‌پردازد و اثربخشی آن را در کاهش اندازه و ابعاد دیتاست‌های بزرگ، که منجر به تسریع محاسبات و کاهش زمان لازم برای ذخیره و بارگذاری داده‌ها می‌شود، نشان می‌دهد.

قابلیت‌های پاک‌سازی و تجمیع داده‌ها

توابع پاک‌سازی پکیج Klib به گونه‌ای طراحی شده‌اند که بتوانند دیتاست‌های بزرگ را به‌طور کارآمد مدیریت کنند. به عنوان مثال، دیتاست معروف داده‌های پروازهای آمریکا را در نظر بگیرید که حجم اولیه آن تقریباً ۵۱ مگابایت است. با اعمال توابع Klib، اندازه دیتاست به‌طور چشمگیری کاهش می‌یابد که اثربخشی این پکیج را نشان می‌دهد.

تابع klib.data_cleaning وظایف جامع پاک‌سازی داده‌ها را انجام می‌دهد، از جمله حذف ستون‌ها و ردیف‌های خالی و تک‌مقداری و تنظیم نوع داده‌ها برای بهینه‌سازی حافظه. در مثال داده‌های پروازهای آمریکا، این تابع اندازه دیتاست را حدوداً ۴۴ مگابایت کاهش می‌دهد (۸۵.۲-٪).

    
 import klib
import pandas as pd
# Load a sample dataset
df = pd.read_csv('us_flight_data.csv')
# Perform comprehensive data cleaning
cleaned_df = klib.data_cleaning(df)
# Display the cleaned dataset size
print(f"Cleaned dataset size: {cleaned_df.memory_usage(deep=True).sum() / (1024 ** 2):.2f} MB")
     
    
  

این کاهش چشمگیر با حذف ستون‌ها و ردیف‌های غیرضروری و همچنین استنتاج و اعمال نوع داده‌های بهینه حاصل می‌شود. برای دیتاست‌های بزرگتر، این کاهش اغلب از ۹۰٪ فراتر می‌رود.

کاهش حجم داده‌ها با تابع klib.data_cleaning

تغییر در نوع داده‌ها

پکیج Klib نوع داده‌های ستون‌ها را برای افزایش بیشتر بهره‌وری حافظه بهینه‌سازی می‌کند. این موضوع به‌ویژه هنگام کار با دیتاست‌های بزرگ مفید است، زیرا به کاهش میزان استفاده از حافظه کمک می‌کند.

تابع klib.pool_duplicate_subsets اندازه دیتاست را با شناسایی و تجمیع زیرمجموعه‌های تکراری ستون‌ها بیشتر کاهش می‌دهد. در مثال داده‌های پروازهای آمریکا، اعمال این تابع اندازه دیتاست را به تنها ۳.۸ مگابایت کاهش می‌دهد (کاهشی حدوداً ۹۲.۵-٪).

کاهش حجم داده‌ها با تابع klib.pool_duplicate_subsets

    
  # Pool duplicate subsets
pooled_df = klib.pool_duplicate_subsets(cleaned_df)
# Display the pooled dataset size
print(f"Pooled dataset size: {pooled_df.memory_usage(deep=True).sum() / (1024 ** 2):.2f} MB")
    
    
  

این تابع ستون‌ها را بر اساس تکرار در زیرمجموعه‌های داده تجمیع می‌کند. بزرگترین زیرمجموعه با تکرار کافی به اعداد صحیح کدگذاری می‌شود و به داده‌های اصلی اضافه می‌شود، و این امکان را فراهم می‌کند که ستون‌های شناسایی‌شده قبلی حذف شوند. در حالی که این روش محتوای اطلاعاتی را حفظ می‌کند، ممکن است برخی جزئیات در طول تجمیع از دست بروند. بنابراین، توصیه می‌شود ویژگی‌هایی که محتوای اطلاعاتی قابل‌توجهی دارند و همچنین ستون هدف، از طریق تنظیم “exclude” مستثنی شوند.

در مثال داده‌های پروازهای آمریکا، تابع cat_plot نشان می‌دهد که ستون “carrier” چند مقدار بسیار متداول دارد که چهار مقدار اول تقریباً ۷۵٪ را تشکیل می‌دهند. در مقابل، ستون “tailnum” چهار مقدار اول به سختی ۲٪ را تشکیل می‌دهند. این بینش اجازه می‌دهد تا ستون “carrier” تجمیع و کدگذاری شود در حالی که ستون “tailnum” در دیتاست حفظ می‌شود.

کاهش ابعاد داده‌ها با تابع klib.pool_duplicate_subsets

با استفاده از این روش، ۵۶,۰۰۶ ردیف تکراری در ۱۰ ستون می‌تواند به یک ستون با نوع داده عدد صحیح کدگذاری شود، که به‌طور قابل‌توجهی اندازه حافظه و تعداد ستون‌ها را کاهش می‌دهد، این امر زمان آموزش مدل را کاهش می‌دهد.

برخورد پیشرفته با مقادیر از دست رفته

تابع klib.mv_col_handling یک مکانیزم پیشرفته برای برخورد با ستون‌هایی که دارای مقادیر مفقود زیادی هستند فراهم می‌کند. به جای حذف ساده این ستون‌ها، Klib آن‌ها را به ویژگی‌های باینری (یعنی خالی یا غیرخالی) تبدیل می‌کند، همبستگی بین آن‌ها و سایر ویژگی‌ها را بررسی می‌کند و سپس بر اساس همبستگی آن‌ها با برچسب، تصمیم می‌گیرد که آیا آن‌ها را حذف کند یا خیر.

    
  # Handle columns with many missing values
handled_mv_df = klib.mv_col_handling(df)
# Display the dataset after handling missing values
print(f"Dataset size after handling missing values: {handled_mv_df.memory_usage(deep=True).sum() / (1024 ** 2):.2f} MB")
    
    
  

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

خلاصه‌ای از مزایا

توابع Klib نتایج فوق‌العاده‌ای را ارائه می‌دهند، حتی با دیتافریم‌هایی به بزرگی 20 گیگابایت، که اغلب کاهش اندازه‌ای بیش از 90% را به دست می‌آورند. با خودکارسازی وظایف خسته‌کننده پاکسازی و تجمیع داده‌ها، پکیج Klib به دانشمندان داده اجازه می‌دهد که بیشتر بر تحلیل و مدل‌سازی تمرکز کنند، که این امر باعث افزایش کارایی و دقت می‌شود.

محدودیت‌های پکیج Klib

با اینکه پکیج Klib یک مجموعه کامل از ابزارها برای پاک‌سازی داده، پیش‌پردازش و بصری‌سازی ارائه می‌دهد، اما محدودیت‌هایی نیز دارد:

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

مقایسه پکیج Klib با سایر کتابخانه‌های پاکسازی و پیش‌پردازش داده

برای درک بهتر جایگاه Klib در اکوسیستم کتابخانه‌های پاکسازی و پیش‌پردازش داده، آن را با Pandas، Scikit-learn و Dedupe مقایسه می‌کنیم.

ویژگی/کتابخانه Klib Pandas Scikit-learn Dedupe
سهولت استفاده بالا متوسط متوسط پایین
پاکسازی داده جامع، خودکار دستی، نیاز به تلاش بیشتر محدود، نیاز به یکپارچه‌سازی تخصصی در حذف داده‌های تکراری
پیش‌پردازش داده از پایه تا متوسط پایه جامع غیرقابل اعمال
بصری‌سازی یکپارچه، آسان برای استفاده نیاز به کتابخانه‌های اضافی محدود غیرقابل اعمال
قابلیت سفارشی‌سازی محدود برای کارهای پیشرفته بالا بالا پایین
یکپارچه‌سازی یکپارچگی آسان با جریان‌های کاری پایه یکپارچه با دیگر ابزارهای پایتون یکپارچه با جریان‌های کاری ماشین‌لرنینگ عملکرد ضعیف‌تر نسبت به سایر کتابخانه‌ها
مدیریت داده‌های بزرگ کارآمد برای اندازه داده‌های متوسط کارآمد کارآمد کارآمد برای حذف داده‌های تکراری
مهندسی ویژگی پایه پیشرفته، اما دستی پیشرفته، یکپارچه غیرقابل اعمال
تنظیم هایپرپارامترها فاقد پشتیبانی داخلی نیاز به کتابخانه‌های اضافی یکپارچه غیرقابل اعمال

پکیج Klib با سهولت استفاده بالا و پاکسازی خودکار جامع داده، برای کاربرانی که به دنبال آماده‌سازی سریع و کارآمد داده‌ها هستند، ایده‌آل است. با این حال، برای سفارشی‌سازی پیشرفته، مجموعه داده‌های بزرگ و جریان‌های کاری یکپارچه ماشین‌لرنینگ، ترکیب Klib با دیگر کتابخانه‌ها مانند Pandas و Scikit-learn توصیه می‌شود.

همچنین بخوانید: با پکیج Pandas آشنا شوید!

نکاتی درباره استفاده از پکیج Klib

استفاده مؤثر از توابع Klib

یکپارچه‌سازی Klib با کتابخانه‌ها و ابزارهای دیگر

اشتباهات رایج و چگونگی اجتناب از آن‌ها

جمع‌بندی

پکیج Klib با ارائه یک جعبه‌ابزار قدرتمند، کاربردی و آسان، عملکردی قابل قبول در حوزه پاک‌سازی و پیش‌پردازش داده‌ها از خود نشان داده‌است. این ابزار به طور چشمگیری زمان و تلاش لازم برای آماده‌سازی داده‌ها برای تحلیل را کاهش می‌دهد. توانایی Klib در مدیریت آسان مجموعه داده‌های بزرگ، همراه با عملکردهای خودکار برای پاک‌سازی و تجمیع داده‌ها، آن را به منبعی ضروری برای دانشمندان داده تبدیل کرده است که به دنبال ساده‌سازی روند کاری خود هستند. با ادغام قابلیت‌های پیشرفته تجسم داده‌ها و مکانیزم‌های پیشرفته مدیریت مقادیر گم‌شده، Klib نه تنها کیفیت داده‌ها را بهبود می‌بخشد، بلکه بینش‌های عمیق‌تری ارائه می‌دهد که در نهایت منجر به مدل‌های یادگیری ماشینی دقیق‌تر و مقاوم‌تر می‌شود. استفاده از Klib در پروژه‌های علوم داده می‌تواند داده‌های خام و غیرساختاریافته را به یک دارایی ارزشمند تبدیل کند و به دانشمندان داده امکان دهد تا بر تولید بینش‌های تأثیرگذار و راه‌حل‌های نوآورانه تمرکز کنند.

پرسش‌های متداول

چگونه می‌توان داده‌های بزرگ را با استفاده از پکیج Klib بهینه‌سازی کرد؟

پکیج Klib با توابعی مانند klib.data_cleaning و klib.pool_duplicate_subsets قادر است حجم داده‌ها را به طور چشمگیری کاهش دهد و باعث افزایش کارایی و کاهش زمان پردازش شود.

پکیج Klib چه قابلیت‌هایی برای تجسم (Visualization) داده‌ها ارائه می‌دهد؟

Klib ابزارهایی مانند klib.cat_plot، klib.corr_mat، و klib.dist_plot را برای تجسم توزیع ویژگی‌ها، همبستگی‌ها، و الگوهای پنهان در داده‌ها فراهم می‌کند.

مزایای استفاده از Klib در مقابل کتابخانه‌های مشابه چیست؟

پکیج Klib به دلیل سهولت استفاده، خودکارسازی جامع پاکسازی داده‌ها، و ابزارهای تجسم قوی متمایز است و در مقایسه با کتابخانه‌هایی مانند Pandas و Scikit-learn، ساده‌تر است.

آیا Klib قابلیت یکپارچه‌سازی با سایر کتابخانه‌ها و ابزارهای پایتونی را دارد؟

بله، Klib به خوبی با کتابخانه‌هایی مانند Pandas و Scikit-learn یکپارچه می‌شود و می‌تواند در جریان‌های کاری یادگیری ماشین مورد استفاده قرار گیرد.

محدودیت‌های پکیج Klib چیست و چگونه می‌توان بر آنها غلبه کرد؟

محدودیت‌هایی مانند پیش‌پردازش سفارشی و مدیریت داده‌های بسیار بزرگ در Klib وجود دارد که می‌توان با ترکیب آن با سایر کتابخانه‌ها و استفاده از راه‌حل‌های محاسبات توزیع شده این محدودیت‌ها را برطرف کرد.

یادگیری تحلیل داده را از امروز شروع کنید!

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

مشاوران کافه‌تدریس به شما کمک می‌کنند مسیر یادگیری برای ورود به این حوزه را شروع کنید:

دوره جامع دیتا ساینس و ماشین لرنینگ

خروج از نسخه موبایل