Я обучил модель ALS, используя неявный пакет с поддержкой графического процессора. Однако при оценке модели с помощью функции ndcg_at_k я столкнулся со следующей ошибкой:
import os
import random
import pandas as pd
from scipy.sparse import csr_matrix
from implicit.evaluation import train_test_split, ndcg_at_k, mean_average_precision_at_k
from implicit.gpu.als import AlternatingLeastSquares
os.environ['OPENBLAS_NUM_THREADS']="1"
os.environ['CUDA_VISIBLE_DEVICES']="0"
# init random data
n_actions = 100000
max_uid = 100000
max_action_id = 10000
df = pd.DataFrame(data={
"user_id" : [random.randint(1, max_uid) for i in range(0, n_actions)],
"action" : [random.randint(1, max_action_id) for i in range(0, n_actions)],
"impression" : [1 for i in range(0, n_actions)]
})
# convert to sparse format
user_rows = [uid for uid in df.user_id.tolist()]
query_cols = [st for st in df.action.tolist()]
qvecs = csr_matrix((df.impression, (user_rows, query_cols)))
# train test split and model training
train_user_items, test_user_items = train_test_split(qvecs, train_percentage=0.9, random_state=19)
model = AlternatingLeastSquares(factors=130, regularization=0.05, alpha=1.0, calculate_training_loss=True)
model.fit(train_user_items)
# calculate ndcg
ndcg = ndcg_at_k(model, train_user_items, test_user_items, K=14, show_progress=True, num_threads=1)n.tolist()]
qvecs = csr_matrix((df.impression, (user_rows, query_cols)))
# train test split and model training
train_user_items, test_user_items = train_test_split(qvecs, train_percentage=0.9, random_state=19)
model = AlternatingLeastSquares(factors=130, regularization=0.05, alpha=1.0, calculate_training_loss=True)
model.fit(train_user_items)
# calculate ndcg
ndcg = ndcg_at_k(model, train_user_items, test_user_items, K=14, show_progress=True, num_threads=1)
Я обучил модель ALS, используя неявный пакет с поддержкой графического процессора. Однако при оценке модели с помощью функции ndcg_at_k я столкнулся со следующей ошибкой: [code]import os import random import pandas as pd from scipy.sparse import csr_matrix from implicit.evaluation import train_test_split, ndcg_at_k, mean_average_precision_at_k from implicit.gpu.als import AlternatingLeastSquares
# init random data n_actions = 100000 max_uid = 100000 max_action_id = 10000
df = pd.DataFrame(data={ "user_id" : [random.randint(1, max_uid) for i in range(0, n_actions)], "action" : [random.randint(1, max_action_id) for i in range(0, n_actions)], "impression" : [1 for i in range(0, n_actions)] })
# convert to sparse format user_rows = [uid for uid in df.user_id.tolist()] query_cols = [st for st in df.action.tolist()] qvecs = csr_matrix((df.impression, (user_rows, query_cols)))
# train test split and model training train_user_items, test_user_items = train_test_split(qvecs, train_percentage=0.9, random_state=19)
model = AlternatingLeastSquares(factors=130, regularization=0.05, alpha=1.0, calculate_training_loss=True) model.fit(train_user_items)
Попытки решения: [list] [*]Я попробовал преобразовать модель в процессор, но это не решило проблему. [/list] Вопрос: Как устранить эту ошибку AttributeError при оценке модели с помощью неявной библиотеки?