سریع و ساده

هدف از این صفحه در آکادمی فرابر، ارائه مختصری در مورد Buzzword‌های حوزه Business Intelligence، Data Mining و Big Data است. جهت آشنایی بیشتر با موارد ارائه شده در این صفحه، می‌‎توانید به قسمت مقالات آکادمی مراجعه فرمایید.

برترین رابط‌های کاربری Machine Learning (یادگیری ماشین) عبارت‌اند از:

۱) IBM Watson

۲) Microsoft Azure Machine Learning API

۳) Google Prediction API

۴)Amazon Machine Learning API

۵) BigML

زیرساخت‌های کلان داده:

درحالی‌که زيست بوم Hadoop گزينه مورد اقبال برای پردازش مجموعه داده‌های بزرگ به‌صورت موازی با استفاده از منابع رايانشي است، اما چندين زیرساخت رايانشي ديگر موجود است. در يک نگاه کلان می‌توان زیرساخت رایانشی کلان داده‌ها را به دو موضوع “دسته‌ای” و “جریانی” تقسيم نمود. زیرساخت‌های “دسته‌ای” کلان داده‌ها عبارت‌اند از: hadoop، S4، Hama و Giraph و زیرساخت‌های “جرياني” کلان داده‌ها عبارت‌اند از: infosphere، Storm و Spark

Hadoop (هدوپ) یک Framework و محیط ذخیره و پردازش توزیع‌شده برای داده‌های حجیم است. MapReduce یك مدل پردازش توزیع‌شده است كه در هدوپ (Hadoop) پیاده‌سازی شده است. Spark (اسپارك) یك مدل پردازش توزیع‌شده دیگری است كه می‌تواند روی هدوپ و یا به‌صورت مستقل اجرا شود و برای رفع محدودیت‌های Mapreduce در پردازش Interactive و پردازش Stream (استریم) بکار برده شود.

 Flink(فلینک) فناوری بسیار جدیدی است در حوزه‌ی Big Data (بیگ دیتا)، که در زمانی کوتاه، برتری‌های بسیاری را به نسبت Spark (اسپارک) در خصوص پردازش آنلاین و یا به عبارتی بهتر نزدیک به آنلاین (پاسخگویی آنی) به دست آورده است.

جهت نصب و پیاده‌سازی پلتفرم‌های مطرح بیگ دیتا (Big Data) همچون آپاچی هدوپ درصورتی‌که تجربه قبلی نداشته‌اید، به دلیل پیچیدگی‌های موجود، ابتدا از پکیج‌های ارائه‌شده کمپانی‌های Cloudera, Hortonworks و… استفاده کنید. در این پکیج‌ها تمامی ابزارهای مورد نیاز وجود دارد و پس از راه اندازی در یک ماشین مجازی امکان استفاده از پلتفرم‌های مورد نیاز میسر خواهد شد.

Apache Kafka (کافکا) یک Message broker (سیستم پیام‌دهی توزیع‌شده در زمینه عضویت-انتشار) است که برای انتقال اطلاعات به‌صورت Real Time و Stream کاربرد دارد. در نسخه جدید Kafka امکان پردازش Stream هم به Kafka اضافه شده است.

در حوزه کلان داده‌ها (Big Data) سه نوع تخصص وجود دارد:
Big Data Developer
Big Data Administration
Big Data Analytics

اسپارک (Spark) نسل سوم موتورهای پردازشی کلان داده‌ها هست که با توجه به In memory بودن سرعت بالاتری نسبت به معماری‌هایی چون Map Reduce دارد و همچنین توانایی انجام پردازش‌های Iterative و interactive را دارا است.

گوگل به‌تازگی کتابخانه متن‌باز خود با نام تنسورفلو (TensorFlow) را که ابزاری قدرتمند برای محاسبات عددی و یادگیری ماشینی است، معرفی کرده است.

Avro: يک فناوری سریالی داده که از JSON برای تعريف انواع داده و پروتکل‌ها استفاده کرده و داده‌ها را به يک فرمت باينري فشرده سريالي می‌کند.

Chukwa، زیر پروژه هدوپ برای بهینه‌سازی پردازش لاگ‌ها است.

دو نمونه از زیرساخت‌های ذخیره‌سازی کلان داده‌های NewSQL ، يا همان ذخیره‌گاه‌های درون حافظه‌ای، Hstore و VoltDB هستند.

در حوزه وب کاوی، Opinion Mining جهت شناسایی عقیده و احساسات مانند شادی و غم و …، Personality Insight برای شناسایی شخصیت و آنالیز فردی و Sentimental Analysis برای شناسایی احساسات همانند موافق، مخالف، مثبت، منفی و… مطرح است. برای انجام Opinion Mining و Personality Insight باید به پردازش زبان طبیعی و الگوریتم‌های متن‌کاوی پرداخت و برای Sentimental Analysis نیازمند الگوریتم‌های طبقه‌بندی متون خواهیم بود.

تنسورفلو، 5 برابر سریع‌تر از نرم‌افزار یادگیری ماشینی قبلی گوگل عمل می‌کند و می‌تواند با سرعت بسیار بیشتری عکس‌ها، اطلاعات تلفن‌های هوشمند، مکالمات انجام شده و دیگر انواع داده را تحلیل کرده و از آن‌ها بیاموزد.

الگوریتم کلونی مورچه‌ها الهام گرفته شده از مطالعات و مشاهدات روی کلونی مورچه‌هاست. این الگوریتم اولین بار برای بهینه‌سازی مسئله فروشنده دوره‌گرد (TSP) ارائه شد. خیلی از دانشجویان در سرتاسر جهان از این الگوریتم برای بهینه‌سازی استفاده می‌کنند.

الگوریتم‌های يادگيري ماشين در داده‌های حجيم:

الگوریتم‌های ماشين لرنينگ در بيگ ديتا، به چهار دسته زير تقسيم می‌شوند:

  • نظارتي:
    • رگرسيون: “چندجمله‌ای” و “MARS”
    • دسته‌بندی: “درخت تصميم” و “شبکه بيزين” و “ماشين بردار پشتيبان”
  • غير نظارتي:
    • خوشه‌بندی: “میانگین K”، “ترکیب‌های گوسين” و “قاعده تحليل جزء”
  • نيمه نظارتي: “فعال” و “هم آموزي”
  • تقويت مجدد: “فرآيند تصمیم‌گیری مارکوف” و “يادگيري–Q”

پایگاه داده‌ی Apache Cassandra از نوع NoSQL و به‌صورت متن‌باز ارائه‌شده است که برای کار کردن با حجم زیاد داده سازمان‌ها کاربردهای فراوانی دارد. مقیاس‌پذیری کلان، معماری همواره در دسترس (always-on)، کارایی بالا، امنیت عالی و مدیریت آسان از مشخصه‌های این سیستم است.

Cloudera درواقع نسخه‌ای از Apache Hadoop است که پروژه‌های در سطح سازمانی برای کلان داده‌ها را به‌خوبی مدیریت می‌نماید.

HBase یک پایگاه داده‌ای متن‌باز، غیر رابطه‌ای و توزیع‌شده و از نوع ستون گراست که پس از ارائه BigTable توسط google، با زبان جاوا پیاده‌سازی شده است. HBase از Zookeeper برای اطمینان از فعال و در حال کار بودن تمامی قطعات خود استفاده می‌کند.

 Oozie یک سیستم جریان کار (Wokflow) مقیاس‌پذیر در اکوسیستم داده‌های حجیم است. این سیستم قادر به مدیریت مقدار زیادی از پیچیدگی‌ها بر اساس وقوع وقایع خارجی شامل وقایع زمانی و وجود داده‌های موردنیاز است.

Apache Flume (آپاچی فلوم) به کسب‌وکارها این امکان را ارائه می‌کند تا حجم زیاد و گسترده داده‌ها (از قبیل لاگ‌ها از منابع متعدد) را در HDFS تجمیع و تلفیق، یکپارچه‌سازی و جابجا کنند. این سیستم به‌ویژه برای تغییر داده‌ها به یک Cluster از Hadoop کاربردهای فراوان دارد.

 Zookeeper سرویس هماهنگ‌کننده‌ی توزیع‌شده هادوپ بوده و برای اجرا در خوشه‌ای از ماشین‌ها طراحی‌شده است. این سرویس قابلیت دسترسی برای مدیریت فعالیت‌های هادوپ و بسیاری دیگر از قطعات و اجزای وابسته به آن را ارائه می‌کند.

فیشینگ یک جرم اینترنتی نسبتاً جدید در مقایسه با سایر شیوه‌ها، مانند ویروس و هک‌ کردن، است. این موضوع در کشف تقلب و تخلف (Fraud Detection) موضوعیت دارد. این واژه، برگرفته از عبارت website fishing است (طعمه‌ای رها می‌شود به این امید که کاربر در دام بیافتد و مانند ماهی طعمه را گاز بزند). در بسیاری از موارد، این طعمه به شکل یک ایمیل یا سایت پیام کوتاه ظاهر می‌شود، که باعث هدایت کاربر به وب‌سایت‌های فیشینگ خواهد شد. درواقع، وب‌سایت‌های فیشینگ بانکداری الکترونیکی، وب‌سایت‌هایی جعلی هستند که به‌وسیله‌ی افرادی به قصد همانندسازی وب‌سایت‌های واقعی بانکداری الکترونیکی ایجاد می‌شوند. بسیاری از این نوع صفحات وب از مشابهت‌های بالایی با وب‌سایت‌ اصلی برخوردارند تا قربانیان فریب بخورند.

ده الگوریتم برتر داده‌کاوی‌ها عبارت‌اند از:

۱. C4.5
۲. k-means
۳. Support vector machines
۴. Apriori
۵. EM
۶. PageRank
۷. AdaBoost
۸. kNN
۹. Naive Bayes
۱۰. CART

مطابق نظریه CAP، ما در انتخاب تکنولوژی‌های ذخیره و پردازش با سه موضوع اصلی مواجه هستیم:

ثبات یا (Consistency): تمامی Client‌ها همواره به نسخه‌های یکسانی از داده دسترسی داشته باشند.

دسترس‌پذیری یا (Availability): هر Client بتواند داده‌ها را همواره هم بخواند و هم بنویسد.

تحمل بخش‌پذیری (Partition Tolerance): سیستم به‌رغم تقسیم شدن فیزیکی شبکه به قسمت‌های مختلف، به خوبی کار کند.

راه‌حل‌های زیر در این نظریه عبارت‌اند از:

راه‌حل‌های Consistency- Availability) CA)  شامل: RDBMS‌ها: SQL و  Oracle و  MySQL و Postgres و …

راه‌حل‌های Consistency- Partition Tolerance) CP) شامل: MongoDB و HBase و Redis و …

راه‌حل‌های Availability- Partition Tolerance) AP) شامل: Cassandra و CouchDB و Dynamo و …

MapReduce یا نگاشت-کاهش، یک مدل برنامه‌نویسی برای پردازش داده‌های کلان به‌صورت توزیع‌شده و موازی است.

انبار داده Hive، برای ایجاد قابلیت SQL بر روی داده‌های ساختارمند و ذخیره‌شده در HDFS به وجود آمد. به بیان ساده‌تر، Hive، ابزاری برای تبدیل دستورات SQL به عملیات MapReduce است.

زبان اسکریپت نویسی Pig، به برنامه نویسان اجازه می‌دهد تا تولید چرخه‌های پردازش داده از طریق MapReduce را با استفاده از زبانی نام Pig Latin تولید کنند.

Apache Ambari  (آپاچی امباری) با ارائه محیطی بصری برای ساده‌تر کردن مدیریتHadoop، در مانیتورینگ فعالیت‌های کلاسترها و پیکربندی سرویس‌ها می‌باشد.

Sqoop یک ابزار اتصال برای انتقال داده بین پایگاه‌های داده رابطه‌ای و انبار داده‌ها و هادوپ است.

سرویس وب آمازون (Amazon Web Services – AWS) مجموعه‌ای از خدمات وب هستند که شرکت آمازون بر روی بستر ابری خود در اختیار کاربران قرار می‌دهد. این سرویس‌ها، شامل سرویس محاسباتی و رایانشی (EC2)، ذخیره‌سازی (S3)، تحویل محتوا، پایگاه داده‌ها و … می‌باشند که زیرساخت‌های فناوری اطلاعات را به‌صورت انعطاف‌پذیر به مشتریان اجاره می‌دهند.

Mahout برای پیاده‌سازی الگوریتم‌های یادگیری ماشین و داده‌کاوی با استفاده از چارچوب نگاشت-کاهش (MapReduce) بکار گرفته می‌شود. درواقع ماهوت، یک مجموعه از کارهای نگاشت- کاهش (MapReduce) است که می‌توان آن‌ها را با دستورات ماهوت اجرا کرد.

زمانی که سازمان‌ها، قصد حل کردن مسئله‌ای را با داده‌کاوی دارند، چندین سؤال مهم را قبل از هر کاری باید پاسخ دهند:

  • سؤال یا Business Problem که مطرح شده است، دقیقاً به چه معناست؟ (درک دقیق و یکسان میان بهره‌برداران و تیم داده‌کاوی و حتی‌المقدور فرموله کردن سؤال)
  • چه طور بفهمیم که موفق شده‌ایم؟ (شاخص‌های سنجش موفقیت – تعریف موفقیت در آن داده‌کاوی)
  • با این فرض که این مسئله را حل کرده‌ایم، اولین کار عملیاتی، چه خواهد بود؟ (چه قابلیت یا ارزشی افزوده می‌شود؟)
  • اگر همه ارکان سازمان از این راهکار استفاده کنند، چه نتیجه‌ای به دست می‌آید؟(تخمین تأثیرات)
  • بدترین کاری که با این راهکار می‌توان انجام داد، چیست؟(کنترل اخلاقی بودن، قانونی بودن و تأثیرات بر همه گروه‌های ذینفعان)

Sharding یک الگوی تقسیم اطلاعات بر روی چندین سرور است که اساس توزیع شده بودن بانک‌های اطلاعاتی NoSQL را تشکیل می‌دهد. این نوع تقسیم اطلاعات، از Query‌هایی به نام Fan-out پشتیبانی می‌کند. به این معنا که شما Query خود را به نود اصلی ارسال می‌کنید و سپس به کمک موتور‌های Map Reduce، این Query بر روی سرورهای مختلف اجرا شده و نتیجه نهایی جمع‌آوری خواهد شد. به‌این‌ترتیب تقسیم اطلاعات، صرفاً به معنای قرار دادن یک سری فایل بر روی سرورهای مختلف نیست، بلکه هر کدام از این سرورها به‌صورت مستقل نیز قابلیت پردازش اطلاعات را دارند. از آنجائی که Shardها را می‌توان در سرورهای بسیار متفاوت و گسترده‌ای از لحاظ جغرافیایی قرار داد، هر Shard می‌تواند همانند مفاهیم CDN نیز عمل کند، به این معنا که می‌توان Shard مورد نیاز سروری خاص را در محلی نزدیک‌تر به او قرار داد. به‌این‌ترتیب سرعت عملیات افزایش یافته و همچنین بار شبکه نیز کاهش می‌یابد.

HANA یک پلتفرم از شرکت SAP است که برای مبادله‌های حجیم و تحلیل‌های آنلاین طراحی شده است. هانا،  قادر است تحلیل‌ها و جستجوهای سریع را مدیریت کند. از منظر SAP، هانا،  می‌تواند به شتاب بخشیدن به تحلیل‌ها، روال‌های تجاری، محافظت از پردازش داده‌ها و قابلیت‌های پیش‌بینی کننده، کمک کند.

CRISP ا( Cross Industry Standard Process for Data Mining)ا، فرآیندهای و متدولوژی استاندارد پروژه‌های داده‌کاوی است. که شامل شش مرحله است:

  • فهم کسب‌وکار
  • درک داده‌ها
  • آماده‌سازی داده‌ها
  • مدل‌سازی
  • ارزیابی
  • توسعه

تکنیک‌های آماری:

يادگيري ماشين تنها پارادايم براي معنا بخشيدن به داده‌های بزرگ نيست. تکنیک‌های آماری در واقع روش استاندارد تحليل داده‌ها براي مدت طولاني بوده است. برخي از اصطلاحات يادگيري ماشين در مقابل تکنیک‌های آماری عبارت‌اند از:

يادگيري ماشين آمار
شبکه و گراف مدل
مثال / نمونه نقطه داده
برچسب پاسخ
وزن‌ها پارامترها
ويژگي متغير کمکي
يادگيري تناسب / تخمين
تعميم عملکرد مجموعه آزمايشي
يادگيري نظارتي رگرسيون / دسته‌بندی
يادگيري غير نظارتي تخمين چگالي / خوشه‌بندی