این پروژه به عنوان پروژهی اول بوتکمپ تحلیل داده کوئرا (بهار ۱۴۰۵) طراحی و پیادهسازی شده است. هدف اصلی، شبیهسازی یک چرخهی کامل دادهکاوی از دریافت داده از وب تا ذخیرهسازی در پایگاه داده و در نهایت تحلیل آماری و آزمون فرضیه میباشد.
محوریت این پروژه، وبسایت معتبر 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 3.9+
- وب اسکرپینگ:
Requests,selenium,BeautifulSoup4 - مدیریت کد و همکاری:
Git/GitHub
برای اجرای این پروژه بر روی سیستم خود، مراحل زیر را به ترتیب دنبال کنید:
-
کلون کردن مخزن:
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
اجرای اسکریپت استخراج داده و ساخت دیتابیس:
اجرای نوتبوک تحلیل آماری:
- آرمان اقایی - منتور
- اسماعیل تقی زاده - توسعهدهنده بکاند و تنظیم کننده
- پارسا ناصر ترابی و امیرحسین قنبریه و مهدی نصرتی - تحلیلگر داده
- پارسا ایمان آذری - متخصص پایگاه داده و تست