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

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

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

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

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

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

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

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

مروری بر RTVS

RTVS">

RTVS مخفف R tools For visu­al stu­dio یک سری افزونه در Microsoft Visu­al Stu­dio است که این نرم‌افزار را به یک IDE نسبتا مناسب برای زبان R تبدیل می‌کند. از مزیت‌های آن نسبت به Rstu­dio می‌توان به سیستم فایل بهتر و امکان استفاده بهتر از زبان‌های برنامه‌نویسی دیگر در کنار آن اشاره کرد. البته قبل از این Rstu­dio را پاک کنید باید به این نکته اشاره کنم که بعد از دانلود و اجرای فایل نصب یک مگابایتی Visu­al Stu­dio و گذاشتن تیک نصب R، هنوز هم ۶ یا ۷ گیگابایتی باید دانلود کنید و اگر نصب اینترنتی کار نکند باید فایل نصب ۲۰ یا ۲۳ گیگابایتی آن را دانلود کنید. Rstu­dio هم از آن طرف پشتیبانی خوبی از چندین پکیج پرکاربرد و قوی دارد که استفاده از آنها در RTVS کمی مشکلتر است. بر خلاف RStu­dio، نمی‌توان از RTVS در لینوکس و مک استفاده کرد و RTVS فقط با نسخه‌های ۶۴ بیتی R بر روی ویندوزهای ۶۴ بیتی کار می‌کند. در RTVS می‌توان از هر دو نسخه R معمولی و MRO استفاده نمود. در کل نمی‌توان این دو گزینه را جایگزین یکدیگر دانست. اما اگر به هر دلیل خواستید با این نرم‌افزار کار کنید با ادامه‌ی این پست همراه باشید.

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

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

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

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

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

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

یادگیری ماشینی شاخه‌ای از علوم کامپیوتر است که به گفته آرتور ساموئل در ۱۹۵۹، به کامپیوترها توانایی یاد گرفتن می‌دهد، بدون آن که صراحتا برای آن برنامه‌ریزی شده باشند. یادگیری ماشینی از مطالعه شناسایی الگوها و نظریه یادگیری محاسباتی تکامل یافته و به طور کلی به مطالعه و ساخت الگوریتم‌هایی می‌پردازد که می‌توانند از داده‌های موجود یاد بگیرند و بر روی داده‌ها پیش‌بینی انجام دهند. در این مجموعه پست‌ها که هنوز معلوم نیست تا کی ادامه داشته باشید، قصد دارم درباره‌ی الگوریتم‌های رایج یادگیری ماشینی که پیاده‌سازی آنها در R آسان است و یا پکیج‌های خوبی در R دارند بنویسم. ایده‌ی کلی این مجموعه آشنایی با آن بخش از یادگیری ماشینی است که در مبحث تحلیل داده کاربرد دارند و قرار نیست به کاربردهای پیچیده‌تر آن برسد. این پست‌ها را با الگوریتم‌های کلسیفایر مانند K-NN در پست بعدی شروع می‌کنیم، در ادامه به الگوریتم‌های پیشبینی مانند مدل‌های رگرسیونی خواهیم رسید و در نهایت به انواع دیگر الگوریتم‌های یادگیری ماشینی می‌رسیم. هدف این پستها ارایه‌ی یک توضیح فارسی برای الگوریتم، کد R آن و یک دیتاست به عنوان مثال است. اگر پیشنهادی برای این مجموعه دارید، یا دیتاستی مناسب برای این مجموعه سراغ دارید خوشحال می‌شود در نظرات همین مطلب آن را به اشتراک بگذارید.

مروری بر آزمون‌های فرض در R، بخش اول

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

این پست را با تست نرمال بودن که در یکی از پست‌های قبلی وبلاگ درباره‌ی آن نوشته بودم آغاز می‌کنیم، سپس به سراغ آزمون فرض برای برابری واریانس (با فرض نرمال بودن و نبودن) خواهیم رفت و در نهایت نگاهی بر آزمون‌های فرض برابری میانگین خواهیم انداخت.

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

چگونه در R آنالیز واریانس (آنووا) یک‌طرفه انجام دهیم

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

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

تحلیل ۲ میلیون گذرواژه در R، بخش دوم

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

اضافات:

  • تعداد کاراکترها: طول * ۴
  • تعداد حروف بزرگ: طول * ۳
  • تعداد حروف کوچک: طول * ۳
  • تعداد ارقام: طول * ۲.۵
  • کاراکترهای ویژه: طول * ۴
  • ترکیبی از دو مورد بالا: طول
  • ترکیبی از سه مورد بالا: طول * ۱.۵
  • ترکیبی از هر چهار مورد: طول * ۲

کسورات:

  • فقط حروف: –طول
  • فقط اعداد: –طول
  • فقط کاراکترهای ویژه: –طول
  • کاراکتر تکراری: –طول

ما هم همین داستان را در قالب یک تابع در R پیاده می‌کنیم:

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

تحلیل ۲ میلیون گذرواژه در R، بخش اول

مدتی پیش این پست در وبسایت data sci­ence cen­tral نظرم را جلب کرد، نویسنده، لینکی به یک فایل متنی ۲۰ مگابایتی که حاوی حدود ۲ میلیون گذرواژه بدست آمده از ایمیلهای به سرقت رفته است را به اشتراک گذاشته و از بقیه خواسته تا با مهارتهایشان این فایل را تحلیل کنند. تحلیل کاربری به نام Jian­hua Li  از این فایل در گیتهاب نظر مرا به خود جلب کرد و از آنجایی که این تحلیل در پایتون( پیتون؟) انجام شده بود، تصمیم گرفتم آن را در R انجام دهم.

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

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

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

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

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