ক্রিকেটের পরিসংখ্যান দিয়ে ডেটা সায়েন্স শেখা

· 2 min read · Syed Omar Faruk Towaha
ক্রিকেটের পরিসংখ্যান দিয়ে ডেটা সায়েন্স শেখা

বাংলাদেশে ক্রিকেট শুধু খেলা না, আবেগ। আর মজার ব্যাপার হলো, ক্রিকেট পৃথিবীর সবচেয়ে বেশি পরিসংখ্যাননির্ভর খেলাগুলোর একটা। প্রতিটা বল, প্রতিটা রান, প্রতিটা উইকেটের হিসাব আছে। ডেটা সায়েন্স শেখার জন্য এর চেয়ে মজার ডেটা খুব কম আছে, কারণ আপনি আগে থেকেই খেলাটা বোঝেন।

ব্যাটিং গড়ের ফাঁদ

ব্যাটিং গড় = মোট রান ÷ যতবার আউট হয়েছেন। নটআউট থাকলে আউটের সংখ্যায় যোগ হয় না।

Not-out effect
একই রান, কিন্তু নটআউটের কারণে গড় দ্বিগুণ।

যে ব্যাটসম্যান সাত-আট নম্বরে নামেন, প্রায়ই অল্প বল খেলে নটআউট থাকেন, তার গড় কৃত্রিমভাবে বেশি দেখাতে পারে। আবার ওপেনার, যিনি নতুন বলে ঝুঁকি নিয়ে খেলেন, তার গড় কম দেখাতে পারে। তাই গড়ের সাথে সবসময় দেখুন কতগুলো ইনিংস, কতবার নটআউট।

গড় আর স্ট্রাইক রেট একসাথে

টি-টোয়েন্টিতে ৪০ গড়ে ১০০ স্ট্রাইক রেট, আর ২৫ গড়ে ১৬০ স্ট্রাইক রেট, কোনটা দলের জন্য বেশি কাজের? উত্তর নির্ভর করে পরিস্থিতির ওপর।

Average vs strike rate
ওপেনার আর মিডল অর্ডারের ভূমিকা আলাদা, তাই সংখ্যাও আলাদা (কাল্পনিক ডেটা)।

একটা সংখ্যা দিয়ে খেলোয়াড় বিচার করা যায় না। এটাই ডেটা সায়েন্সের প্রথম শিক্ষা: একটা মেট্রিক সবসময় পুরো গল্প বলে না।

pandas দিয়ে বিশ্লেষণ

import pandas as pd

df = pd.read_csv("innings.csv")   # player, runs, balls, out (1/0), format

summary = (df.groupby("player")
             .agg(innings=("runs", "size"), runs=("runs", "sum"),
                  balls=("balls", "sum"), outs=("out", "sum")))
summary["average"] = (summary["runs"] / summary["outs"].clip(lower=1)).round(1)
summary["strike_rate"] = (100 * summary["runs"] / summary["balls"]).round(1)

# কমপক্ষে ২০ ইনিংস খেলেছেন এমন খেলোয়াড়
print(summary.query("innings >= 20").sort_values("strike_rate", ascending=False).head(10))

innings >= 20 শর্তটা গুরুত্বপূর্ণ। দুই ইনিংসে ১৫০ রান করা কাউকে সেরা বলা মানে ছোট নমুনার ভুল।

আরও মজার প্রশ্ন

ডেটা কোথায় পাবেন

বিভিন্ন ক্রিকেট পরিসংখ্যান ওয়েবসাইট আর ওপেন ডেটা প্রকল্পে বল-বাই-বল ডেটা পাওয়া যায়। ব্যবহারের আগে সাইটের শর্তাবলি দেখে নিন।

কেন এটা শেখার সেরা উপায়

যখন বিশ্লেষণ বলে কোনো প্রিয় খেলোয়াড়ের পারফরম্যান্স আসলে আপনার ধারণার চেয়ে খারাপ, তখন আপনি শেখেন ডেটার সামনে আবেগ সামলাতে। যখন একটা সংখ্যা অদ্ভুত দেখায়, আপনি খেলাটা জানেন বলে বুঝতে পারেন কোথাও ডেটায় ভুল আছে। এই দুটো দক্ষতাই একজন ভালো ডেটা সায়েন্টিস্টের সবচেয়ে বড় সম্পদ।

তাই পরের বার বন্ধুদের সাথে "কে সেরা ব্যাটসম্যান" নিয়ে তর্ক হলে, শুধু গলার জোরে না, ডেটা দিয়ে জিতুন। যদিও সত্যি বলতে, ক্রিকেট নিয়ে তর্কে ডেটা খুব কম মানুষকেই রাজি করাতে পারে।

// related

// prefer the terminal?

Open the terminal blog and type read cricket-er-porishongkhyan-diye-data-science.