Source code for cornac.datasets.netflix

# -*- coding: utf-8 -*-

"""
@author: Quoc-Tuan Truong <tuantq.vnu@gmail.com>

Data: https://www.kaggle.com/netflix-inc/netflix-prize-data/
"""

from ..utils import validate_format
from ..utils import cache
from ..data import reader

VALID_DATA_FORMATS = ['UIR', 'UIRT']


def _load(fname, fmt='UIR'):
    """Load the Netflix dataset

    Parameters
    ----------
    fname: str, required
        Data file name.

    fmt: str, default: 'UIR'
        Data format to be returned.

    Returns
    -------
    data: array-like
        Data in the form of a list of tuples depending on the given data format.

    """
    fmt = validate_format(fmt, VALID_DATA_FORMATS)
    fpath = cache(url='https://static.preferred.ai/cornac/datasets/netflix/{}.zip'.format(fname),
                  unzip=True, relative_path='netflix/{}.csv'.format(fname))
    if fmt == 'UIR':
        return reader.read_uir(fpath, sep=',')


[docs]def load_data(fmt='UIR'): """Load the Netflix entire dataset - Number of ratings: 100,480,507 - Number of users: 480,189 - Number of items: 17,770 Parameters ---------- fmt: str, default: 'UIR' Data format to be returned. Returns ------- data: array-like Data in the form of a list of tuples depending on the given data format. """ return _load('data', fmt)
[docs]def load_data_small(fmt='UIR'): """Load a small subset of the Netflix dataset. We draw this subsample such that every user has at least 10 items and each item has at least 10 users. - Number of ratings: 607,803 - Number of users: 10,000 - Number of items: 5,000 Parameters ---------- fmt: str, default: 'UIR' Data format to be returned. Returns ------- data: array-like Data in the form of a list of tuples depending on the given data format. """ return _load('data_small', fmt)