sisinflab / elliot Goto Github PK
View Code? Open in Web Editor NEWComprehensive and Rigorous Framework for Reproducible Recommender Systems Evaluation
License: Apache License 2.0
Comprehensive and Rigorous Framework for Reproducible Recommender Systems Evaluation
License: Apache License 2.0
I am using this framework in my research, specifically to compare with other frameworks. It's unclear to me whether LightGCN and NGCF can be used to do explicit rating prediction, or only implicit. When I use a dataset with explicit ratings, there is a predicted score in the resulting recommendations, but it looks numerically meaningless.
Hi,
Before going more in detail into the implementation of Elliot, I would like to know whether Elliot will be the right package for my experiments.
Basically, I am interested in context-aware recommender system (CARS) algorithms i.e., FM, FFM.
When looking here I found some CARS algorithms but I don't see in the parameter how to add the side information (either user auxilliary information or item auxilliary information). (1) Would that mean that I only need to mention the extra side information in the YAML file only? Or does it mean that there are only specific algorithms implemented in Elliot that do take into account side information? If so could you list them please?
(2) Do you have somewhere an example of code running CARS algorithm and is it possible to reproduce your results?
Thank you in advance.
Looking forward to hearing back from you.
Best,
-- Manel.
Not seeing an option for early stopping based on validation metric performance. Running neural models with fixed numbers of epochs is either time-consuming (treating epoch number as a hyperparameter) or risks under/overfitting (fixing the epochs).
Running command python setup.py egg_info
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/home/deklan/code/forks/elliot/setup.py", line 30, in <module>
install_reqs = parse_requirements('requirements.txt')
TypeError: parse_requirements() missing 1 required positional argument: 'session'
Pip version
pip 21.0.1
Hi there,
These days, I use your comprehensive and rigorous recommendation framework. It is awesome and useful! Thanks for your excellent open-source work!
Elliot is a comprehensive recommendation framework that analyzes the recommendation problem from the researcher's perspective. And I sincerely want to share my own advice to improve it better.
PyTorch is more friendly for academic research. If Elliot can be based on PyTorch, it will be cooler.
Adding more Artificial Neural Network-based methods, e.g. GRU4Rec, SASRec, Caser, BERT4Rec, it will facilitate us to compare these baselines to propose new models.
Best regards,
John
What's the difference between "sir_elliot" and the master branch? Is sir_elliott the updated branch?
Hello,
Following the instructions provided in the documentation, I have succesfully installed the Elliot library using Conda v.4.8.2. and Python 3.7.10 on a Windows 10 system.
However, I have found some problems at the moment of executing some experiments on the framework. The library seems to work finely when I use an algorithm without hyperparameters (as it happens, for instance, with the MostPop algorithm). However, due to how the weight files are named, it does not allow me to execute algorithms with hyperparameters, such as UserKNN or ItemKNN.
At the moment, the project tries to create a directory or a file (I think is the first one), named algorithm_hyper1:val1_hyper2:val2_..._hyperN:valN
where hyperX is the name of the X-th hyperparameter, valX is the value of such hyperparameter and N is the final number of hyperparameters.
However, Windows does not allow colons in the names of files/folders, so it stops, and returns an OSError as the one I show below:
Can anything be done to solve this?
To reproduce
I share the configuration file that I used:
Thanks in advance.
Describe the bug
Simple metrics ItemCoverage, UserCoverage, NumRetrieved are producing different values for the same recs/ folder between the procedure of calculating the model and evaluating it and the procedure of loading the model and evaluating it.
To Reproduce
Steps to reproduce the behavior:
In both cases, the input dataset has a strategy: fixed. The train.tsv and test.tsv files have previously been produced from a random 0.2 splitting procedure and used as they are for both cases.
System details (please complete the following information):
Describe the bug
According to the algorithm, as it is designed in Elliot, Gini Index can take values > 1, however, according to the bibliography, this is not possible. Could you explain further how is that possible in your algorithm?
Version Number: 0.3.1
2022-10-14 15:42:23.398801: I Start experiment
Traceback (most recent call last):
2022-10-14 15:42:23.415288: I There will be the splitting
File ".\start_experiments.py", line 8, in
run_experiment(f"config_files/{args.config}.yml")
File "D:\develop\elliot\elliot\run.py", line 60, in run_experiment
dataloader = dataloader_class(config=base.base_namespace)
File "D:\develop\elliot\elliot\dataset\dataset.py", line 95, in init
self.dataframe = pd.read_csv(path_dataset, sep="\t", header=None, names=self.column_names)
File "D:\Users\Anaconda3\envs\elliot_env\lib\site-packages\pandas\io\parsers.py", line 688, in read_csv
return _read(filepath_or_buffer, kwds)
File "D:\Users\Anaconda3\envs\elliot_env\lib\site-packages\pandas\io\parsers.py", line 454, in _read
parser = TextFileReader(fp_or_buf, **kwds)
File "D:\Users\Anaconda3\envs\elliot_env\lib\site-packages\pandas\io\parsers.py", line 948, in init
self._make_engine(self.engine)
File "D:\Users\Anaconda3\envs\elliot_env\lib\site-packages\pandas\io\parsers.py", line 1180, in _make_engine
self._engine = CParserWrapper(self.f, **self.options)
File "D:\Users\Anaconda3\envs\elliot_env\lib\site-packages\pandas\io\parsers.py", line 2010, in init
self._reader = parsers.TextReader(src, **kwds)
File "pandas_libs\parsers.pyx", line 382, in pandas._libs.parsers.TextReader.cinit
File "pandas_libs\parsers.pyx", line 674, in pandas._libs.parsers.TextReader._setup_parser_source
FileNotFoundError: [Errno 2] No such file or directory: 'D:\develop\elliot\data\movielens_1m\dataset.tsv'
Hi! I just discovered this project from links in a discussion area from another project. Having a look through here, I appreciate your features in the area of splitting, unique metrics, and stats tests!
I learned the other day that the SIGIR 2021 Conference has an e-commerce workshop data challenge, called In-session prediction for purchase intent and recommendations. They just opened it up for participation.
https://sigir-ecom.github.io/data-task.html
After looking at elliot's input structure, it seems like it wouldn't be too far off to connect elliot to the data challenge to get some elliot benchmarks out. Though, I didn't dig into the available models enough to know how they map to in-session datasets.
Unfortunately I am unable to give it a go due to other professional commitments. But I figured I'd share it here as well as an opportunity to grow awareness around elliot, in the event others are interested.
Describe the bug
I have been using datasets to make experiments with elliot where userId and itemId are strings. In these cases I have noticed speed improvement if I use dict comprehension instead of loops for the preparation of the dataset.
To Reproduce
Link for the commit on local branch. I could create a pull request if you think that it would be an improvement on your side as well.
import pandas as pd
import time
data = pd.read_csv('data/cat_dbpedia_movielens_1m/dataset.tsv',sep='\t',header=None)
data.columns = ['userId','itemId','rating','timestamp']
#change type of column
data.userId = data.userId.astype(str)
##Loop 1 vs dict comprehension
t0 = time.time()
users = list(data['userId'].unique())
ratings = {}
for u in users:
sel_ = data[data['userId'] == u]
ratings[u] = dict(zip(sel_['itemId'], sel_['rating']))
t1 = time.time()
print(t1-t0) #356.07s
t0 = time.time()
ratings = {k: f.groupby('itemId')['rating'].apply(float).to_dict() for k, f in data.groupby('userId')}
t1 = time.time()
print(t1-t0) #29.83
##Loop 2 vs dict comprehension
dataframe = data
#users are not included in the time loop since they are provided as parameter in the method
users = list(data['userId'].unique())
t0 = time.time()
ratings = {}
for u in users:
sel_ = dataframe[dataframe['userId'] == u]
ratings[u] = dict(zip(sel_['itemId'], sel_['rating']))
t1 = time.time()
print(t1-t0) #371.22
t0 = time.time()
ratings = {k: f.groupby('itemId')['rating'].apply(float).to_dict() for k, f in dataframe.groupby('userId') if k in users}
t1 = time.time()
print(t1-t0) #32.44s
Expected behavior
I would expect the time required for data preparation to be on the same level regardless of the type of userId/itemId.
Screenshots
System details (please complete the following information):
Additional context
I've tried installing the sir_elliot branch as well as the master branch of elliot but none of the existing sample scripts seem to work. I mostly got errors claiming there are no files or directories found. Please advise on how I should proceed or whether there are any alternative frameworks I should use as I need this for a project I'm working on.
Please let me know if this has been already discussed before - I've tried finding any information and failed.
I have attempted to install Elliot according to the instructions in the docs:
git clone https://github.com//sisinflab/elliot.git && cd elliot
virtualenv -p /usr/bin/pyhton3.6 venv # your python location and version
source venv/bin/activate
pip install --upgrade pip
pip install -e . --verbose
I am using a MacBook Pro with M1 Pro chip, 12.0.1 Monterey OS, Python version 3.9 installed with Homebrew.
It looks like there is some issue with Cython and some installation quirk, but I really don't know how to approach solving this. Please let me know if anyone else had such an issue previously.
When I run the last pip install command I get the following terminal output:
Using pip 22.0.4 from /Users/anastasiia/Desktop/elliot/venv/lib/python3.9/site-packages/pip (python 3.9)
Looking in indexes: https://pypi.org/simple, https://anastasiia.klimashevskaia%40tv2.no:****@tv2norge.jfrog.io/tv2norge/api/pypi/ai-python-local/simple
Obtaining file:///Users/anastasiia/Desktop/elliot
Running command python setup.py egg_info
running egg_info
creating /private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-pip-egg-info-su39l3jq/elliot.egg-info
writing /private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-pip-egg-info-su39l3jq/elliot.egg-info/PKG-INFO
writing dependency_links to /private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-pip-egg-info-su39l3jq/elliot.egg-info/dependency_links.txt
writing requirements to /private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-pip-egg-info-su39l3jq/elliot.egg-info/requires.txt
writing top-level names to /private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-pip-egg-info-su39l3jq/elliot.egg-info/top_level.txt
writing manifest file '/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-pip-egg-info-su39l3jq/elliot.egg-info/SOURCES.txt'
reading manifest file '/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-pip-egg-info-su39l3jq/elliot.egg-info/SOURCES.txt'
adding license file 'LICENSE'
writing manifest file '/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-pip-egg-info-su39l3jq/elliot.egg-info/SOURCES.txt'
Preparing metadata (setup.py) ... done
Collecting hyperopt==0.2.5
Using cached hyperopt-0.2.5-py2.py3-none-any.whl (965 kB)
Collecting numpy==1.18.0
Using cached numpy-1.18.0.zip (5.4 MB)
Running command pip subprocess to install build dependencies
Looking in indexes: https://pypi.org/simple, https://anastasiia.klimashevskaia%40tv2.no:****@tv2norge.jfrog.io/tv2norge/api/pypi/ai-python-local/simple, https://anastasiia.klimashevskaia%40tv2.no:****@tv2norge.jfrog.io/tv2norge/api/pypi/ai-python-local/simple
Collecting setuptools
Using cached setuptools-62.1.0-py3-none-any.whl (1.1 MB)
Collecting wheel
Using cached wheel-0.37.1-py2.py3-none-any.whl (35 kB)
Collecting Cython>=0.29.13
Using cached Cython-0.29.28-py2.py3-none-any.whl (983 kB)
Installing collected packages: wheel, setuptools, Cython
Successfully installed Cython-0.29.28 setuptools-62.1.0 wheel-0.37.1
Installing build dependencies ... done
Running command Getting requirements to build wheel
Running from numpy source directory.
running egg_info
creating numpy.egg-info
writing numpy.egg-info/PKG-INFO
writing dependency_links to numpy.egg-info/dependency_links.txt
writing entry points to numpy.egg-info/entry_points.txt
writing top-level names to numpy.egg-info/top_level.txt
writing manifest file 'numpy.egg-info/SOURCES.txt'
package init file 'numpy/distutils/mingw/__init__.py' not found (or not a regular file)
package init file 'numpy/core/include/__init__.py' not found (or not a regular file)
package init file 'numpy/core/src/__init__.py' not found (or not a regular file)
package init file 'numpy/core/include/numpy/__init__.py' not found (or not a regular file)
package init file 'numpy/core/include/numpy/random/__init__.py' not found (or not a regular file)
package init file 'numpy/core/tests/data/__init__.py' not found (or not a regular file)
package init file 'numpy/core/src/npysort/__init__.py' not found (or not a regular file)
package init file 'numpy/core/src/multiarray/__init__.py' not found (or not a regular file)
package init file 'numpy/core/src/npymath/__init__.py' not found (or not a regular file)
package init file 'numpy/core/src/common/__init__.py' not found (or not a regular file)
package init file 'numpy/core/src/umath/__init__.py' not found (or not a regular file)
package init file 'numpy/linalg/lapack_lite/__init__.py' not found (or not a regular file)
package init file 'numpy/f2py/src/__init__.py' not found (or not a regular file)
package init file 'numpy/f2py/tests/src/__init__.py' not found (or not a regular file)
package init file 'numpy/f2py/tests/src/mixed/__init__.py' not found (or not a regular file)
package init file 'numpy/f2py/tests/src/array_from_pyobj/__init__.py' not found (or not a regular file)
package init file 'numpy/f2py/tests/src/kind/__init__.py' not found (or not a regular file)
package init file 'numpy/f2py/tests/src/common/__init__.py' not found (or not a regular file)
package init file 'numpy/f2py/tests/src/assumed_shape/__init__.py' not found (or not a regular file)
package init file 'numpy/f2py/tests/src/parameter/__init__.py' not found (or not a regular file)
package init file 'numpy/f2py/tests/src/string/__init__.py' not found (or not a regular file)
package init file 'numpy/f2py/tests/src/size/__init__.py' not found (or not a regular file)
package init file 'numpy/f2py/tests/src/regression/__init__.py' not found (or not a regular file)
package init file 'numpy/f2py/src/test/__init__.py' not found (or not a regular file)
package init file 'numpy/lib/tests/data/__init__.py' not found (or not a regular file)
package init file 'numpy/random/include/__init__.py' not found (or not a regular file)
package init file 'numpy/random/_examples/__init__.py' not found (or not a regular file)
package init file 'numpy/random/src/__init__.py' not found (or not a regular file)
package init file 'numpy/random/_examples/cffi/__init__.py' not found (or not a regular file)
package init file 'numpy/random/_examples/cython/__init__.py' not found (or not a regular file)
package init file 'numpy/random/_examples/numba/__init__.py' not found (or not a regular file)
package init file 'numpy/random/src/mt19937/__init__.py' not found (or not a regular file)
package init file 'numpy/random/src/sfc64/__init__.py' not found (or not a regular file)
package init file 'numpy/random/src/pcg64/__init__.py' not found (or not a regular file)
package init file 'numpy/random/src/legacy/__init__.py' not found (or not a regular file)
package init file 'numpy/random/src/philox/__init__.py' not found (or not a regular file)
package init file 'numpy/random/src/splitmix64/__init__.py' not found (or not a regular file)
package init file 'numpy/random/src/distributions/__init__.py' not found (or not a regular file)
package init file 'numpy/_build_utils/src/__init__.py' not found (or not a regular file)
reading manifest file 'numpy.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
no previously-included directories found matching 'doc/build'
no previously-included directories found matching 'doc/source/generated'
no previously-included directories found matching 'benchmarks/env'
no previously-included directories found matching 'benchmarks/results'
no previously-included directories found matching 'benchmarks/html'
no previously-included directories found matching 'benchmarks/numpy'
warning: no previously-included files matching '*.pyc' found anywhere in distribution
warning: no previously-included files matching '*.pyo' found anywhere in distribution
warning: no previously-included files matching '*.pyd' found anywhere in distribution
warning: no previously-included files matching '*.swp' found anywhere in distribution
warning: no previously-included files matching '*.bak' found anywhere in distribution
warning: no previously-included files matching '*~' found anywhere in distribution
warning: no previously-included files found matching 'LICENSES_bundled.txt'
adding license file 'LICENSE.txt'
writing manifest file 'numpy.egg-info/SOURCES.txt'
Getting requirements to build wheel ... done
Running command Preparing metadata (pyproject.toml)
Running from numpy source directory.
setup.py:425: UserWarning: Unrecognized setuptools command, proceeding with generating Cython sources and expanding templates
run_build = parse_setuppy_commands()
/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-install-1_bvhw4u/numpy_94acb307542d4878a85f46abd422e4fc/tools/cythonize.py:75: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
required_version = LooseVersion('0.29.13')
/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-install-1_bvhw4u/numpy_94acb307542d4878a85f46abd422e4fc/tools/cythonize.py:77: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
if LooseVersion(cython_version) < required_version:
Processing numpy/random/_bounded_integers.pxd.in
Processing numpy/random/_philox.pyx
Processing numpy/random/_bit_generator.pyx
Processing numpy/random/_bounded_integers.pyx.in
Processing numpy/random/_sfc64.pyx
Processing numpy/random/_mt19937.pyx
Processing numpy/random/mtrand.pyx
Processing numpy/random/_generator.pyx
Processing numpy/random/_pcg64.pyx
Processing numpy/random/_common.pyx
Cythonizing sources
blas_opt_info:
blas_mkl_info:
customize UnixCCompiler
libraries mkl_rt not found in ['/Users/anastasiia/Desktop/elliot/venv/lib', '/usr/local/lib', '/usr/lib']
NOT AVAILABLE
blis_info:
libraries blis not found in ['/Users/anastasiia/Desktop/elliot/venv/lib', '/usr/local/lib', '/usr/lib']
NOT AVAILABLE
openblas_info:
libraries openblas not found in ['/Users/anastasiia/Desktop/elliot/venv/lib', '/usr/local/lib', '/usr/lib']
NOT AVAILABLE
atlas_3_10_blas_threads_info:
Setting PTATLAS=ATLAS
libraries tatlas not found in ['/Users/anastasiia/Desktop/elliot/venv/lib', '/usr/local/lib', '/usr/lib']
NOT AVAILABLE
atlas_3_10_blas_info:
libraries satlas not found in ['/Users/anastasiia/Desktop/elliot/venv/lib', '/usr/local/lib', '/usr/lib']
NOT AVAILABLE
atlas_blas_threads_info:
Setting PTATLAS=ATLAS
libraries ptf77blas,ptcblas,atlas not found in ['/Users/anastasiia/Desktop/elliot/venv/lib', '/usr/local/lib', '/usr/lib']
NOT AVAILABLE
atlas_blas_info:
libraries f77blas,cblas,atlas not found in ['/Users/anastasiia/Desktop/elliot/venv/lib', '/usr/local/lib', '/usr/lib']
NOT AVAILABLE
accelerate_info:
libraries accelerate not found in ['/Users/anastasiia/Desktop/elliot/venv/lib', '/usr/local/lib', '/usr/lib']
Library accelerate was not found. Ignoring
libraries veclib not found in ['/Users/anastasiia/Desktop/elliot/venv/lib', '/usr/local/lib', '/usr/lib']
Library veclib was not found. Ignoring
FOUND:
extra_compile_args = ['-faltivec', '-I/System/Library/Frameworks/vecLib.framework/Headers']
extra_link_args = ['-Wl,-framework', '-Wl,Accelerate']
define_macros = [('NO_ATLAS_INFO', 3), ('HAVE_CBLAS', None)]
FOUND:
extra_compile_args = ['-faltivec', '-I/System/Library/Frameworks/vecLib.framework/Headers']
extra_link_args = ['-Wl,-framework', '-Wl,Accelerate']
define_macros = [('NO_ATLAS_INFO', 3), ('HAVE_CBLAS', None)]
/bin/sh: svnversion: command not found
non-existing path in 'numpy/distutils': 'site.cfg'
lapack_opt_info:
lapack_mkl_info:
libraries mkl_rt not found in ['/Users/anastasiia/Desktop/elliot/venv/lib', '/usr/local/lib', '/usr/lib']
NOT AVAILABLE
openblas_lapack_info:
libraries openblas not found in ['/Users/anastasiia/Desktop/elliot/venv/lib', '/usr/local/lib', '/usr/lib']
NOT AVAILABLE
openblas_clapack_info:
libraries openblas,lapack not found in ['/Users/anastasiia/Desktop/elliot/venv/lib', '/usr/local/lib', '/usr/lib']
NOT AVAILABLE
flame_info:
libraries flame not found in ['/Users/anastasiia/Desktop/elliot/venv/lib', '/usr/local/lib', '/usr/lib']
NOT AVAILABLE
atlas_3_10_threads_info:
Setting PTATLAS=ATLAS
libraries lapack_atlas not found in /Users/anastasiia/Desktop/elliot/venv/lib
libraries tatlas,tatlas not found in /Users/anastasiia/Desktop/elliot/venv/lib
libraries lapack_atlas not found in /usr/local/lib
libraries tatlas,tatlas not found in /usr/local/lib
libraries lapack_atlas not found in /usr/lib
libraries tatlas,tatlas not found in /usr/lib
<class 'numpy.distutils.system_info.atlas_3_10_threads_info'>
NOT AVAILABLE
atlas_3_10_info:
libraries lapack_atlas not found in /Users/anastasiia/Desktop/elliot/venv/lib
libraries satlas,satlas not found in /Users/anastasiia/Desktop/elliot/venv/lib
libraries lapack_atlas not found in /usr/local/lib
libraries satlas,satlas not found in /usr/local/lib
libraries lapack_atlas not found in /usr/lib
libraries satlas,satlas not found in /usr/lib
<class 'numpy.distutils.system_info.atlas_3_10_info'>
NOT AVAILABLE
atlas_threads_info:
Setting PTATLAS=ATLAS
libraries lapack_atlas not found in /Users/anastasiia/Desktop/elliot/venv/lib
libraries ptf77blas,ptcblas,atlas not found in /Users/anastasiia/Desktop/elliot/venv/lib
libraries lapack_atlas not found in /usr/local/lib
libraries ptf77blas,ptcblas,atlas not found in /usr/local/lib
libraries lapack_atlas not found in /usr/lib
libraries ptf77blas,ptcblas,atlas not found in /usr/lib
<class 'numpy.distutils.system_info.atlas_threads_info'>
NOT AVAILABLE
atlas_info:
libraries lapack_atlas not found in /Users/anastasiia/Desktop/elliot/venv/lib
libraries f77blas,cblas,atlas not found in /Users/anastasiia/Desktop/elliot/venv/lib
libraries lapack_atlas not found in /usr/local/lib
libraries f77blas,cblas,atlas not found in /usr/local/lib
libraries lapack_atlas not found in /usr/lib
libraries f77blas,cblas,atlas not found in /usr/lib
<class 'numpy.distutils.system_info.atlas_info'>
NOT AVAILABLE
FOUND:
extra_compile_args = ['-faltivec', '-I/System/Library/Frameworks/vecLib.framework/Headers']
extra_link_args = ['-Wl,-framework', '-Wl,Accelerate']
define_macros = [('NO_ATLAS_INFO', 3), ('HAVE_CBLAS', None)]
/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-build-env-h1wqgh2x/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py:275: UserWarning: Unknown distribution option: 'define_macros'
warnings.warn(msg)
running dist_info
running build_src
build_src
building py_modules sources
creating build
creating build/src.macosx-12-arm64-3.9
creating build/src.macosx-12-arm64-3.9/numpy
creating build/src.macosx-12-arm64-3.9/numpy/distutils
building library "npymath" sources
Traceback (most recent call last):
File "/Users/anastasiia/Desktop/elliot/venv/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 363, in <module>
main()
File "/Users/anastasiia/Desktop/elliot/venv/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 345, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
File "/Users/anastasiia/Desktop/elliot/venv/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 164, in prepare_metadata_for_build_wheel
return hook(metadata_directory, config_settings)
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-build-env-h1wqgh2x/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 188, in prepare_metadata_for_build_wheel
self.run_setup()
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-build-env-h1wqgh2x/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 281, in run_setup
super(_BuildMetaLegacyBackend,
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-build-env-h1wqgh2x/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 174, in run_setup
exec(compile(code, __file__, 'exec'), locals())
File "setup.py", line 450, in <module>
setup_package()
File "setup.py", line 442, in setup_package
setup(**metadata)
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-install-1_bvhw4u/numpy_94acb307542d4878a85f46abd422e4fc/numpy/distutils/core.py", line 171, in setup
return old_setup(**new_attr)
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-build-env-h1wqgh2x/overlay/lib/python3.9/site-packages/setuptools/__init__.py", line 87, in setup
return distutils.core.setup(**attrs)
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-build-env-h1wqgh2x/overlay/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 148, in setup
return run_commands(dist)
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-build-env-h1wqgh2x/overlay/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 163, in run_commands
dist.run_commands()
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-build-env-h1wqgh2x/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 967, in run_commands
self.run_command(cmd)
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-build-env-h1wqgh2x/overlay/lib/python3.9/site-packages/setuptools/dist.py", line 1214, in run_command
super().run_command(command)
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-build-env-h1wqgh2x/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 986, in run_command
cmd_obj.run()
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-build-env-h1wqgh2x/overlay/lib/python3.9/site-packages/setuptools/command/dist_info.py", line 35, in run
egg_info.run()
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-install-1_bvhw4u/numpy_94acb307542d4878a85f46abd422e4fc/numpy/distutils/command/egg_info.py", line 26, in run
self.run_command("build_src")
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-build-env-h1wqgh2x/overlay/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-build-env-h1wqgh2x/overlay/lib/python3.9/site-packages/setuptools/dist.py", line 1214, in run_command
super().run_command(command)
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-build-env-h1wqgh2x/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 986, in run_command
cmd_obj.run()
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-install-1_bvhw4u/numpy_94acb307542d4878a85f46abd422e4fc/numpy/distutils/command/build_src.py", line 146, in run
self.build_sources()
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-install-1_bvhw4u/numpy_94acb307542d4878a85f46abd422e4fc/numpy/distutils/command/build_src.py", line 157, in build_sources
self.build_library_sources(*libname_info)
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-install-1_bvhw4u/numpy_94acb307542d4878a85f46abd422e4fc/numpy/distutils/command/build_src.py", line 290, in build_library_sources
sources = self.generate_sources(sources, (lib_name, build_info))
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-install-1_bvhw4u/numpy_94acb307542d4878a85f46abd422e4fc/numpy/distutils/command/build_src.py", line 380, in generate_sources
source = func(extension, build_dir)
File "numpy/core/setup.py", line 656, in get_mathlib_info
st = config_cmd.try_link('int main(void) { return 0;}')
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-build-env-h1wqgh2x/overlay/lib/python3.9/site-packages/setuptools/_distutils/command/config.py", line 241, in try_link
self._check_compiler()
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-install-1_bvhw4u/numpy_94acb307542d4878a85f46abd422e4fc/numpy/distutils/command/config.py", line 82, in _check_compiler
self.fcompiler = new_fcompiler(compiler=self.fcompiler,
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-install-1_bvhw4u/numpy_94acb307542d4878a85f46abd422e4fc/numpy/distutils/fcompiler/__init__.py", line 884, in new_fcompiler
compiler = get_default_fcompiler(plat, requiref90=requiref90,
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-install-1_bvhw4u/numpy_94acb307542d4878a85f46abd422e4fc/numpy/distutils/fcompiler/__init__.py", line 855, in get_default_fcompiler
compiler_type = _find_existing_fcompiler(matching_compiler_types,
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-install-1_bvhw4u/numpy_94acb307542d4878a85f46abd422e4fc/numpy/distutils/fcompiler/__init__.py", line 806, in _find_existing_fcompiler
c.customize(dist)
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-install-1_bvhw4u/numpy_94acb307542d4878a85f46abd422e4fc/numpy/distutils/fcompiler/__init__.py", line 530, in customize
linker_so_flags = self.flag_vars.linker_so
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-install-1_bvhw4u/numpy_94acb307542d4878a85f46abd422e4fc/numpy/distutils/fcompiler/environment.py", line 40, in __getattr__
return self._get_var(name, conf_desc)
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-install-1_bvhw4u/numpy_94acb307542d4878a85f46abd422e4fc/numpy/distutils/fcompiler/environment.py", line 56, in _get_var
var = self._hook_handler(name, hook)
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-install-1_bvhw4u/numpy_94acb307542d4878a85f46abd422e4fc/numpy/distutils/fcompiler/__init__.py", line 709, in _environment_hook
return hook()
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-install-1_bvhw4u/numpy_94acb307542d4878a85f46abd422e4fc/numpy/distutils/fcompiler/gnu.py", line 353, in get_flags_linker_so
flags = GnuFCompiler.get_flags_linker_so(self)
File "/private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-install-1_bvhw4u/numpy_94acb307542d4878a85f46abd422e4fc/numpy/distutils/fcompiler/gnu.py", line 144, in get_flags_linker_so
os.environ['MACOSX_DEPLOYMENT_TARGET'] = target
File "/opt/homebrew/Cellar/[email protected]/3.9.12/Frameworks/Python.framework/Versions/3.9/lib/python3.9/os.py", line 684, in __setitem__
value = self.encodevalue(value)
File "/opt/homebrew/Cellar/[email protected]/3.9.12/Frameworks/Python.framework/Versions/3.9/lib/python3.9/os.py", line 756, in encode
raise TypeError("str expected, not %s" % type(value).__name__)
TypeError: str expected, not int
error: subprocess-exited-with-error
× Preparing metadata (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
full command: /Users/anastasiia/Desktop/elliot/venv/bin/python /Users/anastasiia/Desktop/elliot/venv/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py prepare_metadata_for_build_wheel /var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/tmp15w8xm0b
cwd: /private/var/folders/gr/dpwnfzbj45sfzthq83r6cn7m0000gn/T/pip-install-1_bvhw4u/numpy_94acb307542d4878a85f46abd422e4fc
Preparing metadata (pyproject.toml) ... error
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
The output of my pip freeze:
absl-py==1.0.0
astunparse==1.6.3
cachetools==5.0.0
certifi==2021.10.8
charset-normalizer==2.0.12
flatbuffers==2.0
gast==0.5.3
google-auth==2.6.4
google-auth-oauthlib==0.4.6
google-pasta==0.2.0
grpcio==1.44.0
h5py==3.6.0
idna==3.3
importlib-metadata==4.11.3
keras==2.8.0
Keras-Preprocessing==1.1.2
libclang==13.0.0
Markdown==3.3.6
numpy==1.22.3
oauthlib==3.2.0
opt-einsum==3.3.0
protobuf==3.20.0
pyasn1==0.4.8
pyasn1-modules==0.2.8
requests==2.27.1
requests-oauthlib==1.3.1
rsa==4.8
six==1.16.0
tensorboard==2.8.0
tensorboard-data-server==0.6.1
tensorboard-plugin-wit==1.8.1
tensorflow-macos==2.8.0
termcolor==1.1.0
tf-estimator-nightly==2.8.0.dev2021122109
typing_extensions==4.1.1
urllib3==1.26.9
Werkzeug==2.1.1
wrapt==1.14.0
zipp==3.8.0
Like I said, I would greatly appreciate any assistance. Thank you!
Hi there,
I am reviewing your recommendation library and I am quite interested in that.
I am a PhD student from NUS, Singapore. I would like to know whether your team is still working on this project? I am currently trying to add some more features to this library.
I will be doing this as part of my university project and pls let me know if your team is interested in this idea.
Regards,
Victor
Describe the bug
I'm on a research project about co-training recommender systems. This involves iteratively training one recommender, adding its predicted ratings into the trainset and training another recommender on that enriched trainset. To add the predicted ratings to the trainset, these ratings should be on the same scale as the original ratings, ie 0-5. However, I noticed that the get_recommendations()
method returns ratings that are outside the 0-5 range.
For example, when running sample_main.py
, which uses ItemKNN on the movielens_1m dataset, the predictions include results that are beyond the normal 0-5 range. They vary anywhere between 0 and 100 and sometimes go beyond 100
My questions would be:
To Reproduce
item_knn_similarity.get_user_recs()
in a text filesample_main.py
Expected behaviour
One would expect that all the predicted recommendations would be between 0 and 5.
They vary anywhere between 0 and 100 and sometimes go beyond 100
System details (please complete the following information):
Describe the bug
Running sample basic (https://github.com/sisinflab/elliot/blob/master/sample_basic.py) encounters a problem for file not found. This is because the dataset.tsv is downloaded into data/movilens_1m folder but the configuration file loaded by the same script (https://github.com/sisinflab/elliot/blob/master/config_files/basic_configuration.yml) looks for the dataset in /data/cat_dbpedia_movielens_1m.
To Reproduce
Run sample_basic.py
Expected behavior
dataset.tsv should be downloaded into a folder reachable by the code
Screenshots
System details (please complete the following information):
Additional context
Add any other context about the problem here.
I have tried to run FunkSVD on MovieLens100k but it does finish the execution.
To Reproduce
The screenshots of the running and config files used for reproducing what I did are as follows.
Expected behavior
The screenshot of the execution trace is as follows.
I am Python 3.7 on a MacOS Big Sur version 11.1
We are using Elliot Framework to conduct a reproducibility. However, we are facing issues with UserAutoRec, CFGAN, and LightGCN models, which produce very bad results with amazon_music, opinions and movielens_1m datasets. To handle this issue, I change the configuration file multiple times by taking random parameters and default parameters, which are given on the Elliot website for UserAutoRec, CFGAN and LightGCN models. However, I did not observe any improvement. In addition, I also analyze some articles where UserAutoRec, CFGAN, and LightGCN are picked up as baseline models to see how these models perform in other articles with amazon_music, opinions and movielens_1m datasets. Fortunately, I see their good results. I think that there is an error during the embedding of these models into the Elliot Framework,
The obtained results of UserAutoRec, CFGAN and LightGCN with amazon_music, epinions and movielens_1m datasets are given in the tables below. We also attach the used configuration files.
UserAutoRec.txt
LightGCN.txt
CFGAN.txt
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.