اطلاعات کتابشناختی
عنوان کتاب: A Programmer’s Guide to Data Mining: The Ancient Art of Numerati
نویسنده: Ron Zacharski
مترجم : مسعود کاویانی
ناشر نسخه ترجمه شده: انتشارات ناقوس
تعداد صفخات: ۴۴۹ صفحه
آنچه پس از مطالعه این کتاب خواهید آموخت:
- فصل اول در مورد داده کاوی (Data mining) و جنبه های کاربردی آن می پردازد.
- فصل دوم در مورد سیستم های توصیه گر (Recommender system) و نحوه پیاده سازی با زبان برنامه نویسی پایتون (Python) می پردازد.
- فصل سوم در ادامه فصل دوم بوده و سیستمهای توصیهگر مبتنی بر اقلام را مورد بررسی قرار می دهد.
- فصل چهارم شروعی بر مفاهیم اصلی بوده و با طبقه بندی (Classification) به ارایه مفاهیم اولیه داده کاوی می پردازد که در یادگیری ماشین (Machine learning) نیز یکی از اصلی ترین مفاهیم می باشد.
- فصل پنجم ادامه این مباحث بوده و داده کاوی را موشکافانه تر بررسی می نماید.
- فصل ششم به توضیح قضیه بیز (Naive Bayes) و نحوه پیاه سازی و کد نوشتن را بررسی می نماید.
- فصل هفتم داده های غیر ساختاریافته از جنس متن (Text) می پردازد و کار با این سبک از دادهها، به عنوان دادههایی که ساختار مشخصی ندارند را در دستور کار خود قرار داده است.
- فصل هشتم به ادامه مفاهیم اصلی می پردازد و به روش های Unsupervised روی آورده است. در این فصل خوشه بندی (Clustering) توضیح داده شده است.
دادهکاوی برای برنامه نویسان با نام اصلیِ A Programmer’s Guide to Data Mining، توسط ران زاچارسکی در وبسایت guidetodatamining.com به صورت رایگان انتشار یافته است.
این کتاب در ۸ فصل نگارش شده که در فصل اول به بررسی مقدماتی در مورد دادهکاوی و جنبههای کاربردیِ آن پرداخته شده است. فصل دومِ این کتاب به سیستمهای توصیهگر اختصاص یافته و در آن ساخت و پیادهسازیِ یک سیستم توصیهگر از پایه، با زبان برنامهنویسی پایتون همراه با مفاهیم و پیشزمینههای آن آموزش داده شده است. فصل سوم در امتداد فصل دوم است و به دستهی دیگری از سیستمهای توصیهگر مبتنی بر اقلام و پیادهسازی آنها توجه میکند. فصل چهارم کتاب در مورد طبقهبندی و نحوهی پیادهسازی الگوریتمهای مختلف آن است. فصل پنجم نیز ادامهی فصل چهارم بوده و کمی بیشتر در مورد طبقهبندی صحبت میکند. این فصل به نوعی الگوریتمهای فصل چهارم را توسعه میدهد. فصل ششم کتاب، به صورت انحصاری بر روش بیز ساده تمرکز کرده به طوری که میتوانید مفاهیم و پیادهسازی بیز و بیز ساده را در این فصل مشاهده کنید. فصل هفتم به بررسی دادههای غیر ساختاریافتهی متنی اختصاص دارد و کار با این سبک از دادهها، به عنوان دادههایی که ساختار مشخصی ندارند را در دستور کار خود قرار داده است. در فصل آخر نیز به خوشهبندی میرسیم و الگوریتمهای مختلف آن را همراه با پیادهسازی با کتاب مرور میکنیم.
تمامی کارهای مربوط به این کتاب و ترجمهی آن تحت لایسنس CC BY-NC 4.0 به صورت رایگان انتشار یافته است. کلیهی تصاویر این کتاب و ارجاعات مناسب آن نیز در این صفحهی گسترده ذکر شده است.
کدها و دادههای استفاده شده در نسخهی ترجمه شدهی کتاب را به تفکیک هر فصل، میتوانید به صورت کامل از اینجا دانلود نمایید. همچنین این کدها و دادهها در Github نیز قابل مشاهده و دانلود هستند.
در مورد داده کاوی (Data mining) از وب سایت چیستیو، بیشتر بخوانیم:
داده کاوی فرآیندِ تبدیلِ یک سری داده، به یک سری دانش، توسط فرآیندهای مختلف است.
با یک مثال شروع میکنیم. فرض کنید شما مدیرِ یک بانک هستید. و میخواهید از بینِ ۱۰۰۰۰۰مشتری که متقاضی وام هستند، به ۱۰۰۰نفر وام دهید. پس لازم است که از بین این ۱۰۰۰۰۰نفر، ۱۰۰۰نفری را انتخاب کنید که اطمینانِ بیشتری برای برگرداندنِ وام دارند. ولی این مدیر بانک فرصت ندارد که تمامیِ ۱۰۰۰۰۰ نفر را یکی یکی ارزیابی کند. علاوه بر این هر روز افراد جدیدی از راه میرسند و بایستی یکی یکی آنها را هم ارزیابی کند. این مدیر، تصمیم میگیرد به جای فرآیندهای سنتی، از روشهای دادهکاوی برای حل این مسئله استفاده کند.
در فرآیند داده کاوی، ابتدا مدیر بانک بایستی یک تعدادِ کمی از افراد مثلاً ۲۰۰ فرد را به عنوان افرادِ مطمئن و ۲۰۰ نفر دیگر را به عنوان افرادِ غیر مطمئن برای سیستم مشخص کند. این کار توسط هوشِ طبیعیِ مدیر بانک قابل انجام است.
اینجاست که داده کاوی وارد عمل میشود و ۲۰۰ فرد مورد اطمینان و ۲۰۰ فرد غیرمطمئن که مدیر بانک برچسب زده بود را مشاهده کرده و الگوهای رفتاریِ این افراد را مورد بررسی قرار میدهد. در واقع سیستم متوجه می شود که کدام الگوی رفتاری، منجر به اطمینان و کدام الگو منجر به عدم اطمینان میشود. در اینجاست که سیستم، یاد میگیرد (learn) و میتواند بین افرادِ مطمئن و غیرمطمئن، تمایُز قائل شود. البته برای تشخیص این الگو، مدیر بانک بایستی ویژگیهای مشتریان را در اختیار الگوریتم بگذارد.
حال این سیستم که فرآیند را یادگرفته است، میتواند هر مشتری دیگری علاوه بر این ۴۰۰ نفر که در موردِ یادگیری قرار گرفتهاند را نیز، در دسته مطمئنها و غیرمطمئنها، تقسیم کند. اینجاست، که تمامی ۱۰۰۰۰۰ نفر را به سیستم وارد میکنیم و خروجی این سیستم، میتواند افرادی را مشخص کند که مطمئن هستند و میتوان به آنها وام داد.
مثال برای توضیح بیشتر داده کاوی برای شما علاقمندان:
این یک مثال، از دادهکاوی بود، که به یادگیریِ نظارتشده نیز معروف است. در این جا، ناظر (همان مدیر بانک) یک مجموعهی کم از دادهها را برای سیستم، به اصطلاح برچسب (label) زد. یعنی مشخص کرد که کدام مشتری مطمئن و کدام مشتری نامطمئن است، سپس سیستم از روی این دادههای برچسب زده شده و ویژگیهای آنها، یادگیری را انجام داد. همان طور که مشاهده میکنید، از یک مجموعهی داده (مشتریهای بانک)، به یک سری دانش (به چه شخصی وام بدهیم به چه شخصی وام ندهیم) رسیدیم.
علم دادهکاوی، بسیار گسترده تر از بحثِ مثالِ اینجاست. به جز یادگیری نظارتشده که در مثال بالا گفته شد (یادگیری با مجموعه آموزشی داده)، یادگیریِ غیرنظارتشده (خوشهبندی) یا همان clustering، قواعد وابستگی، یادگیری تقویت شده و… نیز از زیر حوزههای علم دادهکاوی هستند.