خانه / بایگانی برچسب: علم داده

بایگانی برچسب: علم داده

کاربرد اصل پارتو در علم داده — به زبان ساده

در این مطلب، راهکارهایی بیان شده که با بهره‌گیری از آن‌ها، «دانشمندان داده» (Data Scientists) می‌توانند از قدرت «اصل پارتو» (Pareto Principle) برای انجام فعالیت‌های خود بهره‌مند شوند. در ادامه، ابتدا به بیان مفاهیم و تعاریف و سپس، کاربرد اصل پارتو در علم داده پرداخته خواهد شد. اصل پارتو چیست؟ بیش از یک قرن پیش، «ویلفردو پارتو» (Vilfredo Pareto)، مهندس، جامعه‌شناس، اقتصاددان و فیلسوف، نتایج تحقیقات خود پیرامون توزیع ثروت در جامعه را منتشر کرد. نتایج این پژوهش حاکی از آن بود که ٪۸۰ از ثروت، در اختیار ٪2۰ از افراد جامعه است. این نتیجه، اقتصاددان‌ها، جامعه‌شناس‌ها و دانشمندان علوم سیاسی را شگفت‌زده کرد. در طول قرن گذشته، پیشگامان متعددی در زمینه‌های گوناگون شاهد این توزیع غیر متناسب در چندین زمینه از جمله کسب و کار بودند. این نظریه که تعداد بسیار کمی از ورودی‌ها/علت‌ها (برای مثال ٪2۰) به طور مستقیم روی بخش قابل توجهی از خروجی‌ها/معلول‌ها (برای مثال ٪۸۰) تاثیر می‌گذارد، تحت عنوان «اصل پارتو» (Pareto Principle) شناخته شده است؛ که به آن، قانون 2۰-۸۰ نیز می‌گویند. اصل پارتو بسیار ساده و در ..

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

مهارت های مورد نیاز شرکت ها در سال ۱۳۹۸ — به همراه منابع یادگیری

بسیاری از افراد، با آغاز سال نو به دنبال تغییر زندگی فردی و حرفه‌ای خود هستند. از سوی دیگر، افراد حرفه‌ای اغلب علاقمند به یادگیری مهارت‌های جدید هستند. یادگیری دانش و مهارت‌های جدید، علاوه بر مزایای گوناگون، نقش قابل توجهی نیز در شاد بودن افراد دارد. یکی از بهترین زمان‌ها برای یادگیری مهارت‌های جدید، اولین ماه سال است. زیرا، افراد معمولا از آغاز سال نو شروع به ساخت عادت‌های جدید برای خود می‌کنند. انسان‌ها معمولا مهارت‌آموزی را نه صرفا با هدف دنبال کردن علاقمندی‌های شخصی که با هدف ارتقا سطح شغلی و درآمدی خود انجام می‌دهند. در این میان، یک چالش اساسی در راستای یادگیری مهارت‌های جدید وجود دارد و آن، انتخاب مهارت های مورد نیاز شرکت ها است. مطابق با آمارهای ارائه شده توسط «لینکدین» (LinkedIn)، دستکم ۵۰۰۰۰ مهارت در دنیا وجود دارد. حقیقتا شگفت‌آور است، ۵۰۰۰۰ مهارت! وجود این تعداد مهارت، انتخاب گزینه صحیح را شاید کمی دشوار کند. مهارت های مورد نیاز شرکت ها برای مشخص کردن اینکه یادگیری چه مهارت‌هایی در سال جدید مفیدتر خواهد بود، بررسی روی داده‌های لینکدین انجام شده است. مواردی که در ادامه بیان ..

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

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

مبحث «سری‌های زمانی» (Time Series) به داده‌های وابسته به زمان مربوط می‌شود. تحلیل سری زمانی نیز یک از روش‌های تحلیل چنین داده‌هایی است. برای مثال تشخیص روند تغییرات ارزش سهام با توجه به داده‌های جمع‌آوری شده در طول یک سال می‌تواند تحلیل سری زمانی نامیده شود. معمولا در تحلیل سری زمانی، هدف ایجاد مدلی است که رفتار داده‌های مرتبط با زمان را تشخیص دهد. به این ترتیب می‌توان عمل پیش‌بینی را برای آینده صورت داد. به نظر می‌رسد تحلیل سری زمانی، کمک می‌کند که با مطالعه گذشته و درس گرفتن از آن، آینده را پیش‌بینی کرد و به بهتر شدن آن دست زد. برای آشنایی با مفاهیم اولیه و آماری این مبحث می‌توانید به نوشتار تحلیل سری زمانی — تعریف و مفاهیم اولیه مراجعه کنید. همچنین برای آشنایی با ابزارهای تحلیل سری زمانی بهتر است نوشتار فرادرس در این زمینه با نام تابع خودهمبستگی (Autocorrelation Function) — مفاهیم و کاربردها را نیز مطالعه کنید. سری زمانی در علم داده گاهی می‌توان سری زمانی را به صورت یک مسئله رگرسیون با متغیر مستقل «زمان» در نظر گرفت. در این حالت هدف از انجام تحلیل سری زمان، محاسبه مقدار متغیر واب..

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

پنج ترفند پایتون که باید حتماً بدانید — به زبان ساده

شما چه یک مهندس هوش مصنوعی ارشد و چه یک دانشجوی سال اول زیست‌شناسی باشید، به هر حال در مقطعی با زبان برنامه‌نویسی پایتون مواجه خواهید شد. پایتون نخستین بار در سال 1991 انتشار یافت و به زبان محبوبی تبدیل یافت که از سوی برنامه‌نویس‌ها و اهالی فناوری مورد استفاده قرار می‌گیرد. بر اساس میزان نمایش سؤال‌های وب‌سایت Stack Overflow، پایتون به سرعت در حال تبدیل به محبوب‌ترین زبان برنامه‌نویس‌ها است. رشد شگفت‌انگیز پایتون پایتون یک زبان سطح بالا و تفسیری با ساختار نسبتاً ساده است و حتی برای افرادی که هیچ تجربه قبلی برنامه‌نویسی ندارند نیز عالی است. کتابخانه‌های محبوب پایتون کاملاً با آن یکپارچه شده‌اند و در رشته‌های مختلفی مانند بیوانفورماتیک (biopython)، علم داده (pandas)، یادگیری ماشین (keras/ tensorflow) و حتی نجوم (astropy) مورد استفاده قرار می‌گیرند. افرادی که زبان‌های جاوا و C را آموخته باشند، احتمالاً می‌توانند پایتون را به صورت خودآموز یاد بگیرند. با این که پایتون بسیار کندتر از جاوا و دیگر زبان‌ها اجرا می‌شود؛ اما در عمل با داشتن امکانات یکپارچه‌ای که به خوبی توسعه یافته‌اند، موجب بهب..

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

یادگیری پایتون با ساخت اپلیکیشن های واقعی (بخش اول) — راهنمای جامع

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

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

درخت تصمیم و جنگل تصادفی در 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..

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

درخت تصمیم با پایتون — راهنمای کاربردی

در این مطلب، چگونگی ساخت «درخت تصمیم» (Decision Trees) در «زبان برنامه‌نویسی پایتون» (Python Programming Language) آموزش داده شده است. یک درخت تصمیم، مدلی است که برای حل وظایف «دسته‌بندی» (Classification) و «رگرسیون» (Regression) مورد استفاده قرار می‌گیرد. مدل، امکان تولید خروجی‌های گوناگون را فراهم کرده و امکان انجام تصمیم‌گیری با داده‌ها را فراهم می‌کند. در مثال بیان شده در این مطلب، تاثیر «متغیرهای توصیفی» (explanatory variables) (از جمله سن، جنسیت، صفحات وب بازدید شده در روز، ساعت ویدئوهای بازدید شده در هفته و درآمد فرد) در استفاده از اینترنت (مصرف مگابایت در هفته) تحلیل خواهد شد. شایان توجه است که مجموعه داده مورد استفاده در این مطلب، از این مسیر (+) قابل دانلود است. گام 1: بارگذاری کتابخانه‌ها ابتدا، کتابخانه «نام‌پای» (Numpy) و train_test_split از کتابخانه «سایکیت‌لِرن» (Scikit-Learn) وارد (Import) می‌شود. با استفاده از کلاس فراخوانی شده از کتابخانه sklearn، مجموعه داده به داده‌های «آموزش» (Training) و «آزمون» (Test) شکسته می‌شود، و به موجب آن، مدل روی داده‌های آموزش ساخته و صح..

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

الگوریتم جنگل تصادفی (Random Forest) — راهنمای جامع و کاربردی

«جنگل تصادفی» (Random Forest)، یک الگوریتم یادگیری ماشین با قابلیت استفاده آسان است که اغلب اوقات نتایج بسیار خوبی را حتی بدون تنظیم فراپارامترهای آن، فراهم می‌کند. این الگوریتم به دلیل سادگی و قابلیت استفاده، هم برای «دسته‌بندی» (Classification) و هم «رگرسیون» (Regression)، یکی از پر کاربردترین الگوریتم‌های یادگیری ماشین محسوب می‌شود. در این مطلب، چگونگی عملکرد جنگل تصادفی و دیگر مباحث مهم پیرامون آن مورد بررسی قرار خواهند گرفت. درخت تصمیم، بلوک سازنده جنگل تصادفی برای درک چگونگی عملکرد جنگل تصادفی، ابتدا باید الگوریتم «درخت تصمیم» (Decision Tree) که بلوک سازنده جنگل تصادفی است را آموخت. انسان‌ها همه روزه از درخت تصمیم برای تصمیم‌گیری‌ها و انتخاب‌های خود استفاده می‌کنند، حتی اگر ندانند آنچه که از آن بهره می‌برند نوعی الگوریتم یادگیری ماشین است. برای شفاف کردن مفهوم الگوریتم درخت تصمیم، از یک مثال روزمره یعنی پیش‌بینی حداکثر درجه حرارت هوای شهر برای روز بعد (فردا) استفاده می‌شود. در اینجا فرض بر آن است که که شهر مورد نظر سیاتل در ایالت واشینگتن واقع شده (این مثال قابل تعمیم به شهرهای..

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

داده کاوی (Data Mining) — از صفر تا صد

در این مطلب به مباحث «داده کاوی» (Data Mining) از صفر تا صد پرداخته شده است. با پیشرفت سریع «فناوری اطلاعات» (Information Technology)، بشر شاهد یک رشد انفجاری در تولید «داده» (Data) و ظرفیت‌های گردآوری و ذخیره‌سازی آن در دامنه‌های گوناگون بوده است. در جهان کسب‌و‌کار، «پایگاه‌داده‌های» (Databases) بسیار بزرگی برای تراکنش‌های تجاری وجود دارند که توسط خرده‌فروشان و یا در «تجارت الکترونیک» (E-commerce) ساخته شده‌اند. از سوی دیگر، همه روزه حجم عظیمی از داده‌های علمی در زمینه‌های گوناگون تولید می‌شوند. از جمله داده‌های علمی می‌توان به پروژه «ژنوم انسان» (Human Genome) اشاره کرد که چندین گیگابایت داده را از کد ژنتیکی انسان تجمیع کرده است. «وب جهان گستر» (World Wide Web) مثال دیگری از منابع داده است که میلیاردها صفحه وب شامل اطلاعات متنی و چند رسانه‌ای را دربرمی‌گیرد. این صفحات توسط میلیون‌ها نفر بازدید می‌شوند. در چنین شرایطی، تحلیل بدنه بزرگ داده‌ها به شکل قابل درک و کاربردی، یک مساله چالش برانگیز است. «داده‌کاوی» (Data Mining) این مساله را با فراهم کردن روش‌ها و نرم‌افزارهایی برای خودکارس..

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

آموزش کتابخانه یادگیری عمیق «کرس» (Keras) در پایتون — راهنمای جامع

در این مطلب، آموزش ساخت یک «شبکه عصبی» (Neural Network | NN) ساده با استفاده از کتابخانه یادگیری عمیق «کرس» (Keras) در «پایتون» (Python) ارائه شده است. برای فراگیری هر چه بهتر این مطلب، آشنایی با کتابخانه‌های «سایکیت‌لِرن» (scikit-learn) و دیگر بسته‌های علمی مانند «پانداس» (Pandas) و «نام‌پای» (Numpy) پیش‌نیاز محسوب می‌شود. آموزش یک شبکه عصبی مصنوعی آموزش دادن (train) یک «شبکه عصبی مصنوعی» (Artificial Neural Network | NN) شامل گام‌های زیر است: وزن‌ها به طور تصادفی با مقادیر نزدیک به صفر (ولی غیر صفر) مقداردهی اولیه می‌شوند. مشاهدات مجموعه داده به لایه ورودی خورانده می‌شود. انتشار به جلو (از چپ به راست): نورون‌ها فعال می‌شوند و مقادیر پیش‌بینی شده مشاهده می‌شوند. نتایج پیش‌بینی شده کامپیوتری با مقادیر واقعی مقایسه می‌شوند و نرخ خطا اندازه‌گیری می‌شود. بازگشت به عقب (از راست به چپ): وزن‌ها تنظیم می‌شوند. مراحل 1 تا ۵ تکرار می‌شود. هنگامی که کل «مجموعه آموزش» (Train Set) از شبکه عصبی رد شد، یک «دوره» (Epoch) حاصل می‌شود. مساله کسب‌و‌کار اکنون زمان آن فرا رسیده که یک مساله واقعی از کسب‌و..

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