این پروژه به عنوان پروژهی اول بوتکمپ تحلیل داده کوئرا (بهار ۱۴۰۵) طراحی و پیادهسازی شده است. هدف اصلی، شبیهسازی یک چرخهی کامل دادهکاوی از دریافت داده از وب تا ذخیرهسازی در پایگاه داده و در نهایت تحلیل آماری و آزمون فرضیه میباشد.
محوریت این پروژه، وبسایت معتبر Basketball-Reference.com و دادههای لیگ حرفهای بسکتبال NBA است. با اجرای این پروژه، شما قادر خواهید بود تا به سوالات چالشبرانگیز مدیریتی و مربیگری در حوزه ورزش، با استفاده از استدلال آماری پاسخ دهید.
در این فاز، با استفاده از کتابخانههای Requests و BeautifulSoup در پایتون، اقدام به استخراج دادههای ساختاریافته از صفحات مختلف وبسایت بسکتبال رفرنس نمودهایم. دادههای استخراجشده شامل موارد زیر است:
- اطلاعات بازیکنان: نام کامل، تاریخ تولد، سن، قد، وزن، ملیت، پوزیشن، باشگاه فعلی و آمار کلیدی (امتیاز، ریباند، پاس منجر به گل).
- اطلاعات باشگاهها: نام باشگاه، تاریخ تاسیس، نام لیگ، مربی، ترکیب بازیکنان، میانگین سنی، ارزش تقریبی باشگاه و نام استادیوم.
- آمار فصلی: دادههای مربوط به برندگان جوایز (MVP، بهترین تازهکار)، رهبران آمار (امتیاز، ریباند، پاس گل، Wins Share) و اطلاعات تیمهای قهرمان از فصل ۲۰۱۷-۲۰۱۸ تا ۲۰۲۵-۲۰۲۶.
پس از استخراج دادهها، یک پایگاه دادهی رابطهای (Relational Database) با استفاده از SQLite (قابل ارتقا به MySQL یا PostgreSQL) طراحی شده است.
- مدلسازی (ERD): موجودیتهای اصلی شامل
Players،Teams،Seasons،AwardsوStatisticsبا روابط کلید خارجی تعریف شدهاند. - نرمالسازی: دادهها تا سطح 3NF (Third Normal Form) نرمالسازی شدهاند تا از افزونگی (Redundancy) جلوگیری شده و یکپارچگی دادهها حفظ گردد.
- ذخیرهسازی: کلیه دادههای استخراجشده، پس از پردازش اولیه، در جداول مربوطه درج (Insert) شدهاند.
قلب تخصصی این پروژه، بخش تحلیل آماری است. با بهرهگیری از کتابخانههای Pandas، NumPy، SciPy و Matplotlib/Seaborn، به سوالات زیر پاسخ داده شده است:
- تحلیل توزیع قد: بررسی توزیع قد بازیکنانی که در لیست (Michael Jordan Trophy) یا ۵۰ بازیکن برتر فصل حضور داشتهاند (بازه زمانی ۲۰۱۹ تا ۲۰۲۴).
- مقایسه تیم قهرمان و بازیکنان برتر: مقایسه توزیع میزان تجربه و قد در تیم قهرمان دو فصل اخیر در برابر ۱۵ بازیکن برتر آن فصل.
- سیستم توصیهگر بازیکن (Point Guard): بر اساس معیار حضور در لیست بهترینهای فصل (Jordan Trophy) و آمار جامع، لیستی از ۳ گارد رأس (Point Guard) برتر برای سرمایهگذاری یک تیم جدید پیشنهاد شده است.
- فرضیه اول (چابکی): آزمون این ادعا که "میانگین چابکی (نسبت قد به وزن) افراد حاضر در ۲۰ نفر برتر هر فصل، در دورهی ۲۰۲۲ تا ۲۰۲۴ نسبت به دورهی ۲۰۲۰ تا ۲۰۲۲ افزایش یافته است." (با استفاده از Two-Sample t-test).
- فرضیه دوم (توانایی ذاتی): آزمون این ادعا که "نرخ توانایی ذاتی (نسبت تجربه به سن) بازیکنان تیم قهرمان در دو فصل اخیر، به طور معناداری بیشتر از دو فصل قبل از آن بوده است."
این پروژه با استفاده از پشتهی کامل Python Data Ecosystem توسعه یافته است:
Requests: ارسال درخواستهای HTTP به سرورBeautifulSoup4: تجزیه و استخراج داده از ساختار HTMLSelenium: شبیهسازی مرورگر برای محتوای داینامیک (جاوااسکریپتی)Time/Random: مدیریت تأخیر و جلوگیری از مسدودسازی IP
Python 3.9+: زبان اصلی برنامهنویسیSQLAlchemy (ORM): لایهٔ انتزاع پایگاه داده و مدیریت مدلهاPandas: پردازش، پاکسازی و تبدیل دیتافریمهاPyMySQL: درایور اتصال به MySQLpython-dotenv: مدیریت متغیرهای محیطی (اطلاعات ورود به دیتابیس)
NumPy: محاسبات عددی برداریScikit-learn: پیشپردازش، خوشهبندی و مدلسازی (در صورت نیاز)SciPy: انجام آزمونهای آماری پیشرفته
Matplotlib/Seaborn: رسم نمودارهای ایستا و حرفهایPlotly: نمودارهای تعاملی و پویاStreamlit: ساخت سریع اپلیکیشنهای وب دادهمحور
Git: کنترل نسخهGitHub: میزبانی کد و همکاری تیمی
در این پروژه، یک داشبورد تحلیلی کامل با استفاده از HTML، CSS و JavaScript طراحی شده است که تمام آزمونهای آماری، نمودارهای توزیع، ماتریس همبستگی و اندازه اثر را به صورت تعاملی نمایش میدهد.
💡 برای مشاهده و اجرای داشبورد، فایل
index.htmlرا در مرورگر باز کنید.
برای اجرای این پروژه بر روی سیستم خود، مراحل زیر را به ترتیب دنبال کنید:
-
کلون کردن مخزن:
git clone https://github.com/your-username/basketball-data-bootcamp.git cd basketball-data-bootcamp -
ایجاد محیط مجاز (Virtual Environment) (اختیاری اما پیشنهادی):
python -m venv venv source venv/bin/activate # mac/linux venv\Scripts\activate # windows
-
نصب کتابخانههای مورد نیاز:
pip install -r requirements.txt
- آرمان اقایی - منتور
- اسماعیل تقی زاده - توسعهدهنده بکاند و تنظیم کننده
- پارسا ناصر ترابی و امیرحسین قنبریه و مهدی نصرتی - تحلیلگر داده
- پارسا ایمان آذری - متخصص پایگاه داده و تست

