علم داده یک موضوع میانرشتهای است یعنی وقتی وارد این حوزه میشوید لازم است که به عنوان دانشمند داده موضوعات، مهارتها و ابزارهای مختلفی را آموزش ببینید و از آنها استفاده کنید. برای اینکه از این دانش تئوری بتوانیم استفاده کنیم مهارتهای مختلفی را لازم داریم از جمله:
- “آمار و احتمال“ و “یادگیری ماشین” دو بال اصلی حوزه دیتاساینس هستند. میتوان گفت پایه همه الگویتمها و مدلهایی که اجرا میشود به نوعی در آمار و احتمال و یادگیری ماشین قرار دارد.
- برنامهنویسی: عموما از زبان R و پایتون استفاده میشود. برای کارهای تحقیقاتی، پژوهشی و دانشگاهی بیشتر از R استفاده میشود. اما در شرکتها و کمپانیها ترجیح بر این است که از پایتون استفاده کنند.
- ریاضیات و جبر خطی: ما با فضای ماتریسی از دادهها سر و کار داریم که الگوریتمها روی این فضای ماتریسی توسعه داده شده است. مباحث ریاضیات و جبر خطی برای درک بهتر این الگوریتمها و توسعه آنها به ما کمک میکند. به ویژه برخی از مباحث ریاضی از جمله حساب دیفرانسیل، مشتقات و بهینهسازی، آنالیز تابعی و تبدیلات، فضاهای برداری، محاسبات ماتریسی.
- پایگاه داده و مهندسی نرمافزار: زمان که در پروژههای واقعی و اجرایی ما وارد یک سازمان میشویم با دادههای مرتب و منظمی سر و کار نداریم بلکه دادهها در منابع مختلف، در پایگاه دادهها و سایتهای مختلفی پراکنده و پخش شده است. بنابراین لازم است که ما دیتابیس را یاد بگیریم. انواع SQL یا No-SQL یا موارد دیگر را یاد بگیریم که بتوانیم با دیتا سورسهای مختلف کار کنیم. در حین کار بخشهایی از مهندسی نرمافزار اهمیت پیدا میکند به عنوان مثال شاید نیاز پیدا کنیم که مدل خودمان را به یک سرویس یا نرمافزار تبدیل کنیم. هرچقدر که ما در حوزههای مختلف دانش و مهارت کمتری داشته باشیم موقعیتهای شغلی بیشتری را از دست میدهیم!
- قصهگویی و مصورسازی: یعنی قابلیت ارائه مطلب به شکل جذاب. زیرا بخشی از خروجی کار ما قرار است به مدیران ارائه شود پس نیاز داریم که بتوانیم ارائه بهتری داشته باشیم. اینکه چطور یک مسیر بچینیم و یک داستانی را طراحی کنیم که از دادههای خام استفاده کند و با توجه به چالشهای آن کسب و کار یک مسیری را طی کند و دستاوردهای ما را به بهترین شکل نشان دهد تا اهمیت آن برای مدیران و تصمیمگیران دیده بشود. بنابراین لازم است که با زمینه کسب و کار هم تا حدی آشنا باشیم.
با توجه به ماهیت بینرشتهای دیتاساینس و مهارتهایی که لازم دارد و در بالا ذکر شد، میتوان گفت که دیتاساینس یکی از مصداقهای STEM است؛ Science, Technology, Engineering & Mathematics
دانشمند داده شخصی که آمار را بهتر از هر مهندس کامپیوتری میداند و مهندسی کامپیوتر را بهتر از هر متخصص آماری میفهمد.
طبق این تعریف متوجه میشویم که لازم نیست ما در تمام آن حوزهها مسلط شویم، اما لازم است که در همه این حوزهها وارد شده باشیم و بتوانیم با آنها ارتباط برقرار کنیم و به صورت تیمی کار کنیم.
مثال: ساختار یک تیم فنی در حوزه دیتا را در نظر بگیرید:
در این تیم فرضی، گروهی از افراد به عنوان Data Engineer فعالیت می کنند. این افراد وظیفه دارند که دیتاها را از منایع مختلف جمعآوری و یکپارچه کنند و پس از تبدیلات لازم آنها را در دسترس افرادی قرار دهند که طراحی و توسعه مدل را انجام میدهند.
گروهی از افراد به عنوان Data Scientist فعالیت می کنند. این افراد در طراحی الگوریتمها و مدلها تبحر دارند، این گروه با Data Engineerها تبادل و همافزایی دارند و روی اطلاعاتی که آنها برایشان جمعآوری کردهاند مدلهایی را طراحی میکنند، الگوها را شناسایی میکنند و ابزارهای خاص خود را دارند. این افراد همچنین در تعامل با کسانی هستند که متخصص آن کسبوکار هستند، نیازهای آن بازار، چالشها و اولویتهای آن کسب و کار را میشناسند؛ اینکه در حال حاضر چه مسئلهای مهم است و با چه راهکاری میتواند عملیاتی بشود و ارزش افزوده ایجاد کند.
تعامل گروه ذکر شده با تیم حل مسئله کمک میکند که راهکار مناسبی شکل بگیرد و خرجی آن مدلها بتواند با ریسک کمتری وارد دنیای واقعی شود و مورد استفاده قرار بگیرد. این وسط به یکسری افراد نیاز داریم که توسعه دهنده وب هستند، این افراد در کنار اینکه زبان آن کسب و کار را میدانند و میفهمند که با چه داستانی آن کار را ارائه کنند و قصهگویی بلد هستند، همزمان دانشی از تحلیل مدلها و محدودیتهای الگوریتمها نیز دارند.
بنابراین همانطور که دیدیم این تیم از بخشهای مختلفی تشکیل شده که هر گروه در عین حال که در حوزه خود تخصص دارد، درک مناسبی از سایر گروهها نیز دارد تا بتوانند در قالب یک تیم با هم کار کنند.
اگر موضوع میانرشتهای بودن علم داده را در 4 سطح در نظر بگیریم؛
یک سطح مربوط به مهندسین نرمافزار است که معمولا در مرحله طراحی محصول استفاده میشود.
یک لایه Data Engineering است که کار یکپارچهسازی دیتاهای مورد نیاز را انجام میدهد.
یک بخش Researcherها هستند که روی الگوریتمها تبحر دارند و کار بهینه و توسعه آنها را انجام میدهند.
بخش چهارم Business Analysistها هستند که آن کسب و کار را میشناسند و بر اساس نیازمندیهای آن می توانند خروجی ها را به بهترین شکل ممکن ارائه دهند تا قابلیت استفاده از آن را بیشتر کنند.
ما به عنوان یک Data Scientist باتوجه به اینکه چه ترکیبی از این 4 سطح را در کارمان داشته باشیم و به آنها احتیاج داشته باشیم در موقعیتهای شغلی مختلفی در تیم علم داده قرار میگیریم. بخش عمده موقعیتهای شغلی مورد نیاز به این شکل است:
دانشمند داده: افرادی که مدل ها را توسعه می دهند، یعنی افرادی که سعی می کنند با روش های اکتشافی، داده ها را تحلیل کنند و ارتباط بین داده ها را متوجه بشوند و بر اساس آن مدل هایی را برای پاسخگویی به یکسری سوالات طراحی کنند.
تحلیلگر داده: این افراد درک بیشتری نسبت به آن کسب و کار دارند و سعی می کنند با توجه به زبان آن کسب و کار سوالات بهتری مطرح کنند و جواب های بهتری را به مدیران ارائه دهند، داشبوردهای مدیریتی طراحی کنند. این افراد به بحث های مقدماتی آمار و توصیف داده ها و دانش پایه ای آمار را لازم است که آشنا باشند.
مهندس داده: این افراد زیاد وارد تحلیل داده نمی شوند و صرفا یک دانش حداقلی از الگوریتم ها برای آنها کافی است. کار این افراد پایگاه داده و به خصوص یکپارچه سازی داده ها و طراحی پایپ لاین داده ها کار اصلی آنهاست برای اینکه دیتاها از منابع مختلف و در زمانبندی درست و در یک ساختار درست آماده شود و به دست تحلیلگران داده و دانشمندان داده برسد.
محقق داده: به جز شرکت های بزرگ، در خیلی از شرکت ها این بخش توسط دانشگاه ها و مراکز تحقیقاتی انجام می شود. به عنوان مثال افرادی که PHD آمار یا علوم کامپیوتر دارند در این حوزه تمرکز می کنند و روی الگوریتم ها و بهینه سازی آن کار می کنند و بعدها Data Scientistها از نتایج کار آنها استفاده می کنند.
مهندس یادگیری ماشین: افرادی که روی پرفورمنس کدهای نوشته شده توسط Data Scientistها و اتوماتیک کردن آنها متمرکز هستند. افرادی که دانش مهندسی نرم افزارشان تقویت شده است. این گروه شکاف بین دانشمندان داده و توسعه دهندگان نرم افزار را پر می کنند. در این گروه به دانش ماشین لرنینگ و الگوریتم خوبی نیز نیاز دارند.
در واقع برای یک دانشمند داده مهمترین مهارت ها در بخش های برنامه نویسی و ارتباط با لایه های کسب و کار میباشند. در کنار آن درک شهودی از دادهها بسیار مهم است چون ابزاری که دیتاآنالیست قرار است با آن کسب و کار را ارائه کند دیتاها هستند. با آمار هم آشنایی داشته باشد اما زیاد وارد بقیه تخصص ها و مهارت های دیگر نمی شود و یک آشنایی ضمنی با آنها برای او کافی است.
مهندس ماشین لرنینگ لازم است که در برنامه نویسی قوی باشد. درک شهودی بالایی از داده ها داشته باشد. آمار، ماشین لرنینگ، ریاضیات و جبر خطی را خیلی خوب بداند. لازم است که با پرفورمنس بالا کار کند چون باید الگوریتم ها را برای پروژه ها و ابزارها بهینه کند.
مهندس داده برخلاف مهندس ماشین لرنینگ که در فرآیند آماده سازی داده ها (data wrangling) وارد نمیشود، مهندس داده لازم است که در این بخش خیلی قوی باشد. برنامه نویسی را طبیعتا باید بلد باشد. در مهندسی نرم افزار را باید خیلی خوب باشد. نیاز به دانش بالایی در ماشین لرنینگ و ریاضیات ندارد و یک دیدگاه کلی برای او کافیست. از آمار و درک شهودی نسبت به داده ها باید دیدگاه نسبتا خوبی داشته باشد.
دانشمند داده یا دیتاساینتیست لازم است که در همه این موارد خوب یا حداقل متوسط باشد! یعنی به جز مهندسی نرم افزار و دانش ریاضیات که در حد متوسط لازم است بداند، مابقی مهارت ها را در حد خیلی خوب باید بلد باشد و اهمیت بالایی در کار دارند. شاید به همین دلیل است که دستمزهای دیتاساینتیست بیشتر از سایر موقعیت های شغلی گفته شده است.
مدرس: محمد روزبه (مدیرعامل گروه دایکه)
مستندساز: ساره واحدی
برگرفته از محتوای آموزشی پانزدهمین دوره علم داده دایکه