وقتی بحث علم داده میشه، همه دوست دارن توی یادگیری ماشین غرق بشن. دنیای یادگیری ماشین به شدت هیجان انگیز و جذابه. کارهای خفنی میشه باهاش کرد. اما یادگیری ماشین همه چیز نیست.
وقتی اسم خودمون رو میذاریم دیتا ساینتیست، داریم ۲ تا ادعای بزرگ می کنیم: اول اینکه دیتا رو میشناسیم، و دوم اینکه مثل یک دانشمند می تونیم فکر کنیم.
۳ تا چیز هست که به باور من می تونن برگ برنده هر کسی توی مصاحبه های مربوط به علم داده باشن. هر شاخه ای که باشه، فرقی نمی کنه. از مهندس داده گرفته تا متخصص یادگیری ماشین، سراغ هر موقعیت شغلی که بخواید برید، این سه مورد برای شما از نون شب واجبترن.
درسته. این کتابخانه که به نظر خیلی کوچولو و دم دستی میاد، خیلی خفنتر از اونه که در نگاه اول به نظر میاد. با استفاده از کتابخانه پانداز ما میتونیم هر بلایی که دوست داریم سر دیتا بیاریم. انواع اصلاحات رو روی داده اعمال کنیم، محاسباتی که میخوایم رو روی داده انجام بدیم، و کلی کار دیگه.
خیلی وقتها ممکنه توی کار (مثلا موقع آماده کردن داده برای یک مدل یادگیری ماشین) بخوایم تغییر خاصی رو روی داده اعمال کنیم، یا فیچر خاصی رو از داده بیرون بکشیم. برای این موقعیتها پنداز معمولا راه حل های خوبی داره. خیلی وقتها کاری رو که شاید اگر خودمون بخوایم با پایتون (یا زبانهای دیگه) از اول پیاده کنیم، چند ساعت ازمون وقت بگیره، با استفاده از پنداز میشه توی چند خط انجام داد.
راه پیشنهادی من برای مسلطتر شدن روی پنداز؟
خب قدم اول اینه که یه پروژه برای خودتون تعریف کنید و شروع به انجامش کنید. بهترین راه برای درک راه حل های پنداز اینه که اول مشکلاتی رو که میخواد حل کنه، درک کنیم. اما بعد چی؟ اینجاست که به یه منبع آموزشی مکمل احتیاج داریم.
کتاب Pandas Cookbook اون مکملیه که باید بریم سراغش. این کتاب چیزی نیست که بخوایم از سر تا ته بخونیمش. درواقع تنها یه قسمت از این کتاب رو باید کامل خوند: فهرست. بعد از اون، باید توی هر موقعیتی، بگردیم دنبال قسمتی از این کتاب که درباره مشکل ما داره توضیح میده. با خوندن چند خط توضیح در کنار کد، و بعد اعمال کردن اون راه حل روی مسئله خودمون، می تونیم اندک اندک (جمع مستان می رسند) تسلطمون رو روی این ابزار گوگولی و دوست داشتنی بالا ببریم.
حقیقت اینه که توی دنیای صنعت، چندان خبری از فایل csv آماده نیست. شروع یه پروژه یادگیری ماشین با بارگزاری دیتا توی ژوپیتر نوتبوک شروع نمیشه. توی دنیای صنعت دیتا رو باید از دیتابیس ها گرفت (یا خیلی جاهای دیگه که فعلا ازش رد میشیم) و برای گرفتن دیتا از دیتابیس، باید زبانشون رو بلد باشیم. در دنیای امروز مهمترین زبانی که برای استفاده از database ها باید یاد بگیریم، زبان SQL ئه.
تجربه شخصی: توی مصاحبههایی که برای جذب تحلیلگر داده توی شرکتمون داشتیم، تعداد کسایی که بخاطر بیگانگی مطلق با دیتابیسها رد میشدن، به شدت بیشتر از کسایی بود که بخاطر ندونستن یادگیری ماشین رد میشدن.
راه پیشنهادی من برای مسلطتر شدن روی دیتابیسها؟
یادگیری این یکی سرراست تره :)
کافیه دست به جستجو بشید، عبارت SQL for data analyst رو جستجو کنید. از بین کتابها یا دوره های ویدیویی که برای این موضوع هست، خودتون هرکدوم که بیشتر به دلتون نشست رو انتخاب کنید. اما فراموش نکنید که اینجا هم اصل قضیه تمرین کردنه. صرف خوندن کتاب یا تماشای ویدیو سود زیادی نداره.
نکته مهم: به عنوان یک دانشمند/تحلیلگر داده لازم نیست با مباحث طراحی دیتابیس درگیر بشید. حداقل در ابتدای مسیر لازم نیست. اینکه بتونید دیتایی رو که لازم دارید از پایگاه داده بیرون بکشید کافیه.
درسته. این یکی یه ابزار نیست. سخت شد. مگه نه؟ برای رسیدن به تفکر تحلیلی نمیشه چمبره زد روی کیبورد یا غرق شد توی کتابها. برای این یکی مسیر یه مقدار سختتر و طولانیتر، ولی مهمتر از اون: جذابتره. برای رسیدن به تفکر تحلیلگرانه باید آروم آروم پیش رفت. حقیقتا من هم اینجا نمی تونم توی چند خط جا کمک زیادی بکنم. اما فکر می کنم با یه ترفند باحال میشه به سمت این هدف حرکت کرد.
وقتی از تفکر تحلیلی صحبت می کنیم، کسی میاد جلوی چشممون که می تونه توی هر موقعیتی با بررسی و تحلیل شرایط، برای نیازی که داریم راه حل خوب ارائه بده. اما این همه ماجرا نیست. یا بهتر بگم: این شروع ماجرا نیست. فرایند تحلیل، در واقع یک پله قبلتر شروع میشه: موقع پرسیدن سوال. حقیقت اینه که جوابهایی که ما به دست میاریم، در صورتی به درد می خورن که به سوال درستی جواب داده باشیم.
الان احتمالا منتظرید که من بگم سوال خوب چیه و چطور پیداش کنیم. اما این رو نمیشه توی این مطلب جا داد. تاثیری که امیدوارم این مطلب روی شما بذاره اینه که دفعه بعد که با یه دیتای جدید مواجه شدید، به جای بلافاصله اقدام به ساخت یه مدل مبتنی بر یادگیری عمیق، اول به این فکر کنید که با استفاده از این داده به چه سوالی میشه جواب داد؟ چه نیازی رو میشه بر طرف کرد؟ چطور میشه به آدمها کمک کرد با بینشی که توی این داده نهانه؟ فکر می کنم این نقطه شروع خوبی باشه.
چی شد که این مطلب رو نوشتم؟ امروز توی راه از جلوی یه کتابفروشی رد شدم و پشت ویترین کتابی بود با عنوان چیزهایی که آرزو می کنم در ۲۰ سالگی می دانستم (یا چیزی شبیه به این) و بعد یاد روزهایی افتادم که تلاش می کردم یه شغل در حوزه داده پیدا کنم. احتمالا اگر اون روزها این نکاتی که اینجا گفتم رو می دونستم، مسیر پیدا کردن شغل برام خیلی راحتتر میشد.
شخصا باور دارم که این سه موردی که اینجا در موردشون صحبت کردم باید جزو اولویتهای یک دانشمند داده جویای کار باشه. شاید یادگرفتن اینها به اندازه مباحثی مثل شبکه های عصبی هیجان انگیز نباشه، اما حقیقتا اهمیت این ۳ نکته اگر از یادگیری ماشین بیشتر نباشه، یقینا کمتر نیست.
خیلی خوشحال میشم نظر یا تجربه شخصی خودتون رو هم توی کامنتها بگید. اگر هم درباره هر کدوم از بخشهای این مطلب سوالی دارید، بپرسید. سعی می کنم به همه سوالها جواب بدم.
من رضا کشاورز، یه تحلیلگر داده و مدرس علم داده م. اگر دوست داشتید مطالب دیگه ای که در زمینه دیتا ساینس و هوش مصنوعی می نویسم رو بخونید، کافیه من رو اینجا توی ویرگول دنبال کنید، یا بیاید توی لینکدین کانکت بشیم. اونجا هم لینک مطالبی که می نویسم رو میذارم. با لایک کردن و فرستادن این مطلب به کسایی که فکر می کنین بهش نیاز دارن، هم من و هم اونها رو می تونید خوشحال کنید :)