علم داده چیست؟
اولین پرسشی که مطرح میشود، این است که علم داده چیست؟ علم داده را میتوان به روشهای مختلفی تعریف کرد، اما در اصل علم داده سعی میکند از دادهها برای حل مشکلات دنیای واقعی استفاده کند. این تعریف در ظاهر ساده است، اما مفهومی کاملا عمیق و گسترده دارد و به این دلیل است که باید بگوییم علم داده یک حوزه گسترده با کاربردهای متنوع است. علم داده، علم تجزیهوتحلیل دادههای خام با استفاده از آمار و تکنیکهای یادگیری ماشین با هدف نتیجهگیری در مورد اطلاعات است. بهطور خلاصه، باید بگوییم که علم داده مبتنی بر علوم و مفاهیم زیر است:
- آمار، علوم کامپیوتر، ریاضیات
- پاکسازی و قالببندی دادهها
- مصورسازی دادهها
هنگامی که کاربردهای گسترده علم داده را بهخوبی درک کنیم، پرسشهای دیگری به ذهنمان خطور میکند. بهطور مثال، چگونه یادگیری علم داده را آغاز کنیم، از کجا شروع کنیم، چه موضوعاتی را باید مطالعه کنیم و غیره. آیا باید همه مفاهیم را از طریق حضور در یک دوره آموزشی یا مطالعه یک کتاب کسب کنیم، باید آموزشهای آنلاین مختلف را مشاهده کنیم یا باید با انجام پروژههایی علم داده را یاد بگیریم؟ در این مقاله قصد داریم همه این موارد را بهتفصیل مورد بررسی قرار دهیم. شکل ۱، نقشه راه و مجموعه مهارتهای موردنیاز یک دانشمند علم داده را نشان میدهد که قصد داریم در این مقاله بهطور اجمالی اشاره کوتاهی به آنها داشته باشیم.
شکل 1
چرا باید از علم دادهها استفاده کنیم؟
علم دادهها، علم تجزیهوتحلیل دادههای خام با استفاده از آمار و تکنیکهای یادگیری ماشین با هدف دستیابی به بینش دقیق درباره اطلاعات است. اگر قصد ورود به دنیای جذاب علم دادهها را دارید، ابتدا باید به این مسئله فکر کنید که هدفتان از ورود به این حوزه چیست؟ بنابراین قبل از آنکه نقشه راهی برای این دانش ترسیم کنید، باید هدف روشنی در ذهن داشته باشید و بدانید چرا قصد یادگیری علم دادهها را دارید. آیا تنها بهدلیل تبلیغات پیرامون این علم به آن علاقهمند شدهاید، آیا برای انجام پروژههای دانشگاهی نیازمند یادگیری این علم هستید، یا برای شغل طولانیمدت به آن فکر میکنید، میخواهید شغل فعلی خود را تغییر داده و به دنیای علم دادهها وارد شوید؟ همانگونه که مشاهده میکنید، ابتدا باید هدف را مشخص کنید. چرا میخواهید علم دادهها را یاد بگیرید؟ بهعنوان مثال، اگر میخواهید برای پروژههای دانشگاهی خود علم داده را یاد بگیرید، کافی است نکات ابتدایی علم داده را بیاموزید. یا اگر میخواهید شغل بلندمدتی برای خود مهیا کنید، باید بهفکر یادگیری مباحث حرفهای و پیشرفته باشید و تمام جزئیات این علم را یاد بگیرید.
چگونه علم داده را یاد بگیریم؟
بهطور معمول، دانشمندان داده سوابق تحصیلی و تجربه کاری مختلفی دارند و اینگونه نیست که علم فوق تنها در دسترس فارغالتحصیلان رشتههای علوم کامپیوتر یا فناوری اطلاعات باشد. با اینحال، باید در چهار زمینه کلیدی زیر مهارت لازم را داشته باشید تا بتوانید وظایف محوله را انجام دهید. این چهار حوزه بهشرح زیر هستند:
- دانش دامنه (Domain Knowledge)
- مهارتهای ریاضی (Math Skills)
- علوم کامپیوتر (Computer Science)
- مهارت ارتباطی (Communication Skill)
دانش دامنه
بیشتر مردم بر این باور هستند که دانش دامنه در علم دادهها اهمیت چندانی ندارد، در حالی که یکی از مباحث مهم این حوزه است. برای روشن شدن بحث، اجازه دهید به مثالی اشاره داشته باشیم. اگر میخواهید دانشمند داده در صنعت بانکداری شوید و اطلاعات خوبی در مورد امور بانکداری مثل معاملات سهام، اطلاعات مالی و غیره دارید، شانس شما برای موفقیت در این حوزه دوچندان است، زیرا بانکها ترجیح میدهند بهجای جذب یک متقاضی عادی که اطلاعاتی در این زمینه ندارد، به سراغ افرادی بروند که ضمن تخصص در حوزه علم دادهها، دانش کاربردی درباره صنعت آنها دارند.
مهارتهای ریاضی
جبر خطی، حساب دیفرانسیل و انتگرال چندمتغیره و تکنیکهای بهینهسازی، سه مولفه مهمی هستند که یک دانشمند علم دادهها به آن نیاز دارد. این مهارتها به ما در درک الگوریتمهای مختلف یادگیری ماشین که نقش مهمی در علم دادهها دارند، کمک میکنند. بهطور مشابه، درک آمار اهمیت زیادی دارد، زیرا بخشی از فرآیند تجزیهوتحلیل دادهها مربوط به مباحث آماری است. به همان نسبت، یادگیری احتمال نیز مهم است و پیشنیازی برای یادگیری ماشین است.
علوم کامپیوتر
در علوم کامپیوتر مباحث زیادی برای یادگیری وجود دارد، اما وقتی صحبت از زبان برنامهنویسی میشود، یکی از سوالات مهمی که مطرح میشود این است که پایتون یا آر، کدامیک برای علم دادهها بهتر هستند. دلایل مختلفی برای انتخاب هر یک از این زبانها برای علم دادهها وجود دارد، زیرا هر دو مجموعهای غنی از کتابخانهها برای پیادهسازی الگوریتمهای پیچیده یادگیری ماشین، مصورسازی و پاکسازی دادهها ارائه میکنند. پیشنهاد من این است که برای تبدیل شدن به یک دانشمند علم داده موفق، بهفکر یادگیری هر دو زبان برنامهنویسی باشید. به غیر از زبان برنامهنویسی، مهارتهای دیگری در حوزه علوم کامپیوتر وجود دارد که باید بهفکر یادگیری آنها باشید که از آن جمله به موارد زیر باید اشاره کرد:
- مبانی ساختار دادهها و الگوریتمها
- زبان پرسوجوی ساختیافته (SQL)
- پایگاه داده MongoDB
- سیستمعامل لینوکس
- ابزار کنترل نسخه گیت (Git)
- محاسبات توزیعشده
- یادگیری ماشین، یادگیری عمیق و غیره
مهارت ارتباطی
مهارت ارتباطی به هر دو حوزه مهارتهای نوشتاری و کلامی اشاره دارد. آنچه در یک پروژه علم داده اتفاق میافتد این است که پس از نتیجهگیری از تجزیهوتحلیل، پروژه باید در اختیار افراد دیگری قرار بگیرد. گاهی اوقات، ممکن است این گزارش برای مدیرعامل و هئیت مدیره ارسال میشود یا یک پست وبلاگی باشد که باید روی وبسایت شرکت قرار بگیرد. با اینحال، در بیشتر موارد گزارش فوق در اختیار گروهی از افراد با تخصصهای مختلف قرار میگیرد.
بهطور کلی، یک پروژه علم داده بر تعامل افراد مختلف یک گروه با یکدیگر تاکید دارد. بنابراین، داشتن مهارتهای ارتباطی برای تبدیل شدن به یک دانشمند داده ضروری است.
نقشه راهی که برای تبدیل شدن به یک متخصص علم دادههای کارآمد به آن نیاز دارید
نقشه راه برای یادگیری مهارتهای کاربردی، به مجموعه مهارتهایی اشاره دارد که افراد برای تسلط بر یک علم به آنها نیاز دارند. در بیشتر موارد، نقشه راه مفصل است و علم دادهها از این قاعده مستثنا نیست. بنابراین اجازه دهید کار را با مرور کلی بر علم دادهها آغاز کنیم. برای شروع پیشنهاد میکنیم برخی از وبلاگهای مرتبط با علم دادهها را بخوانید و در مورد مباحث مرتبط با علم دادهها تحقیق کنید. بهطور مثال، وبلاگهایی را در زمینه مقدمه علم داده، چرا باید علم داده را بهعنوان شغل انتخاب کنیم، صنایعی که بیشترین سود را از علم داده میبرند، 10 مهارت برتر علم داده برای یادگیری در سالهای آتی و غیره را بخوانید تا ذهنیت اولیهای در این زمینه پیدا کنید. ایده بدی نیست که چند پروژه عالی را که مبتنی بر علم دادهها هستند و اطلاعات آنها بهشکل عمومی منتشر شده بررسی کنید. همچنین، پیشنهاد میشود قبل از شروع سفر خود به این حوزه در برخی کارگاهها یا کنفرانسهای مرتبط با علم دادهها شرکت کنید.
ریاضیات
تسلط بر مباحث ریاضی و بهویژه اصول پایه کاملا مهم است، زیرا به ما در درک عملکرد الگوریتمهای مختلف یادگیری ماشین که نقش مهمی در علم داده ایفا میکنند، کمک میکند. بهطور کلی، در مبحث ریاضیات باید بهفکر یادگیری مطالب زیر باشید:
- جبر خطی
- هندسه تحلیلی
- ماتریس
- حساب دیفرانسیل و انتگرالبرداری
- رگرسیون
- کاهش ابعاد
- تخمین چگالی
- طبقهبندی
احتمال
احتمال یکی از مباحث مهم علم آمار است که اهمیت زیادی دارد و برای محاسبه تخمینها، بیشینهها و کمینهها مورد استفاده قرار میگیرد. به بیان دقیقتر، احتمال را باید پیشنیازی برای یادگیری ماشین و علم دادهها توصیف کنیم. برای یادگیری احتمال، باید بهفکر یادگیری مباحث زیر باشید:
- متغیر تصادفی یک بعدی
- تابع یک متغیر تصادفی
- توزیع احتمال مشترک
- توزیع گسسته
- دو جملهای
- محاسبات برنولی
- توزیع مستمر
- توزیع یکنواخت پیوسته
- نمایی
- گاما
- توزیع عادی
آمار
برای علم آمار که بخش اعظمی از تجزیهوتحلیل دادهها بر مبنای این علم انجام میشود باید بهفکر یادگیری موارد زیر باشید:
- آمار توصیفی
- نمونههای تصادفی
- توزیع نمونهگیری
- تخمین پارامتر
- آزمایش فرضیهها
- تحلیل واریانس
- روند تصادفی
- رگرسیون خطی ساده و چندگانه
- همبستگی
- آمار غیرپارامتریک
- آزمونهای Wilcoxon Signed-Rank، آزمون Wilcoxon Rank Sum و کروسکال-والیس
- کنترل کیفیت آماری
برنامهنویسی
یک دانشمند علم دادهها باید درک خوبی از مفاهیم برنامهنویسی مثل ساختارهای داده و الگوریتمها داشته باشد. به همین دلیل باید در مورد زبانهای برنامهنویسی مورد استفاده در این حوزه مثل پایتون، آر، جاوا و اسکالا اطلاعات کافی داشته باشد. زبان برنامهنویسی سیپلاسپلاس نیز در برخی حوزهها عملکرد قابل قبولی دارد. برای زبان برنامهنویسی پایتون، یادگیری مفاهیمی مثل لیستها، مجموعهها، تاپلها، دیکشنریها، توابع، نامپای (NumPy)، پانداس، Matplotlib/Seaborn و غیره اهمیت زیادی دارد. برای زبان برنامهنویسی آر، یادگیری مبانی این زبان، بردارها، لیستها، دیتافریمها، ماتریس، آرایه، توابع، بستههای dplyr ، ggplot2 ،Tidyr و Shiny توصیه میشود.
پایگاه داده
متاسفانه، دادههایی که یک دانشمند علم دادهها دریافت میکند از یک منبع مشخص در اختیار او قرار نمیگیرند و گاهیاوقات دانشمندان داده مجبور هستند خودشان دادهها را گردآوری و پالایش کنند، هرچند در بیشتر موارد این وظیفه بر عهده دانشمندان داده نیست. با اینحال، برای پایگاههای داده، بهفکر یادگیری SQL ،MongoDB، پایگاههای داده غیررابطهای و ساختار دادهها (سریهای زمانی)، جستوجو در وب و ذخیره اطلاعات در پایگاههای داده باشید.
یادگیری ماشین
یادگیری ماشین (ML) یکی از مهمترین مهارتهای پیرامون علم دادهها و داغترین فناوری زیرمجموعه هوش مصنوعی است. بهطوری که هر ساله پیشرفتهای زیادی در این زمینه انجام میشود. به همین دلیل، باید در مورد پارادایمهای اساسی این حوزه مثل یادگیری تحت نظارت و بدون نظارت دانش کافی داشته باشید. خوشبختانه، کتابخانههای خوبی برای زبانهای برنامهنویسی پایتون و آر در دسترس توسعهدهندگان قرار دارد که برای پیادهسازی این الگوریتمها قابل استفاده هستند. مکانیزم کاری یادگیری ماشین به این صورت است که ابتدا باید نحوه عملکرد یک مدل را درک کنید، مبحث اکتشاف دادههای پایه و بصری را بررسی کنید، اولین مدل یادگیری ماشین خود را طراحی کنید، فرآیند اعتبارسنجی مدل را بیاموزید، مباحث بیشبرازش و کمبردازش (Underfitting & Overfitting) را بررسی کنید، دانش خود درباره جنگلهای تصادفی را افزایش دهید، نحوه کار با کتابخانه اسکیتلرن را یاد بگیرید، در مورد مبحث مقدار یا داده گمشده سیستمی (System Missing Value) اطلاعاتی کسب کنید، مدیریت متغیرهای طبقهای (Handling Categorical Variables) را بیاموزید، با تکنیکهای ساخت خطوط انتقال داده آشنا شوید و اعتبارسنجی متقابل را یاد بگیرید. با توجه به اینکه یادگیری ماشین مهارت مهمی است که یک دانشمند علم داده باید در مورد آن اطلاع داشته باشد، علاوه بر موارد یادشده باید بهفکر یادگیری مباحث پیشرفتهتر مثل خوشهبندی K-means، درخت تصمیم، K نزدیکترین همسایه و غیره باشید. خوشبختانه، بیشتر الگوریتمهای یادگیری ماشین را میتوان با استفاده از آر یا پایتون پیادهسازی کرد. جالب آنکه کتابخانههای پایتون در این زمینه عملکرد بهتری دارند. آن چیزی که باید بهفکر یادگیری آن باشید، توانایی درک الگوریتمهای مورد نیاز بر اساس نوع دادهها و کاری است که قرار است یک مدل انجام دهد.
مدیریت دادهها و آمادهسازی دادهها
دادهها نقش مهمی در زندگی یک دانشمند داده ایفا میکنند. بنابراین باید در مدیریت دادهها که شامل استخراج، تبدیل و بارگذاری دادهها میشوند، مهارت داشته باشید. این حرف بدان معنا است که شما باید دادهها را از منابع مختلف استخراج کنید، آنها را به فرمت مورد نیاز برای تجزیهوتحلیل تبدیل کنید و در نهایت آنها را در انبار داده بارگذاری کنید. برای مدیریت این دادهها، فریمورکهای مختلفی مثل Hadoop ،Spark و غیره در دسترس هستند. هنگامی که فرآیند مدیریت دادهها به پایان رسید، در مرحله بعد باید بهفکر آمادهسازی دادهها باشید. آمادهسازی دادهها به این معنا است که دادههای ذخیرهشده باید قبل از تجزیهوتحلیل برای بهدست آوردن هرگونه بینش عملی، پالایش و یکپارچه شوند.
شهود دادهها (Data Intuition)
قدرت شهود دادهها را دست کم نگیرید. این مهارت غیرفنی یک دانشمند داده را از یک تحلیلگر داده متمایز میکند. شهود داده شامل یافتن الگوهایی در دادههایی است که در نگاه اول به چشم نمیآیند. به بیان دقیقتر، شبیه یافتن سوزن در انبار کاه هستند. شهود دادهها مهارتی نیست که بتوان بهراحتی آنرا آموزش داد، بلکه از طریق تجربه و تمرین مداوم بهدست میآید. با اینحال، مهارتی است که شما را بهعنوان یک دانشمند داده از دیگران متمایز میکند.
یادگیری عمیق
مهندسان هوش مصنوعی از تنسورفلو و کراس برای یادگیری عمیق و ساخت شبکههای عصبی بر مبنای دادههای ساختیافته استفاده میکنند. بهطور معمول، یک دانشمند علم داده نیازی به یادگیری مباحث یادگیری عمیق ندارد، اما اگر بهفکر ارتقاء شغلی در آینده هستید، پیشنهاد میکنیم از همین ابتدا روی یادگیری مباحث مرتبط با شبکههای عصبی سرمایهگذاری کنید. برای این منظور باید بهفکر یادگیری مباحثی مثل شبکههای عصبی مصنوعی، شبکه عصبی پیچشی، شبکه عصبی بازگشتی، کتابخانه تنسورفلو، کراس، پایتورچ، گرادیان کاهشی تصادفی، Dropout Batch Normalization و طبقهبندی باینری باشید.
مهندسی ویژگی
در مبحث مهندسی ویژگی (Feature Engineering) هدف این است که موثرترین راهکار برای بهبود عملکرد مدلها شناسایی شود. برای این منظور، باید بهفکر یادگیری مباحثی مثل مدل پایه (Baseline Model)، کدگذاریهای طبقهبندیشده و انتخاب ویژگی (Feature Selection) باشید.
پردازش زبان طبیعی
پردازش زبان طبیعی بهمعنای توانایی کامپیوترها و ماشینها در درک محاورهها و گفتوگوهای انجامشده توسط انسانها با ماشینها است. رمز موفقیت در این حوزه توانایی کار با دادههای متنی است. در این بخش پیشنهاد میشود بهفکر یادگیری مفاهیمی مثل طبقهبندی متن (Text Classification) و بردارهای کلمه (Word Vectors) باشید.
ابزارهای قابل استفاده برای مصورسازی دادهها
مصورسازی دادهها یک راهکار عالی برای نشان دادن مهارتها بهشکل بصری است. به بیان دقیقتر، مهارت شما در کدنویسی را نمایان میسازد. در این حوزه پیشنهاد میشود روی یادگیری مباحثی مثل Excel VBA، هوش تجاری، Qlik View و Qlik Sense متمرکز شوید.
استقرار
آخرین مهارت در این زمینه استقرار است. مهم نیست که متخصص تازهکار یا فرد باتجربهای باشید. هنگامی که مدلی را ایجاد میکنید، در نهایت باید توانایی استقرار آنرا داشته باشید. استقرار نشان میدهد که وظایف محوله را به بهترین شکل بهاتمام رساندهاید. بهطور معمول، کارشناسان فرآیند استقرار را در میزبانهای ابری انجام میدهند و برای این منظور از گزینههایی مثل مایکروسافت آژور، هروکو (Heroku)، پتلفرم ابری گوگل و غیره استفاده میکنند. البته، گزینههای داخلی نیز در این زمینه وجود دارند که قبل از استقرار باید درباره قابلیتهایی که ارائه میکنند، تحقیقات لازم را انجام دهید.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟