چگونه یک دانشمند داده شوید؟ – راهنمای گامبهگام به همراه معرفی منابع
علم داده، تحلیل داده و دادهکاوی از مباحث داغ روز هستند. جذابیت و کاربردپذیری این زمینهها به میزانی است که در دانشگاههای گوناگون سراسر جهان دورههای اختصاصی برای آنها تدوین شده. این در حالیست که تعداد پژوهشهای آکادمیک پیرامون این حوزهها نیز همواره رو به رشد است.
با توجه به کاربردهای علم داده و دادهکاوی در دامنههای گوناگون از جمله بازاریابی و فروش، تحلیل سبد خرید، آموزش و پرورش، مهندسی ساخت و تولید، مدیریت ارتباط با مشتریان (CRM)، بخشبندی مشتریان، تشخیص جرم، تشخیص نفوذ، تحقیقات جرم، نظارت سازمانی، بانکداری مالی، بیوانفورماتیک و بهداشت و درمان، کسبوکارهای زیادی حول محور این علوم شکل گرفتهاند.
از همینرو و با توجه به فرصتهای شغلی متعدد ایجاد شده و البته جذابیت چشمگیر این حوزهها، افراد زیادی علاقمند به یادگیری آنها به منظور کسب موقعیتهای شغلی برجسته هستند. در مقالهای که توسط «توماس اچ داونپورت» (Thomas H. Davenport) و «دیجی پاتیل» (DJ Patil) در سال ۲۰۱۲ در مجله «هاروارد بیزینس ریویو» (Harvard Business Review) منتشر شد، از شغل دانشمند داده با عنوان جذابترین شغل قرن ۲۱ یاد شده است.
نکته جالب توجه در رابطه با یادگیری علم داده و استفاده از آن به عنوان دانش و مهارت شغلی، پیچیدگی بیشتر آن نسبت به بسیاری از دیگر زمینههای علمی و مهارتی است. دلیل این امر را میتوان به سادگی در تعاریف علم داده و دادهکاوی یافت. هر دو این مباحث، دانشهای میانرشتهای هستند که برای فراگیری آنها نیاز به یادگیری علوم و مهارتهای گوناگون از جمله آمار و جبر خطی، سیستمهای پایگاه داده، یادگیری ماشین، برنامهنویسی و مهارتهای ارائه مطلب است. اما، در کنار این پیچیدگی، قدرت و جذابیتی غیر قابل چشمپوشی نهفته که بسیاری را به جستوجوی روشهای یادگیری دادهکاوی واداشته است.
در ادامه به نقشه راه فراگیری دادهکاوی و فرآیند لازم برای کسب مهارت در این حوزه پرداخته شده. اما پیش از آغاز این بحث، لازم به ذکر است که آنچه در ادامه آمده احتمالا فراتر از تصور اغلب افراد در رابطه با فرآیند مبدل شدن به یک دادهکاو و دانشمند داده است. ولی آموختن کلیه مباحث یاد شده و البته انجام بررسیهای موردی و پروژههای عملیاتی لازم است.
نقشه راه مبدل شدن به دانشمند داده
یادگیری علم داده در گام اول نیازمند یک انتخاب است! انتخابی که باید با در نظر گرفتن زمان لازم برای یادگیری این مبحث، فرصتهای شغلی، درآمد و طول دوره یادگیری آن انجام شود. از اینرو توصیه میشود که علاقمندان به دادهکاوی ابتدا مطالعات کلی در این حوزه داشته باشند، با کاربردهای آن بیشتر آشنا شوند و برای مدتی در جوامع مربوط به علوم داده مانند سازمانهای مردمنهاد مربوط به دادهکاوان و دانشمندان داده حضور پیدا کنند.
انجام گفتوگوی تخصصی با خبرگان این حوزه نیز میتواند به شکلگیری ذهنیت بهتری از فضای شغلی دانشمندان داده کمک شایان توجهی کند. پس از این مراحل است که فرد میتواند تصمیم بگیرد آیا علاقمند به گام نهادن در مسیر پر پیج و خم و طولانی آموختن علم داده و مبدل شدن به یک دانشمند داده هست یا خیر! اما اگر فردی تصمیم قاطع خود را اتخاذ کرده، توصیه میشود که ادامه این مطلب را مطالعه کند.
همانطور که پیش از این نیز بیان شد، برای فعالیت در حوزه علم داده نیاز به فراگیری علوم گوناگونی است. گامهای لازم برای آموختن آنچه از فرد یک دانشمند داده میسازد در ادامه بیان شدهاند.
- مبانی
- آمار و احتمال و جبر خطی
- برنامهنویسی کامپیوتری (زبانهای محاسباتی مانند R و زبانهای اسکریپتنویسی مانند پایتون)
- یادگیری ماشین
- دادهکاوی
- بصریسازی
- ابزارها
- سیستمهای پایگاه داده (پایگاهدادههای SQL و NoSQL)
- روشهای استخراج دادههای وب (Scrapy، Apache Nutch و JSoup)
- مبانی و مفاهیم کلان داده و روشهای کار با آن
- کار با دادههای ساختار نیافته (متن)
۱. مبانی
در گام اول برای آمادگی اولیه، نیاز است که مبانی چندین حوزه فراگرفته شود. مفاهیم ماتریسها، عملیات روی آنها، مبانی جبر خطی و جبر رابطهای از جمله مواردی هستند که در ابتدای راه باید به یادگیری آنها اهتمام ورزید. همچنین آشنایی با توابع درهمسازی (hash function)، درخت دودویی و تئوری سیایپی (CAP theorem) در این گام الزامی است.
فراگیری برخی مباحث نظریه پیچیدگی محاسباتی مانند پیچیدگی فضایی و زمانی ((O(n) ضمن فراگیری مبانی این حوزه، مورد نیاز است، زیرا از یک سو در دادهکاوی از الگوریتمها و روشهای محاسباتی متعددی استفاده میشود و از سوی دیگر مسائل کلانداده (مِهداده) و دادههای ابعاد بالا نیز مطرح است، بنابراین برای حل یک مساله دادهکاوی سخن از پیچیدگی محاسباتی به میان خواهد آمد.
آشنایی با «دادههای جدولی» (tabular data) گامی مقدماتی برای کار با مجموعه دادهها و مباحث مرتبط به سیستمهای پایگاه داده است. یادگیری ساختمان داده و سریهای داده، معماری پایگاه داده (Shard) و مفاهیم مورد استفاده در پایگاه دادهها مانند انواع join (شامل Cross ،Outer ،Inner و Theta)، مفهوم پردازش تحلیلی برخط (Online analytical processing | OLAP)، مدلهای داده چندبُعدی، استخراج، نگاشت و بارگذاری دادهها (ETL)، گزارشدهی، مفاهیم هوش تجاری، XML و JSON و مفاهیم پایگاه دادههای NoSQL از دیگر مباحثی هستند که برای تبدیل شدن به یک دانشمند داده باید فراگرفت.
لازم به ذکر است که در این گام نیازی به عمیق شدن در کلیه این مباحث نیست، بلکه کسب یک درک کلی از مفاهیم موجود و یادگیری مقدمات موارد بیان شده کافی خواهد بود.
۲. آمار و احتمال و جبر خطی
آمار و احتمال و جبر خطی از جمله مباحثی هستند که در علم داده کاربرد قابل توجهی دارند. بهرهگیری از مفاهیم آماری به گونهای با بحث تحلیل داده و دادهکاوی عجین شده که برخی از آماردانهای کلاسیک علم داده را شکل مدرن آمار و حتی معادل آن میدانند که به زعم آنها نام جدیدی به خود گرفته است. از همینرو فردی که علاقمند به یادگیری علم داده باشد باید زمان قابل توجهی را به فراگیری این علوم اختصاص دهد. در ادامه اصلیترین مباحث آمار و احتمال و جبرخطی بیان شده که نیاز به یادگیری آنها در علم داده وجود دارد.
فراگیری مفاهیم جامعه و نمونه آماری، انواع فراوانی (فراوانی مطلق، نسبی و تجمعی)، چگونگی انتخاب مجموعه داده و نمونه از مقدماتیترین مفاهیم آماری هستند که یک دانشمند دادهها به آنها نیاز دارد. یک دانشمند داده همچنین نیاز به درک دیگر مفاهیم آمار توصیفی شامل تحلیل داده اکتشافی (exploratory data analysis | EDA)، چارکها و صدکها، دورافتادگی، نظریه احتمال، نظریه بیزی و متغیرهای تصادفی دارد. آشنایی با انواع توابع توزیع داده مانند تابع توزیع تجمعی (CDF) و توزیعهای احتمال پیوسته شامل توزیع نرمال، پواسون و گاوسی نیز الزامی است. چولگی (Skewness)، تحلیل واریانس، تابع چگالی احتمال، نظریه حد مرکزی و روش مونت-کارلو (Monte Carlo method) دیگر مباحث آماری هستند که در علم دادهها کاربردهای قابل توجهی دارند.
یک بخش بسیار حائز اهمیت در فرآیند تحلیل داده و دادهکاوی، ارزیابی خروجیها است. برای انجام این کار نیاز به تسلط بر آزمونهای فرض آماری مانند آزمون خیدوی پیرسون (Chi-squared test) و آزمون پی مقدار (p-value) خواهد بود. تخمین، بازه اطمینان، برآورد درستنمایی بیشینه (Maximum likelihood estimation)، برآورد چگالی، مفهوم رگرسیون، روش کمترین مربعات و فاصله اقلیدسی دیگر موضوعاتی هستند که در این گام باید نسبت به فراگیری آنها اقدام کرد.
لازم به ذکر است که معیارهای مرکزیت (مانند میانه، میانگین و مد)، معیارهای پراکندگی (مانند واریانس، انحراف معیار و کواریانس)، امید ریاضی، همبستگی و وابستگی (ضریب همبستگی پیرسون) برخی از سادهترین و پایهایترین مفاهیم آمار هستند که در علم داده و دادهکاوی مورد استفاده قرار میگیرند. همچنین یادگیری مباحثی از جبر خطی مانند ماتریسها و عملیات روی آنها، بردارها، فضاهای برداری (فضاهای خطّی) و تبدیلات خطی مورد نیاز است.
برای یادگیری مفاهیم آمار و احتمال و جبرخطی مورد نیاز در علم داده، استفاده از دورههای آموزش ویدئویی ارائه شده در زیر توصیه میشود.
- آموزش آمار و احتمال مهندسی
- آموزش تئوری احتمالات
- آموزش مسائل تشریحی توزیعهای گسسته و پیوسته در آمار و احتمال
- آموزش همبستگی و رگرسیون خطی در SPSS
- آموزش جبر خطی با متلب
- آموزش تصمیمگیری چند شاخصه (Multiple Attribute Decision Making)
3. زبانهای برنامهنویسی
فراگیری یک زبان محاسباتی مانند (R) و یک زبان اسکریپتنویسی مانند پایتون (python) جهت حل مسائل دادهکاوی و پیادهسازیها مورد نیاز است. جهت یادگیری R، نیاز به آموختن محیط توسعه یکپارچه R Studio، روش نصب R، نحو و ساختار این زبان شامل عبارات (Expressions)، متغیرها، بردارها، ماتریسها، آرایهها، فاکتورها، لیستها، چارچوبهای داده، روش خواندن دادههای CSV و دادههای خام، دستکاری چارچوبهای داده، توابع، تحلیل فاکتور، نصب پکیجها و استفاده از آنها است.
در ادامه ویدئوهای آموزشی پیشنهادی برای فراگیری زبان برنامهنویسی R و نرمافزار RStudio (همراه با توضیح بسیاری از مفاهیم آماری مورد نیاز در تحلیل داده) ارائه شدهاند.
- آموزش برنامهنویسی R و نرمافزار R Studio
- آموزش تکمیلی برنامهنویسی R و نرمافزار RStudio
- آموزش نمونهگیری در نرم افزار R
برای یادگیری زبان برنامهنویسی پایتون نیز به طور مشابه و در ابتدا نیاز به فراگیری نحو و ساختارهای موجود در این زبان است. همچنین، دانشمند داده باید نحوه کار با کتابخانههای قدرتمند Scikit-learn ،TensorFlow ،NumPy ،SciPy ،matplotlib و جعبه ابزار پردازش زبان طبیعی موجود برای زبان پایتون (برای افرادی که پردازش زبان طبیعی انجام میدهند) را بداند.
در ادامه برخی از ویدئوهای آموزشی مناسب برای یادگیری زبان برنامهنویسی پایتون ارائه شدهاند.
- آموزش برنامهنویسی پایتون – مقدماتی
- آموزش تکمیلی برنامهنویسی پایتون
- پایتون گرافیکی (رابطهای گرافیکی پایتون)
- گنجینه آموزشهای برنامهنویسی پایتون (Python)
4. یادگیری ماشین
مفاهیم و الگوریتمهای یادگیری ماشین کاربرد بسیار گسترده و مهمی در علم داده و دادهکاوی دارند.
بنابراین برای تبدیل شدن به یک دانشمند داده یا دادهکاو زبده نیاز به یادگیری مفاهیم و روشهای این حوزه است.
چیستی یادگیری ماشین، انواع یادگیری (نظارت شده، نظارت نشده و نیمه نظارت شده)، مجموعه دادههای آموزش (Train) و آزمون (Test)، دستهبندها (Classifiers)، مفاهیم و چگونگی پیشبینی، مفهوم Lift، بیشبرازش (overfitting)، سوگیری (bias) و واریانس، درختها و دستهبندی، نرخ دستهبندی (classification rate)، درختهای تصمیم، بوستینگ (Boosting)، دستهبندهای نایوبیز (Naive Bayes classifier)، دستهبندی k-نزدیکترین همسایگی، انواع رگرسیون شامل رگرسیون خطی ساده، چند متغیره و لوجستیک، پرسپترون، خوشهبندی سلسله مراتبی، خوشهبندی k-میانگین، شبکههای عصبی، تحلیل احساسات و عقیدهکاوی، پالایش گروهی و برچسبگذاری (Tagging) از جمله مباحثی هستند که یادگیری آنها برای علم داده و دادهکاوی الزامی است.
برخی از دورههای آموزشی یادگیری ماشین که برای فراگیری این دانش میتوان از آنها استفاده کرد در ادامه ارائه شدهاند.
- آموزش یادگیری ماشین
- آموزش مقدمهای در رابطه با یادگیری ماشین با پایتون (Python)
- یادگیری ماشین (Machine Learning) با پایتون (Python)
- مجموعه آموزشهای کاربردی شبکه های عصبی مصنوعی
- مجموعه آموزشهای شبکههای عصبی مصنوعی در متلب
- آموزش یادگیری عمیق (Deep learning)
- آموزش تخمین خطای طبقهبندی یا Classifier Error Estimation
- آموزش خوشهبندی با استفاده از الگوریتمهای تکاملی و فرا ابتکاری
- مجموعه آموزشهای الگوریتم رقابت استعماری در متلب
5. دادهکاوی
دادهکاوی یک فرآیند هفت مرحلهای شامل پاکسازی، یکپارچهسازی، انتخاب داده (کاهش ابعاد)، نگاشت داده، دادهکاوی، ارزیابی و ارائه دانش است که هر یک از این مراحل نیاز به یادگیری مباحث خاصی دارند. همچنین پیش از آغاز فرآیند اصلی دادهکاوی فرد نیازمند فراگیری دانش دامنه (دانش در رابطه با زمینهای که قصد حل مساله در آن با استفاده از دادهکاوی وجود دارد) است.
یک مساله بسیار مهم در دادهکاوی بحث دادهها است که حتی پیش از آغاز فرآیند دادهکاوی و در فاز طرح مساله مطرح میشود. بنابراین، یک دادهکاو باید با منابع داده، چگونگی اکتساب و بارگذاری داده، تبیین حجم داده مورد نیاز در مساله، نمونهگیری (شامل نمونهگیری طبقهبندی شده)، شناخت انواع قالبهای داده (Data Formats)، اکتشاف در میان دادهها و روشهای یکپارچهسازی دادهها آشنا باشد.
در بحث پاکسازی دادهها، دانشمند داده باید بر مدیریت مقادیر ناموجود (missing values)، کاهش و حذف نویز، تشخیص و تصحیح خطا با بهرهگیری از روش اسکراب داده (Data scrubbing) تسلط داشته باشد. یادگیری الگوریتمهای کاهش ابعاد (استخراج یا انتخاب ویژگی) مانند تحلیل مولفه اساسی (Principal component analysis) از جمله مباحث مورد نیاز برای تبدیل شدن به دانشمند داده و دادهکاو توانمند است.
آشنایی با روشهای نگاشت داده شامل انواع استانداردسازی، الگوریتمهای اختصاصی دادهکاوی (از سادهترینها مانند One R گرفته تا دیگر انواع مانند ماشین بردار پشتیبان) و روشهای ارزیابی مانند ماتریس درهمریختگی نیز الزامی است. در ادامه برخی از دورههای آموزش ویدئویی دادهکاوی معرفی شدهاند.
- گنجینه آموزشهای یادگیری ماشین و دادهکاوی
- آموزش دادهکاوی و زبان برنامهنویسی R
- آموزش مقدمهای بر دادهکاوی
- آموزش اصول و روشهای دادهکاوی (Data Mining)
- آموزش روشهای پیش پردازش دادهها
- آموزش انتخاب ویژگی یا Feature Selection
- آموزش انتخاب ویژگی با استفاده از الگوریتمهای فرا ابتکاری و تکاملی
6. بصریسازی
بصریسازی دادهها یک گام مهم در فرآیند دادهکاوی (ارائه دانش) و علم داده است. بدین منظور دانشمند داده باید با انواع نمودارها و موارد استفاده از آنها آشنایی داشته باشد.
در راستای پیادهسازی این نمودارها، آشنایی با روشهای اکتشاف دادهها (Data exploration) در زبان برنامهنویسی R (شامل نمودار هیستوگرام، نمودار جعبهای و دیگر موارد)، بصریسازی یک متغیره (هیستوگرام و نمودار دایرهای)، دو متغیره (نمودار اسکاتر و خطی) و چند متغیره، بسته ggplot2 در زبان R، نمودارهای فضایی (Spatial Data)، نمودار گاهشمار (timeline plot)، درخت تصمیم، کتابخانه D3.js (کتابخانه JavaScript برای تولید مصورسازهای داده پویا و تعاملی در مرورگرهای وب)، روشهای بصریسازی اطلاعات و نرمافزارهای tableau برای بصریسازی دادهها و خروجیها توصیه میشود. دادهکاو باید بداند که کدام ابزار و راهکار بصریسازی برای یک مساله و ذینفع خاص مناسبتر است و بر آن اساس اقدام به ارائه دانش کند.
۷. ابزارها
ابزارهای گوناگونی برای دادهکاوی وجود دارد که فرآیندهای لازم برای این کار را سادهتر ساخته و سرعت میبخشند. از جمله این ابزارها میتوان به نرمافزارهای وکا (weka)، آیبیام اسپیاساس مدلر (IBM SPSS Modeler) و Rapid Miner اشاره کرد. در این وهله ممکن است این پرسش مطرح شود که آیا با وجود تسلط بر زبانهای برنامهنویسی، نیازی به یادگیری این ابزارها هست؟
پاسخ این سوال مثبت است، در این رابطه باید گفت که الزامی به این کار وجود ندارد اما گاهی استفاده از این ابزارها سرعت عمل را افزایش میدهد و همچنین برخی از نرمافزارها قابلیتهای خاصی را در اختیار دادهکاو قرار میدهند که کار دادهکاوی را به مراتب سادهتر میکند. برای مثال، ابزار گوگل رفاین یا اپن رفاین (OpenRefine) امکانات گوناگونی را برای پیشپردازش دادهها (پاکسازی، یکپارچهسازی و نگاشت) در اختیار کاربر قرار میدهد. در ادامه ویدئوهای آموزشی دادهکاوی با استفاده از ابزارهای ویژه این حوزه، ارائه شده است.
8. سیستمهای پایگاه داده
دادهکاوی روی انواع گوناگونی از دادهها شامل دادههای ساختار یافته (پایگاه داده)، ساختار نیافته (متن)، دادههای تراکنشی و نوع دادههای پیشرفته مانند گرافها قابل انجام است. از این رو دادهکاو باید با پایگاهدادههای NoSQL و SQL آشنایی داشته باشد.
برخی از آموزشهای ویدئویی جهت فراگیری پایگاه داده در ادامه آورده شدهاند.
- آموزش تعریف اولیه درخصوص پایگاه دادهها
- آموزش پایگاه دادهها
- کتاب آموزش پایگاه دادهها
- آموزش پایگاه دادهها در جاوا
- آموزش کار با دستورات پایگاه داده در SQL Server
- آموزش کاربردی SQL Server
۹. استخراج دادههای وب
امروزه استفاده از دادههای وب برای انجام تحلیلهای گوناگون امری متداول است. عقیدهکاوی و تحلیل شبکههای اجتماعی تنها برخی از انواع کاوشهایی هستند که روی دادههای وب انجام میشود. از این رو آشنایی با ابزارهای استخراج دادههای وب برای یک دانشمند داده امری ضروری است. از جمله این ابزارها میتوان به Scrapy ،Apache Nutch و JSoup اشاره کرد.
۱۰. مبانی و مفاهیم کلان داده و روشهای کار با آن
امروزه اغلب مسائل تحلیل دادهای که دانشمندان داده و دادهکاوها با آن سر و کار دارند دارای ویژگیهای یک مساله کلانداده (مِهداده) است.
با توجه به اینکه در حال حاضر و با توسعه وب و شبکههای اجتماعی مسائل کلانداده متعددی پیش روی پژوهشگران است، یک دانشمند داده نیاز دارد با مفاهیم این حوزه و حتی برخی ابزارهای آن آشنایی داشته باشد.
آشنایی با مدل برنامهنویسی نگاشتکاهش (Map Reduce)، مولفههای هادوپ، فایل سیستم توزیع شده هادوپ (HDFS)، نصب و کاربری هادوپ، چارچوب آپاچی استورم (Apache Storm)، سیستم مدیریت پایگاه داده NoSQL توزیع شده آزاد و متنباز آپاچی کسندرا (Apache Cassandra)، سیستم مدیریت پایگاه داده Neo4j و پایگاه داده سند-گرای متنباز مانگودیبی (MongoDB) برای یک دانشمند داده مورد نیاز است.
۱۱. کار با دادههای ساختار نیافته (متن)
کار با دادههای ساختار نیافتهای مانند متن، نیازمند آشنایی با مباحث خاصی مانند پردازش زبان طبیعی است. از این رو انتظار میرود که دادهکاو با تحلیل متن، ماتریس عبارات متن، تکرار و وزن کلمات و قواعد همبستگی آشنایی داشته باشد.
اگر نوشته بالا برای شما مفید بود، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- دوره آموزش یادگیری ماشین وبلاگ فرادرس با مثالهای کاربردی
- گنجینه آموزشهای SPSS
- ساخت مدل یادگیری ماشین با استفاده از پلتفرم نایم (KNIME)
موسسه توسعه، به صورت تخصصی به آموزش علم داده میپردازد. کسانی که صلاحیت ورود به دوره را پیدا کنند، زیر نظر اساتید طی یک دوره شش ماهه با صبر و تمرین زیاد به یک دانشمند علم داده تبدیل میشوند.
اساتید توسعه در زمینه علم داده، سالها در امریکا این موضوع را آموختهاند، پیادهسازی کردهاند و درس دادهاند. برای آشنایی بیشتر با این دوره و مدرسین آن به این آدرس مراجعه کنید.
^^
سلام ببخشید میشه از زبان جاوا اسکریپت هم برای اسکریپت نویسی استفاده کرد؟
سلام ببخشید یه سوال داشتم ینی الان این آموزش های فرادرس رو خریداری کنیم و کامل یاد بگیریم یک دانشمند داده میشویم ؟تضمینیه؟
سلام
مطالب هر بخش (فیلم های آموزشی معرفی شده) متفاوت از بخش های دیگر است؟
ممنون میشم پاسخ رو به ایمیل بنده ارسال کنید
البته با عرض پوزش این نظر رو من میخواستم برای مقاله “عقیدهکاوی و تحلیل احساسات” بذارم ولی اشتباها اینجا ثبت کردم.
در کل آرزوی موفقیت دارم براتون