پیاده‌سازی قسمت‌های ۱۵ و ۱۶ ویدیو‌های درک برنامه‌نویسی جادی در R یا چی می شه اگر ۵۰ نفر در یک اتاق…

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

چی می شه اگر ۵۰ نفر در یک اتاق نفری ۱۰۰ دلار داشته باشن. در هر دور هر کس به شکل رندم یک نفر رو انتخاب می کنه و یک دلار از پولش رو به اون می ده. اگر پول کسی تموم بشه از بازی بیرون گذاشته می شه. بعد از بارها بازی کردن، وضعیت پول ها چطور خواهد بود؟

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

بیشتر بخوانید

یادگیری ماشین در R — بخش دوم، الگوریتم k-NN

اولین الگوریتمی که در این سری از پست‌ها به آن می‌پردازیم، الگوریتم K- near­est neigh­bours یا به اختصار k-NN نام دارد. این الگوریتم  یکی از ساده‌ترین الگوریتم‌های یادگیری ماشینی است و به دسته‌ای از این الگوریتم‌ها به نام الگوریتم‌های clas­si­fi­ca­tion (طبقه‌بندی) تعلق دارد. الگوریتم‌های clas­si­fi­ca­tion در یادگیری ماشینی و آمار، الگوریتم‌هایی هستند که مشخص می‌کنند با توجه به یک مجموعه‌ی داده موجود و مورد استفاده به منظور آموزش که شامل مشاهداتی است که عضویتشان در یک دسته موجود است، یک مشاهده جدید به کدام یک از مجموعه دسته‌ها( زیرجمعیت‌ها) تعلق دارد. این الگوریتم در دسته‌ای از الگوریتم‌های یادگیری ماشین به نام یادگیری با نظارت قرار می‌گیرد.

بیشتر بخوانید

یادگیری ماشین در R — بخش یک و نیم، طبقه‌بندی الگوریتم‌های یادگیری ماشینی

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

  • طبقه‌بندی بر اساس نحوه یادگیری
  • طبقه‌بندی بر اساس کاربرد و شباهت بین الگوریتم‌ها

بیشتر بخوانید

با استفاده از R، گوگل داکس و کمی متن‌کاوی، فلش کارت بسازیم

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

برای درس زبان در کنکور احتیاج به این داشتم که از لغات مهم کنکور، یک فلش کارت سازگار با نرم‌افزار/اپ Anki بسازم. نقطه‌ی شروع هم pdf کنکور سال قبل بود. ۳ صفحه زبان را از فایل pdf کندم و در گوگل درایو آپلود کردم. گوگل یک ocr بسیار بسیار خفن داخل این سرویس قرار داده است، برای استفاده از آن کافی است مانند عکس زیر روی فایل pdf در گوگل درایو کلیک راست کنید و گزینه‌ی باز کردن با سندنگار را انتخاب کنید. ( این یک پاسخ برای جستجوی پایان‌ناپذیر دانشجویان ایرانی برای تبدیل pdf به word است)

بیشتر بخوانید

حل مدل‌های برنامه‌ریزی عدد صحیح و MILP با استفاده از R

در مطلب قبلی، به حل یک مدل برنامه‌ریزی خطی با استفاده از پکیج lin­prog پرداختیم، کار با این پکیج ساده است اما همانطور که گفتیم، محدودیت‌‌هایی دارد و نمی‌تواند مسائل برنامه‌ریزی عدد صحیح یا مسائل برنامه‌ریزی مختلط (Mixed Inte­ger Pro­gram­ming) را حل کند، برای این کار، به سراغ پکیج  دیگری به نام lpSolve می‌رویم. این پکیج را با دستور زیر نصب کنید:

بیشتر بخوانید

حل مدل‌‌های برنامه‌ریزی خطی با استفاده از R

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

بیشتر بخوانید

مقدمه‌ای بر شبیه‌سازی در R، روش مونت‌کارلو

یکی از کاربرد‌های کمتر شناخته‌شده‌ی R، استفاده از آن برای شبیه‌سازی است. شبیه‌سازی سیستم‌های گسسته‌ پیش‌آمد(DES) ، سیستم‌های صف و روش‌های مانند مونت‌کارلو رایج‌ترین شبیه‌سازی‌هایی هستند که در R انجام می‌شوند. البته این را هم در نظر داشته باشید که R کمی تا قسمتی کند است و چیزی که آن را برای شبیه‌سازی مطلوب کرده این است که بسیاری از محققینی که زمینه‌ی آماری دارند R را به زبان‌ها و ابزارهای دیگر ترجیح می‌دهند، از طرف دیگر، متن‌باز بودن R  مزیت آن در این زمینه در مقابل Mat­lab است. از آنجایی که این وب‌سایت درباره‌ی R و مخلفاتش است، پرداختن به مبحث شبیه‌سازی در آن خالی از لطف نیست. تقریبا هر جایی که مبحث شبیه‌سازی مطرح می‌شود، روش مونت‌کارلو اولین روشی است که مورد بحث قرار می‌گیرد.

بیشتر بخوانید

انواع ساختارهای داده‌ در R، بخش اول، بردارها

بردارها

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

بیشتر بخوانید

آموزش نوشتن تابع در R، بخش اول

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

بیشتر بخوانید

با R و یک الگوریتم نسبتا ساده موبایل انتخاب کنید

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

mcdm همان‌طور که احتمالا از اسمش مشخص است هنگامی به کار می‌رود که تصمیم‌گیرنده می‌‌خواهد چندین معیار را با هم در تصمیم‌گیری خود لحاظ کند. چندین روش و الگوریتم برای mcdm پیشنهاد شده و در این پست قرار است با یکی از الگوریتم‌های نسبتا ساده‌ی mcdm به نام TOPSIS آشنا شویم.

بیشتر بخوانید