Comments (7)
Hi, you can specify the list of items to rank in the Recommender.rank()
function.
from cornac.
When I run,
r = model.rank(user_idx=1,item_indices=[0,12,23,79])
it results in
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-247-37619b116839> in <module>
----> 1 r = model.rank(user_idx=1,item_indices=[0,12,23,79])
~/.local/lib/python3.6/site-packages/cornac/models/recommender.py in rank(self, user_idx, item_indices)
280 item_scores = all_item_scores[: len(item_indices)]
281 item_rank = item_scores.argsort()[::-1]
--> 282 item_scores = item_scores[item_indices]
283
284 return item_rank, item_scores
IndexError: index 12 is out of bounds for axis 0 with size 4
.
Am I missing something?
from cornac.
Thanks for raising this issue. The current assumption with '''item_indices''' is that the list of item indices are continuous (no missing indices) from 0 to len(item_indices). This assumption is restrictive and it would not allow you to solve your problem. We are working on improving it.
In the mean time you can rank all items and post-process the ranked list to keep only the items of interest.
Btw Cornac uses its own indices, please take a look at the Datasets documentation if you want to map back to original ids or vice versa
from cornac.
When I run,
r = model.rank(user_idx=1,item_indices=[0,12,23,79])
it results in
--------------------------------------------------------------------------- IndexError Traceback (most recent call last) <ipython-input-247-37619b116839> in <module> ----> 1 r = model.rank(user_idx=1,item_indices=[0,12,23,79]) ~/.local/lib/python3.6/site-packages/cornac/models/recommender.py in rank(self, user_idx, item_indices) 280 item_scores = all_item_scores[: len(item_indices)] 281 item_rank = item_scores.argsort()[::-1] --> 282 item_scores = item_scores[item_indices] 283 284 return item_rank, item_scores IndexError: index 12 is out of bounds for axis 0 with size 4
.
Am I missing something?
@wahyudierwin it seems that your training data only has 4 items. Could you share your code?
from cornac.
Sorry for the late reply.
In the mean time you can rank all items and preprocess the ranked list to keep only the items of interest.
@saghiles thanks for your suggestion, probably I will do as you suggest.
@tqtg I'm sure that the training data has more than 4 items. This is the code, and I'm afraid I cannot share the data because of confidentiality.
train_set = cornac.data.Dataset.from_uir(data.itertuples(index=False), seed=42)
model = cornac.models.BPR(k=32,
max_iter=100,
learning_rate=0.01,
lambda_reg=0.001,
verbose=True,
seed=42)
model.fit(train_set)
r = model.rank(user_idx=1,item_indices=[0,12,23,79])
from cornac.
@wahyudierwin thank you for providing the details. We have now fixed the rank()
function to work with an arbitrary list of item_indices
, in the latest release version 1.8.0
. You can give it a try and see if it solves your problem. Thanks!
from cornac.
@tqtg very glad to hear that! I will give it a try as soon as possible. Thank you very much!
from cornac.
Related Issues (20)
- [FEATURE] There is no model type in table models HOT 2
- [FEATURE] Support for multiple generic FeatureModalities for items HOT 1
- LightGCN/NGCF with cornac.hyperopt HOT 1
- [ASK] Are there any benchmarks considering all models included in cornac? HOT 3
- [ASK] HOT 3
- [FEATURE] Support chronological split for next-basket recommendation HOT 4
- [ASK] Is there a way to find all GPU supported models? HOT 1
- Unable to Install Cornac on Mac HOT 15
- [FEATURE] Allow running evaluation on validation set during training or right after training is done HOT 4
- [BUG] Trirank documentation X&Y HOT 2
- [BUG] Add amazon_digital_music to datasets init HOT 1
- [BUG] Having a failed unit test for SPop
- [BUG] Crash when using cornac with Numpy 2.0 HOT 3
- [BUG] Attribute Error with csr_matrix using Recommender based models HOT 2
- [ASK] Installing Cornac on Mac after Forking the repo lead to ModuleNotFoundError HOT 3
- [ASK] adding user demographics as feature for training HOT 5
- [FEATURE] Categorizing models by supported modalities HOT 2
- [ASK]ModuleNotFoundError: No module named 'cornac.utils.fast_sparse_funcs' HOT 2
- [BUG] BiVAECF - AttributeError: 'csc_matrix' object has no attribute 'A'
- [BUG] Hyperparameter tuning for next item recommenders HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cornac.