خانه / ۱۳۹۷

بایگانی سالانه: ۱۳۹۷

درخت تصمیم و جنگل تصادفی در R — راهنمای کاربردی

«درخت تصمیم» (Decision tree) یک راهکار بسیار قدرتمند بصری برای تحلیل یک سری از خروجی‌های پیش‌بینی شده برای یک مدل مشخص است. همچنین، از این الگوریتم اغلب به عنوان مکمل (و یا حتی جایگزین) تحلیل «رگرسیون» (Regression) در تعیین اینکه چگونه یک سری از «متغیرهای توصیفی» (Explanatory Variables) یک متغیر وابسته را تحت تاثیر قرار می‌دهند استفاده می‌شود. در مثال بیان شده در این مطلب، تاثیر متغیرهای توصیفی «سن» (age)، «جنسیت» (gender)، «مایل» (miles)، «اعتبار» (debt) (منظور اعتبار کارت بانکی یا همان کارت اعتباری فرد است) و «درآمد» (income) بر «متغیر وابسته» (dependent variable) «قیمت خودرو» (car sales) با استفاده از درخت تصمیم و «جنگل تصادفی» (Random Forest) تحلیل خواهد شد. مجموعه داده مورد استفاده در این مطلب، از مسیر (+) قابل دانلود است. مساله دسته‌بندی و درخت تصمیم ابتدا، مجموعه داده بارگذاری و متغیر پاسخ ساخته می‌شود (که برای درخت تصمیم مورد استفاده قرار می‌گیرد زیرا نیاز به تبدیل فروش از متغیر عددی به طبقه‌ای وجود دارد): #Set Directory and define response variable setwd("C:/Users/michaeljgro..

توضیحات بیشتر »

معادله دیفرانسیل خطی — از صفر تا صد

در راستای ارائه مفاهیم مرتبط با معادلات دیفرانسیل، روش‌های حل این معادلات اعم از مرتبه اول، دوم و مراتب بالاتر توضیح داده ‌شدند. با این حال در این مطلب قصد داریم تا معادله دیفرانسیل خطی مرتبه اول را مورد بررسی قرار دهیم. البته مطالعه مطالب معادلات دیفرانسیل، معادلات مرتبه دوم، معادلات دیفرانسیل مرتبه بالاتر و معادلات ناهمگن نیز به منظور درک هرچه بهتر این مطلب، خالی از لطف نخواهد بود. پاسخ معادله دیفرانسیل خطی یک معادله دیفرانسیل مرتبه اول می‌تواند خطی یا غیر خطی باشد. همان‌طور که پیش‌تر نیز اشاره شده، اگر در یک معادله دیفرانسیل توابعِ y یا مشتقاتشان در هم ضرب شده باشند، آن معادله غیر خطی خواهد بود. برای نمونه رابطه زیر، یک معادله دیفرانسیل غیرخطی را نشان می‌دهد. $$ large {y ^ { prime }} ^ 2 + y + x ^ 2 + 1 = 0 $$ دلیل غیر خطی بودن رابطه فوق وجود ترمِ $$ large {y ^ { prime } } ^ 2 $$ است. در این مطلب قصد داریم تا معادلات دیفرانسیل خطی مرتبه اول را حل کنیم. شکل کلی این معادلات به صورت زیر است. $$ large begin {equation} frac { { d y } } { { d t } } + p left ( t right ) y = g ..

توضیحات بیشتر »

ساخت اپلیکیشن های iOS با استفاده از Xamarin و Visual Studio — صفر تا صد

در این نوشته با روش ساخت ابتدایی یک اپلیکیشن با استفاده از Xamarin و Visual Studio و از طریق نوشتن یک برنامه مشاهده گالری عکس آشنا می‌شویم. توسعه دهنگان هنگام ساخت اپلیکیشن‌های iOS معمولاً تمایل دارند از زبان‌ها و IDE ارائه شده از سوی اپل استفاده کنند که شامل Objective-C / Swift و Xcode می‌شود. با این وجود، این تنها گزینه نیست و می‌توان اپلیکیشن‌های iOS را با استفاده از انواع زبان‌ها و فریمورک‌های دیگر نیز ایجاد کرد. یکی از محبوب‌ترین گزینه‌ها زامارین (Xamarin) است. زامارین یک فریمورک چند پلتفرمی است که امکان توسعه اپلیکیشن‌های iOS، اندروید، OS X و ویندوز را با بهره‌گیری از سی شارپ (#C) و ویژوال استودیو فراهم ساخته است. مزیت اصلی زامارین این است که به فرد امکان اشتراک کد بین اپلیکیشن‌های iOS و اندروید را می‌دهد. زامارین نسبت به فریمورک‌های چند پلتفرمیِ دیگر مزیت‌هایی دارد. با بهره‌گیری از زامارین پروژه‌ها به صورت کد بومی (native) کامپایل می‌شوند و می‌توانند در پس‌زمینه از API-های بومی استفاده کنند. این بدان معنی است که اپلیکیشن‌های زامارین که به خوبی نوشته شده باشند، قابل تمییز از ا..

توضیحات بیشتر »

پخش بار گوس سایدل — به زبان ساده

پخش بار، یکی از مباحث مهم در مطالعه سیستم‌های قدرت است که در آموزش‌های پیشین مجله فرادرس، مفاهیم و معادلات مربوط به آن را معرفی کردیم. همچنین گفتیم که روش‌هایی از قبیل گوس سایدل، نیوتن رافسون قطبی، نیوتن رافسون دکارتی و پخش بار تفکیک‌شده سریع برای حل معادلات آن وجود دارد. در این آموزش، روش گوس سایدل را معرفی می‌کنیم. پیشنهاد می‌کنیم قبل خواندن روش «پخش بار گوس سایدل»، آموزش «پخش بار در سیستم قدرت — مفاهیم و معادلات» را مطالعه کنید. قبل از آنکه درباره روش پخش بار گوس سایدل (Gauss Seidel load flow) یا GSLF بحث کنیم، ابتدا کاربرد روش گوس سایدل پایه را برای حل مجموعه معادلات جبری غیرخطی بیان می‌کنیم. دستگاه زیر را با $$n$$ معادله در نظر بگیرید که در آن، $$n$$ متغیر مجهول $$x_1$$، $$x_2$$، $$ldots$$ و $$x_n$$ وجود دارد: رابطه (1) لازم به ذکر است که در معادلات (1)،‌ توابع $$f_1$$، $$f_2$$، $$ldots$$ و $$f_n$$ همه ذاتاً غیرخطی هستند و فرم خاصی برای آن‌ها در نظر گرفته نشده است. با عملیات جبری ساده‌ای می‌توانیم متغیر $$x_1$$ معادله اول رابطه (1) را برحسب سایر متغیرها بنویسیم. همین کار را م..

توضیحات بیشتر »

تابع پتانسیل و جریان پتانسیل در سیالات — از صفر تا صد

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

توضیحات بیشتر »

https://blog.faradars.org/calculus-introduction/

ما معمولاً شکل‌ها، فرمول‌ها و موقعیت‌های مختلف را با مقادیرشان بررسی می‌کنیم؛ اما حسابان دو قدرت ماورایی در اختیار ما قرار می‌دهد تا در این زمینه‌ها عمیق‌تر شویم. این دو قدرت شامل بینایی اشعه ایکس و بینایی تایم‌لپس هستند که در ادامه معرفی می‌کنیم. بینایی اشعه ایکس (X-Ray): به کمک این قدرت می‌توان قطعه‌های پنهان درون یک الگو را مشاهده کرد. ما در این موارد تنها درخت را نمی‌بینیم، بلکه حلقه‌های تشکیل دهنده آن که در طی رشد ایجاد شده‌اند را نیز مشاهده می‌کنیم. بینایی تایم-لپس (Time-Lapse): به کمک حسابان می‌توانید مسیر آینده شیئی که پیش روی شما قرار دارد را نیز مشاهده کنید. ماه را در آسمان می‌بینید و می‌دانید که در طی چند روز آینده به صورت بدر کامل خواهد بود؛ اما در روزهای پس از آن نزدیک به افق خواهد بود و به رنگ تیره‌تر درمی‌آید. بنابراین می‌توانید برنامه عکاسی خود را تنظیم کنید. اینک سؤال آن است که حسابان از چه نظر مفید است؟ تصور کنید قدرت بینایی اشعه ایکس یا تایم‌لپس را در اختیار داشته باشید. در مورد یک شیء یا سناریو چگونه می‌توان از آن بهره گرفت؟ در این مسیر چه اتفاق‌هایی رخ می‌دهد؟..

توضیحات بیشتر »

معرفی کتاب Clean Code

ممکن است کدهای که بد نوشته شده اند نیز بازده داشته باشند و کار برنامه‌نویس را راه بیاندازند، اما اجرا کردن این‌گونه کدها می‌تواند یک شرکت و یا استارتاپ را از حرکت بازدارد و نیاز به توضیح نیست که هر ساله زمان بسیار زیاد و منابع هنگفتی صرف رفع ضررها و زیان‌های ناشی از به‌کارگیری کدهای غیرحرفه‌ای در برنامه‌نویسی می‌شود. امروز قصد داریم با معرفی کتاب Clean Code روش های نوشتن کدهای برنامه نویسی خوب و ماژولار آشنا شویم.این کتاب یک انقلاب در مهندسی نرم افزار می باشد. داستان نوشتن کتاب Clean Code این کتاب سعی دارد توسعه‌ی نرم‌افزار به روش چابک (Agile) را به شما آموزش دهد. داستان نوشتن کتاب از آنجا شروع شد که رابرت.سی.مارتین (Robert C. Martin) نویسنده‌ی این کتاب، مدت‌ها قبل، سردمداران تفکرِ اجایل را به یک دورهمی دوستانه دعوت کرد. هدف اصلی این دورهمی بررسی نقاط اشتراک متدهای توسعه نظیر اسکرام، کریستال، ایکس.پی، پراگماتیک و … بود. نهایتاً نتیجه‌ی این گردهمایی به نام‌گذاری متدها و طبقه‌بندی روش‌های مختلف زیر پرچمی تحت عنوان اجایل/چابک (یا Adaptive) منتهی شد. از دیگر ثمرات این جلسه، توافق بر سر..

توضیحات بیشتر »

چرا وردپرس برای کسب و کار مناسب است؟

بیش از یک‌چهارم از وب‌سایت‌های دنیا با وردپرس طراحی‌شده‌اند و وب‌سایت ساز منتخب توسط شرکت‌های بزرگ و پیشرو مانند CNN، Sony، TIME و Disney به شمار می‌رود. وردپرس در ابتدا به‌عنوان یک پلتفرم ساده و راحت برای بلاگرها ساخته شد؛ اما اکنون با امکانات و عملگرهایی که آن را برای ساخت انواع وب‌سایت‌های کسب‌وکار ایدئال می‌کند، محبوب‌ترین سیستم مدیریت محتوا در جهان است. در این پست قصد داریم به این موضوع بپردازیم که چرا وردپرس برای کسب و کار های بزرگ و کوچک و استارتاپ ها با نوع فعالیت های مختلف مناسب است؟ ۱.نصب و تنظیمات ساده و آسان به‌محض آنکه وردپرس را دانلود کنید، چندان طول نمی‌کشد که می‌توانید آن را تنظیم و انتشار محتوا را آغاز کنید. وردپرس ابتدا برای بلاگرهایی طراحی‌شده بود که احتمال می‌رفت تجربه کد نویسی چندانی نداشته باشند و به همین خاطر روند نصب آن آسان است و با چند کلیک ساده اجرا می‌شود. پس‌ازاینکه وردپرس نصب شد، تنظیمات و مدیریت محتوا در بخش داشبورد مدیریت به‌راحتی انجام می‌شود. کاربرانی که تجربه کد نویسی دارند، می‌توانند مستقیماً با فایل‌های هسته اصلی وردپرس کار کنند. اما برای کاربران..

توضیحات بیشتر »

معماری میکروسرویس چیست؟ — به زبان ساده

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

توضیحات بیشتر »

آرایه در جاوا اسکریپت — راهنمای عملی

این بخش از سری مقاله‌های راهنمای عملی جاوا اسکریپت ساختمان داده آرایه را در زبان برنامه‌نویسی جاوا اسکریپت بررسی خواهیم کرد. آرایه یک روش خوب برای فهرست کردن آیتم‌های داده‌ای تحت نام یک متغیر منفرد است. در ادامه دلیل مفید بودن آن را توضیح می‌دهیم و سپس شیوه ایجاد یک آرایه، بازیابی، افزودن و حذف آیتم‌ها در یک آرایه مرتب و موارد بسیار دیگر را بررسی می‌کنیم. پیش‌نیازها سواد مقدماتی رایانه درک اولیه‌ای از HTML و CSS آشنایی ابتدایی با ماهیت جاوا اسکریپت هدف از این مقاله درک آرایه‌ها و چگونگی دستکاری آن‌ها در جاوا اسکریپت است. آرایه چیست؟ آرایه‌ها عموماً به صورت «شیءهای شبه لیست» توصیف می‌شوند. این‌ها اساساً شیءهای منفردی هستند که شامل چند مقدار ذخیره شده در یک لیست هستند. اشیای آرایه می‌توانند در متغیرها ذخیره شوند و به روشی کاملاً مشابه با هر متغیر دیگر می‌توانیم با آن‌ها کار کنیم، تنها تفاوت در این است که هر مقدار درون این لیست را می‌توان مستقلاً مورد دسترسی قرار دارد و از این رو به شیءهای بسیار مفید و کارآمدی به خصوص در مواردی مانند تعریف حلقه و انجام کارهای تکراری روی هر مقدار تبدیل م..

توضیحات بیشتر »