Tôi có từ điển có khóa là user_ids và các giá trị dưới dạng danh sách các movie_ids được người dùng đó thích với #unique_users = 573000 và # unique_movies = 16000.chuyển từ điển sang ma trận thưa thớt
{1: [51, 379, 552, 2333, 2335, 4089, 4484], 2: [51, 379, 552, 1674, 1688, 2333, 3650, 4089, 4296, 4484], 5: [783, 909, 1052, 1138, 1147, 2676], 7: [171, 321, 959], 9: [3193], 10: [959], 11: [131,567,897,923],..........}
Bây giờ tôi muốn chuyển đổi này vào thành một ma trận với hàng như user_ids và cột như movies_id với giá trị 1 cho những bộ phim mà người dùng đã thích tức là nó sẽ là 573000 * 16000
Cuối cùng tôi phải nhân ma trận này với nó transpose để có ma trận co-occurrence với dim (# unique_movies, # unique_movies).
Ngoài ra, độ phức tạp của hoạt động X '* X là bao nhiêu khi X giống như (500000,12000).
nhưng sau đó cho vòng lặp sẽ có 57300 lần lặp lại vì đó là số người dùng riêng biệt trong từ điển –
@chiragyadav Tôi nghĩ điều đó sẽ hiệu quả vì bạn đã lập chỉ mục dữ liệu của mình trong từ điển và dok_matrix hiệu quả cho việc xây dựng ma trận gia tăng. –
'nhập khẩu scipy.sparse như sp mat = sp.dok_matrix ((576808,11287), dtype = np.int8) cho uid, brand_list trong user_pref_dict.items(): mat [uid, brand_list] = 1' Đã thử mã ở trên nhưng nó ném lỗi dưới đây: chỉ số (131) ngoài phạm vi -11287 đến 11286) –