Я получаю сообщение об ошибке, когда вызываю функцию def, потому что ошибка _you_watched - это sample (), в которой отсутствует 1 обязательный позиционный аргумент: 'k' - PullRequest
0 голосов
/ 06 декабря 2018
import random

def because_you_watched(user, user_item, users, movies, k=5, N=5):

    movieTableIDs = get_rated_movies_ids(user, user_item, users, movies)
    df = get_movies(movieTableIDs, movies_table)

    movieIDs = random.sample(list([df.movieId, N]))

    for movieID in movieIDs:
        title = df[df.movieId == movieID].iloc[0].title
        print("Because you've watched ", title)
        similar_and_display(movieID, movies_table, movies, k)


because_you_watched(500, user_item, users, movies, k=5, N=5)

Ответы [ 3 ]

0 голосов
/ 06 декабря 2018

Вам не хватает второго аргумента в функции random.sample.

Согласно документации:

random.sample (совокупность, k)

Возвратдлина списка уникальных элементов, выбранных из последовательности популяции.Используется для случайной выборки без замены.

Заменить это:

movieIDs = random.sample(list([df.movieId, N]))

этим

movieIDs = random.sample(list(df.movieId), N)
0 голосов
/ 06 декабря 2018

Как указано в ответе Павла.Типовая функция случайного пакета принимает два аргумента, и вы предоставляете только один в виде списка.Предполагая, что параметр N означает количество сэмплов, вы можете попробовать что-то вроде movieIDs = random.sample(list(df.movieId),N).В противном случае, почему бы просто не использовать пример метода pfas 'dataframe , задокументированного здесь .

DataFrame.sample (n = Нет, frac = Нет, replace = False, веса = Нет, random_state = Нет, ось = Нет)

Вернуть случайную выборку элементов изось объекта.

n: int, необязательный

Количество элементов от оси для возврата.Не может использоваться с ГРП.По умолчанию = 1, если frac = Нет.

Тогда вы можете просто сделать sample = list(df.sample(n=N).movieId) Я думаю.

0 голосов
/ 06 декабря 2018

Вам нужно значение k в этой строке кода:

movieIDs = random.sample(list([df.movieId, N]))

, так как random.sample принимает два аргумента, указанных в документации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...