یک مثال سریع: مجموعه داده‌ی Iris

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

در این مثال خاص، هدف اینه که گونه‌ی گل Iris رو بر اساس طول و عرض کاسبرگ‌ها و گلبرگ‌ها پیش‌بینی کنیم. اول، باید یه مدل بسازیم بر اساس مجموعه داده‌ای که اندازه‌گیری‌های گل‌ها و گونه‌های مربوط به اون‌ها رو داره. بر اساس کدمون، کامپیوتر “از داده‌ها یاد می‌گیره” و الگوهایی از اون استخراج می‌کنه. بعد از این، چیزی که یاد گرفته رو روی یه مجموعه داده‌ی جدید اعمال می‌کنه. بیایید به کد نگاه کنیم:

مرحله 1: نصب و وارد کردن کتابخانه‌ها

اولین کاری که باید انجام بدیم نصب و وارد کردن کتابخانه‌های لازم هست:

import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score

مرحله 2: بارگیری داده‌ها

حالا مجموعه داده‌ی Iris رو بارگیری می‌کنیم:

# بارگیری مجموعه داده‌ی Iris
iris = load_iris()
data = pd.DataFrame(data=iris.data, columns=iris.feature_names)
data['species'] = iris.target

مرحله 3: تقسیم داده‌ها به مجموعه‌ی آموزشی و آزمایشی

برای ارزیابی عملکرد مدل، داده‌ها رو به دو بخش آموزشی و آزمایشی تقسیم می‌کنیم:

# تقسیم داده‌ها به مجموعه‌های آموزشی و آزمایشی
X = data[iris.feature_names]
y = data['species']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

مرحله 4: ساخت و آموزش مدل

حالا یک مدل جنگل تصادفی (Random Forest) می‌سازیم و اون رو آموزش می‌دیم:

# ساخت و آموزش مدل جنگل تصادفی
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)

مرحله 5: پیش‌بینی و ارزیابی مدل

بعد از آموزش مدل، پیش‌بینی‌ها رو روی مجموعه‌ی آزمایشی انجام می‌دیم و دقت مدل رو ارزیابی می‌کنیم:

# پیش‌بینی روی مجموعه‌ی آزمایشی
y_pred = model.predict(X_test)

# ارزیابی دقت مدل
accuracy = accuracy_score(y_test, y_pred)
print(f'DAccuracy: {accuracy * 100:.2f}%')

نتیجه

اگر همه چیز به درستی پیش بره، باید دقت مدل رو ببینیم که به احتمال زیاد بالاست، چون مجموعه داده‌ی Iris نسبتاً ساده و تمیزه.

توضیح مختصر کد

  • بارگیری داده‌ها: ابتدا مجموعه داده‌ی Iris رو از کتابخانه‌ی sklearn بارگیری می‌کنیم و اون رو به یک DataFrame تبدیل می‌کنیم.
  • تقسیم داده‌ها: داده‌ها رو به دو بخش آموزشی (برای آموزش مدل) و آزمایشی (برای ارزیابی مدل) تقسیم می‌کنیم.
  • ساخت و آموزش مدل: یک مدل جنگل تصادفی می‌سازیم و اون رو با استفاده از داده‌های آموزشی آموزش می‌دیم.
  • پیش‌بینی و ارزیابی: پیش‌بینی‌ها رو روی مجموعه‌ی آزمایشی انجام می‌دیم و دقت مدل رو محاسبه می‌کنیم.

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

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

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

در واقع، جامعه در حال حاضر داره تغییر می‌کنه. پشت صحنه، یادگیری ماشین و تحلیل مداوم داده‌ها در حال انجامه، به خصوص در موتورهای جستجو، شبکه‌های اجتماعی و تجارت الکترونیک. یادگیری ماشین حالا کارهایی مثل این‌ها رو راحت‌تر و سریع‌تر انجام می‌ده:

  • آیا در تصویر چهره انسانی وجود داره؟
  • آیا کاربر روی تبلیغ کلیک می‌کنه؟ (آیا تبلیغ شخصی‌سازی شده و برای او جذابه؟)
  • چطور کپشن‌های دقیق‌تری روی ویدیوهای یوتیوب ایجاد کنیم؟ (تشخیص گفتار و تبدیل به متن)
  • آیا موتور یا قطعه‌ای خراب می‌شه؟ (نگهداری پیشگیرانه در تولید)
  • آیا تراکنش جعلیه؟
  • آیا ایمیل اسپم هست یا نه؟

این‌ها به لطف دسترسی به مجموعه داده‌های عظیم و قدرت پردازش بالا ممکن شده. با این حال، تحلیل پیشرفته داده‌ها با استفاده از پایتون (و یادگیری ماشین) جادو نیست. این‌ها راه‌حل همه مشکلات نیستن. چرا که دقت و عملکرد ابزارها و مدل‌های ما به شدت وابسته به یکپارچگی داده‌ها و مهارت و قضاوت خودمونه.

دقت و عملکرد

رایج‌ترین استفاده از تحلیل داده‌ها در پیش‌بینی‌های موفق (پیش‌بینی) و بهینه‌سازیه. آیا تقاضا برای محصول ما در پنج سال آینده افزایش پیدا می‌کنه؟ بهترین مسیرها برای تحویل‌کالا که کمترین هزینه عملیاتی رو دارن چیه؟

به همین دلیله که بهبود دقت حتی به اندازه 1% می‌تونه به میلیون‌ها دلار درآمد اضافی تبدیل بشه. مثلاً، فروشگاه‌های بزرگ می‌تونن برخی محصولات رو از قبل انبار کنن اگه نتایج تحلیل نشون بده تقاضا در حال افزایشه. حمل و نقل و لجستیک هم می‌تونن مسیرها و برنامه‌های بهتری برای استفاده کمتر از سوخت و تحویل‌های سریع‌تر برنامه‌ریزی کنن.

علاوه بر بهبود دقت، اولویت دیگه‌ای هم روی اطمینان از عملکرد قابل اعتماده. تحلیل ما چطور روی مجموعه داده‌های جدید عمل می‌کنه؟ آیا باید عوامل دیگه‌ای رو در تحلیل داده‌ها و انجام پیش‌بینی‌ها در نظر بگیریم؟ کار ما باید همیشه نتایج دقیق و قابل اعتماد تولید کنه. در غیر این صورت، اصلاً علمی نیست چون نتایج قابل بازتولید نیستن.

کشف فرصت‌ها

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

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

تحلیل داده‌ها در مقابل علم داده و یادگیری ماشین

تحلیل داده‌ها و علم داده

تحلیل داده‌ها و علم داده تقریباً مشابه هستن چون هدف هر دو استخراج اطلاعات ارزشمند از داده‌ها و استفاده از اون‌ها برای تصمیم‌گیری بهتره.

  • تحلیل داده‌ها: معمولاً به استفاده از ابزارهایی مثل Microsoft Excel و دیگر نرم‌افزارها برای خلاصه‌سازی داده‌ها و پیدا کردن الگوها مربوط می‌شه.
  • علم داده: معمولاً با استفاده از برنامه‌نویسی برای کار با مجموعه‌های بزرگ داده مرتبطه. علم داده به خاطر تولید گیگابایت‌های داده از منابع آنلاین و فعالیت‌ها (موتورهای جستجو، شبکه‌های اجتماعی) محبوب شده.

تفاوت‌ها

اگرچه عنوان شغلی “دانشمند داده” خیلی جذاب‌تر از “تحلیلگر داده” به نظر میاد، اما وظایف شغلی این دو ممکنه مشابه و هم‌پوشانی داشته باشه. هر دو با کشف الگوها و تولید بینش از داده‌ها سر و کار دارن. همچنین کار اونها، شامل پرسیدن سوالات هوشمندانه درباره ماهیت داده‌ها می‌شه (مثلاً: آیا نقاط داده‌ای به صورت طبیعی به خوشه‌ها تقسیم می‌شن؟ آیا واقعاً بین سن و سرطان ارتباطی وجود داره؟).

یادگیری ماشین چیست؟

یادگیری ماشین اغلب به صورت متناوب با علم داده استفاده می‌شه. این به این دلیله که یادگیری ماشین درباره “یادگیری از داده‌ها” است. وقتی الگوریتم‌های یادگیری ماشین رو اعمال می‌کنیم، کامپیوتر الگوها رو تشخیص می‌ده و از “چیزی که یاد گرفته” روی داده‌های جدید استفاده می‌کنه.

مثال:

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

ممکنه بعداً یه برنامه ساده بسازیم که بلافاصله ارزیابی کنه آیا یه نفر بدهی‌ش رو پرداخت می‌کنه یا نه بر اساس اطلاعاتش (سن، محدوده درآمد، محل سکونت و شغل). این یه مثال از استفاده از داده‌ها برای پیش‌بینی رفتار احتمالی فرد هستش.

امکانات

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

اگرچه الگوریتم‌های علم داده و یادگیری ماشین هنوز کامل نیستن، اما در خیلی از کاربردها مفید هستن مثل تشخیص تصویر، توصیه محصولات، رتبه‌بندی موتورهای جستجو و تشخیص پزشکی. و تا این لحظه، دانشمندان و مهندسین در سراسر جهان به بهبود دقت و عملکرد ابزارها، مدل‌ها و تحلیل‌هاشون ادامه می‌دن.