با داده‌ها چه می‌توان کرد؟ 1


این وبلاگ را برای در میان گذاشتن تجربیات خودم با فارسی زبانان در باره فراگیری موضوعات مختلف در مورد Data یا آنگونه که در فارسی "داده ها" ترجمه شده است، آغاز می کنم. امیدوارم این مطالب برای علاقمندان به این رشته مفید واقع شود. این سلسله مطالب صرفا برای معرفی و آشنایی با علوم مرتبطه با داده ها در یک یا دو بلاگ نیست. ما با هم وارد گود خواهیم شد و از نزدیک علاوه بر تئوری، با داده های واقعی کار می کنیم، کد می نویسیم و آنها را بررسی می کنیم. برای کسب مهارت در شنا کردن باید به درون آب پرید و خیس شد و ما اینکار را با کمک همدیگر انجام خواهیم داد.


قبل از هر چیز بگذارید سنگها را در مورد نامهای گوناگون بکار رفته در زبان انگلیسی در ارتباط با این رشته با یکدیگر وا بکنیم. ترجمه لغتهای علمی، تکنیکی و اصولا هر موضوع دیگری که طی سالهای اخیر با تکنولوژی در ارتباط بوده است، به یکی از مشکلات بزرگ برای نگارش به زبان فارسی مبدل شده است. تاکنون تلاشهایی برای ترجمه این کلمات به فارسی صورت گرفته است که بجز مواردی نادر مانند نرم افزار و یا سخت افزار، غالبا این تمهیدات بی ثمر و حتی مضحک از کار درآمده است. متاسفانه در خلاء یک فرهنگسرای جدی با مشارکت اهل فن و اساتید خوش ذوق ادبیات فارسی که بتواند عهده دار این فرایند مهم باشد، تاکنون استفاده از معادل های فارسی کلمات در زبانهای دیگر به هرج و مرج کشیده شده است. تا آنجا که من اطلاع دارم، تلاشهایی از سوی زنده یاد محمد معین در تشکیل چنین فرهنگسرایی در رژیم سابق صورت گرفته بود که ناکام ماند و بعدها هم هرگز پی گرفته نشد.


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

به اصل مطلب برگردیم. علم داده ها Data Science یا تحلیل داده ها Data Analysis یا مهندسی دادها Data Engineer، همگی با آنکه در ارتباط با داده ها واطلاعات گردآوری شده بکار می روند و نقاط مشترکی دارند اما کاملا یکسان نیستند. این واژه های مختلف که گاها به عنوان جایگزین دیگری بکار می رود، برای فردی که در ابتدا برای فراگیری این موضوعات پا پیش می گذارد، گیج کننده است.

 
---------------------------------------------------------------------------


بگذارید در ابتدا تفاوتهای این واژه ها را برشماریم و به نقاط مشترک آنها اشاره کنیم. این تعاریف صرفا برای آشنایی اولیه با مسائل مرتبط با داده ها گفته می شود والا دانستن این تعاریف اگر ندانیم که چطور داده ها را جمع آوری کرده، بکار گیریم و تحلیل کنیم، فایده ای ندارد.
واژه Data Mining بیشتر مربوط به یافتن داده های مفید در میان انبوه داده های موجود یا بدست آمده است. به عنوان مثال همانطور که یک جستجو گر طلا در تلی گل و لای و خاک بدنبال تلالو درخشنده فلز قیمتی می گردد، یک "ماینر" داده ها با بررسی و تحلیل اولیه و یافتن ارتباط میان داده ها، آنها را غربال کرده و آماده بررسی های بیشتر می کند. کارآمدی یک متخصص استخراج داده ها بیشتردر برنامه نویسی کامپیوتر و استفاده از زبانهایی چون پایتون Python یا آر R است. یک استخراج کننده داده ها باید بداند که چگونه می توان داده ها را از منابع مختلف در اینترنت پیدا کرد، آنها را از طریق زبان برنامه نویسی بدست آورد و برای تحلیل توسط تحلیلگر و یا دانشمند داده ها آماده کند.

استخراج و جمع آوری داده ها اولین قدم است

کار یک تحلیلگر داده ها Data Analyst مرتب کردن، تمیز کردن Data wrangling and cleaning داده هاست. بدون انجام این عملیات، نرم افزار عملا قادر به اجرای الگوریتم بر روی داده هایی که متعاقبا بشود مدل و یا نتیجه گیری خاصی از آن بیرون کشید، نخواهد بود. مهندسی داده ها Data engineering اغلب به مجموع کار استخراج کننده و تحلیلگر گفته می شود. حجم داده ها در دوره کنونی آنچنان بزرگ است که گاه به دهها میلیون می رسد. از زمان بوجود آمدن تمدن بشری تا سال 2003، میزان داده های تولید شده قابل استفاده 5 اگزابایتس exabytes بود. از آن تاریخ تا کنون و با همگانی شدن اینترنت، هر دو روز یکبار این میزان از Data تولید شده و جمع آوری می شود. اگر فرمت یکی از دادها در یکی از سلولهای این جدول بزرگ (در هر بررسی خاص) اشتباه باشد، نرم افزار قادر به انجام الگوریتم خاص بر روی داده ها نخواهد بود. بعدا مفصلا با ذکر مثال در باره قالب format و جدول بندی داده ها که باید دقیق باشد توضیح می دهم.

در برخی از آموزشهای مرتبط با داده ها مبحث Big Data یا (داده های کلان) با مهندسی، تحلیل و علم داده ها ادغام می شود. موضوع big data، ذخیره، نگهداری و استفاده از آن که با تکنولوژی Hadoop در همه جا معرفی می شود، خود بحث دیگری است که باید در جایی دیگر به آن بپردازیم.

 پانداز طی سالهای اخیر به یکی از اصلی ترین نرم افزارهای این رشته مبدل شده که با زبان پایتون نوشته شده است
-------------------------------------------------------------

یک Data scientist علاوه بر آشنایی با کار با نرم افزار مربوط به کار با داده ها، از علم آمار Statistics آگاه است. متخصص علوم داده ها، مدلهای مختلف را در ارتباط با نتایج بررسی می کند و از آنها "پیش بینی Prediction" بیرون می آورد. در مطالب آینده در مورد تفاوت قرار گرفتن علوم مربوط به داده ها در دو دسته بندی نظارت شده Supervised و نظارت نشده Unsupervised بیشتر توضیح خواهم داد (اینهم یکی از همان کلمات است که برای ادای مقصود نارسا است. شاید بشود گفت کنترل شده یا نشده.)  مباحث مربوط به پیش بینی، جهت یابی و نتیجه گیری از فرآیند بررسی داده ها مربوط به دسته بندی Supervised است. یک data scientist بیشتر از آنکه در علوم کامپیوتری و برنامه نویسی و الگریتم تبحر داشته باشد، از علم آمار و ریاضیات آگاه است و می تواند نتایج بدست آمده از تحلیلهایش را به صورت قابل فهم و داستانی و بصری Graph توضیح دهد.

Add caption

علوم مرتبط با آمار بسیار پیشتر از پیشرفت در علوم کامپیوتر و برنامه نویسی وجود داشته و مورد استفاده قرار می گرفته است. آنچه که علوم داده ها را تا به این حد دردوران کنونی با اهمیت ساخته است، پیشرفت در سخت افزار و پردازش Processing، نرم افزار و در مجموع علوم کامپیوتری است که دسترسی به داده ها و جمع آوری آنها را میسر ساخته است.
حیطه های کاری ذکر شده درهریک از رشته های مربوط به Data در بالا در یکی دو سال گذشته آنچنان درهم ادغام شده است که اکنون یک Data Scientist به جزئیات تخصص مهندسی داده ها Data mining و تمیز کردن داده های بزرگ نیز آگاه است. به همین خاطر ما در این سلسله مطالب همه زیر و بم های کار با نرم افزار، از نصب تا پردازش الگوریتم را بر روی داده ها انجام داده و در آخر با ایجاد مدلهای گوناگون آمار بر روی داده ها در دنیای واقعی سعی در پیش بینی از نتیجه های بدست آمده از نرم افزار می کنیم.

آنچه که موفقیت در یادگیری علوم مربوط به این رشته و یا سایر علوم کامپیوتری (مثلا فراگیری زبان برنامه نویسی مانند پایتون و یا جاوا و غیره) را تضمین می کند، تمرین و ممارست، پشتکار و خسته نشدن است. اگر در جایی مثلا در نصب IPython و استفاده از نرم افزار ژوپیتر به اشکال بر می خوریم، به سراغ یوتیوب برویم و به هر طریق ممکن مسئله پیش رو را حل کنیم. اگر اعداد بدست آمده از داده های یکسانی که من و شما آنها را تحلیل می کنیم، یکی نیست، بدنبال راه حل بگردید و ببینید در کجا اشتباه شده. این جستجوهای گوگلی بدون شک شیوه ها و ترفندهایی را به شما می آموزد که شاید بیشتر از نوشته های این وبلاگ باشد.

در پایان این قسمت ذکر یک نکته خالی از لطف نیست که رشته های ذکر شده در ارتباط با داده ها Data تنها علوم مرتبط با کامپیوتر و ریاضیات و آمار نیست. جذابیت موضوع در اینست که علوم داده ها، امتزاج و پیوندی از هنر و علم است. اگربه تصویر بالا نگاه کنید، اولین قدم طرح سوال است. طرح درست یا نادرست سوال ممکن است تمام داده های نمونه Sample جمع آوری شده و نتایج بدست آمده نهایی را منتفی کند. اینکه داده ها از کجا بدست آمده و تا چه حد جانبدارانه Bias (دوباره ترجمه ای که مفهوم را نمی رساند) است، بسیار مهم است. یک مثال بیشتر موضوع را در مورد انتخاب نمونه ها در داده های Bias  روشن می کند:

در انتخابات سال 1936 آمریکا، مجله Literary Digest از دو و نیم میلیون نفردر مورد کاندیداهای رقیب نظرسنجی کرد. این برای اولین بار بود که از چنین تعداد زیادی در تاریخ نظر سنجی می شد. پس از بررسی نظرسنجی، این مجله پیش بینی کرد که "لندان" از حزب جمهوریخواه با کسب 57 درصد آراء در مقابل 43 درصد، رقیب دمکرات خود فرانکلین روزولت را شکست خواهد داد. نتایج واقعی پس از انتخابات نشان داد که روزولت با %63 در مقابل %38 رقیب خود را شکست داد. (دلایل این اشتباه را بعدا بررسی خواهیم کرد.) در همان زمان جرج گالوپ تنها با 50 هزار نظر سنجی پیش بینی کرده بود که فرانکلین روزولت برنده انتخابات می شود. نمونه دیگر بدون شک انتخابات 2016 آمریکا بود که اکثر نظرسنجی ها به اشتباه هیلاری کلینتون را برنده انتخابات می پنداشتند.

علم داده ها نه تنها در جمع آوری نمونه ها برای بررسی و پیش بینی از حیطه علم به هنر وارد می شود بلکه در مدل سازی های آماری نیز وصل کردن نقاط آشکار و پنهان به یکدیگر کاری بس جذاب، هنرمندانه و خلاقانه است. هیچ مدلی به طور کامل قطعیت ندارد. به قول جرج باکس، "همه مدلها اشتباه هستند و تنها بعضی از مدلها می توانند مفید واقع شوند."


- اطلاعات مربوط به این بخش و قسمتهای دیگر در باره پانداز، بیشتر برگرفته از کتاب  Python for Data Analysis, Data Wrangling with Pandas, NumPy,and IPython چاپ دوم از انتشارات اورایلی است که توسط Wes McKinney، خالق پانداز، نوشته شده است. 

*- بیشتر ملاتها در مورد بررسی آماری در این سلسله مطالب، برگرفته از دو کتاب An Introduction to Statistical Learning و The Elements of Statistical Learning Data Mining, Inference, and Prediction از انتشارات سپرینگر springer.com/us و کلاسهای ارائه شده آنلاین توسط دانشگاه هاروارد است.

**- استفاده از این سلسله مطالب با ذکر منبع آزاد است.

Comments

Popular posts from this blog

با داده‌ها چه می‌توان کرد؟ 12 - کار با پانداز - 3 چگونه داده‌ها را وارد کنیم؟

با داده‌ها چه می‌توان کرد؟ 7 - استخراج داده ها با پایتون