مروری بر 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 استفاده نمود. در کل نمی‌توان این دو گزینه را جایگزین یکدیگر دانست. اما اگر به هر دلیل خواستید با این نرم‌افزار کار کنید با ادامه‌ی این پست همراه باشید. Con­tin­ue read­ing →

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

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

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

Con­tin­ue read­ing →

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

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

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

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

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

Con­tin­ue read­ing →

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

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

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

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

اضافات:

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

کسورات:

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

ما هم همین داستان را در قالب یک تابع در R پیاده می‌کنیم: Con­tin­ue read­ing →

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

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

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

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

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

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

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

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

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