ডিসিশন ট্রি: টস জিতে ব্যাটিং না বোলিং?

ম্যাচের আগে টস। অধিনায়ক কয়েন জিতলেন। ক্যামেরা তার মুখে। তার মাথায় তখন দ্রুত কয়েকটা প্রশ্ন ঘুরছে: রাতে শিশির পড়বে? পিচ কি শুকনো, পরে স্পিন ধরবে? এই মাঠে আগে ব্যাট করা দল কতবার জিতেছে?
এই প্রশ্ন-উত্তরের ধারাটাই ডিসিশন ট্রি (decision tree)।

ডিসিশন ট্রি কীভাবে কাজ করে
একটা গাছের মতো: গোড়ায় একটা প্রশ্ন, উত্তর অনুযায়ী ডালে ভাগ হয়, তারপর আরেকটা প্রশ্ন, শেষে পাতায় গিয়ে সিদ্ধান্ত।
মেশিন লার্নিংয়ে আমরা প্রশ্নগুলো নিজে বানাই না। অনেক পুরনো ম্যাচের ডেটা দিলে অ্যালগরিদম নিজেই খুঁজে বের করে কোন প্রশ্নটা প্রথমে করলে ডেটাকে সবচেয়ে ভালোভাবে ভাগ করা যায়। যেমন, যদি দেখা যায় শিশিরের সম্ভাবনাই ফলাফলের সাথে সবচেয়ে বেশি জড়িত, তাহলে সেটাই প্রথম প্রশ্ন হবে।
পাইথনে একটা ছোট গাছ
from sklearn.tree import DecisionTreeClassifier, export_text
# [শিশির (0/1), পিচ শুকনো (0/1), মাঠে আগে ব্যাট করে জয়ের হার]
X = [[1, 0, 0.40], [1, 1, 0.45], [0, 1, 0.62], [0, 0, 0.50],
[1, 0, 0.38], [0, 1, 0.66], [0, 0, 0.48], [1, 1, 0.42]]
y = ["bowl", "bowl", "bat", "bowl", "bowl", "bat", "bat", "bowl"]
tree = DecisionTreeClassifier(max_depth=3, random_state=0).fit(X, y)
print(export_text(tree, feature_names=["dew", "dry_pitch", "bat_first_win_rate"]))
আউটপুটে আপনি পুরো গাছটা লেখা আকারে দেখতে পাবেন: কোন প্রশ্ন, কোন সীমা, কোন সিদ্ধান্ত।
কেন ডিসিশন ট্রি এত জনপ্রিয়
বোঝা যায়। অনেক মডেল "ব্ল্যাক বক্স", ভেতরে কী হচ্ছে বোঝা কঠিন। ডিসিশন ট্রি পুরোটা খুলে দেখানো যায়। ম্যানেজার বা কোচকে ব্যাখ্যা করা সহজ।
কোন বিষয় গুরুত্বপূর্ণ, দেখা যায়।

ডেটা প্রস্তুত করা সহজ। সংখ্যাগুলো একই স্কেলে আনার ঝামেলা কম।
দুর্বলতা
- সহজেই ওভারফিট করে। গাছকে সীমাহীন গভীর হতে দিলে সে প্রতিটা ম্যাচ আলাদাভাবে মুখস্থ করে ফেলে। তাই
max_depthসীমিত রাখুন। - অস্থির। ডেটা একটু বদলালেই পুরো গাছের আকৃতি বদলে যেতে পারে।
সমাধান: গাছের বন
একটা গাছের বদলে শত শত গাছ বানিয়ে সবার ভোট নিলে ফল অনেক স্থির আর নির্ভুল হয়। এর নাম র্যান্ডম ফরেস্ট। আরও উন্নত পদ্ধতি গ্রেডিয়েন্ট বুস্টিং (যেমন XGBoost, LightGBM), যেখানে প্রতিটা নতুন গাছ আগের গাছগুলোর ভুল শুধরাতে শেখে। টেবিল আকারের ডেটায় (এক্সেল শিটের মতো ডেটা) এগুলো এখনো অনেক ক্ষেত্রে সেরা পদ্ধতিগুলোর মধ্যে।
শেষ কথা
ক্রিকেটে অধিনায়কের অভিজ্ঞতা, কোচের বিশ্লেষণ আর ডেটা, সব মিলিয়েই সিদ্ধান্ত হয়। ডিসিশন ট্রি সেই চিন্তার ধরনকে গণিতের ভাষায় লেখে। আর মডেল যাই বলুক, শেষ পর্যন্ত মাঠে নামতে হয় খেলোয়াড়দেরই। ডেটা টস জেতাতে পারে না, কিন্তু টস জেতার পর সঠিক সিদ্ধান্ত নিতে সাহায্য করতে পারে।