আমি যতদূর জানি, মডেলগুলি র্যাঙ্কে শেখার প্রশিক্ষণ নিতে আপনার ডেটাসেটে তিনটি জিনিস থাকা দরকার:
- লেবেল বা প্রাসঙ্গিকতা
- গোষ্ঠী বা কোয়েরি আইডি
- বৈশিষ্ট্য ভেক্টর
উদাহরণস্বরূপ, মাইক্রোসফ্ট লার্নিং টু র্যাঙ্ক ডেটাसेट এই ফর্ম্যাটটি ব্যবহার করে (লেবেল, গ্রুপ আইডি এবং বৈশিষ্ট্য))
1 qid:10 1:0.031310 2:0.666667 ...
0 qid:10 1:0.078682 2:0.166667 ...
আমি এক্সজিস্টেস্ট চেষ্টা করছি যা জিবিএমগুলি জোড়ায় র্যাঙ্কিং করতে ব্যবহার করে। উপরের মতো মাইক্রোসফ্ট ডেটাসেটে শিখতে সি ++ প্রোগ্রাম ব্যবহার করে এমন একটি র্যাঙ্কিং কাজের জন্য তাদের উদাহরণ রয়েছে ।
তবে আমি তাদের পাইথন র্যাপারটি ব্যবহার করছি এবং আমি গ্রুপ আইডি ( qid
উপরে) কোথায় ইনপুট করতে পারি তা খুঁজে পাচ্ছি না । আমি কেবল বৈশিষ্ট্য এবং প্রাসঙ্গিকতার স্কোরগুলি ব্যবহার করে মডেলটিকে প্রশিক্ষণ দিতে পারি তবে আমার মনে হচ্ছে আমি কিছু অনুপস্থিত।
এখানে একটি নমুনা স্ক্রিপ্ট।
gbm = XGBRegressor(objective="rank:pairwise")
X = np.random.normal(0, 1, 1000).reshape(100, 10)
y = np.random.randint(0, 5, 100)
gbm.fit(X, y) ### --- no group id needed???
print gbm.predict(X)
# should be in reverse order of relevance score
print y[gbm.predict_proba(X)[:, 1].argsort()][::-1]