Lidando com esparsidade

Construindo mecanismos de recomendação em Python

Rob O'Callaghan

Director of Data

Matrizes esparsas

Matriz pequena não esparsa

Construindo mecanismos de recomendação em Python

Matrizes esparsas

Matriz pequena não esparsa e matriz grande esparsa

Construindo mecanismos de recomendação em Python

Matrizes esparsas

Matriz pequena não esparsa e matriz grande esparsa

Construindo mecanismos de recomendação em Python

Medindo a esparsidade

print(book_rating_df)
title     The Great Gatsby    The Catcher in the Rye    Fifty Shades of Grey
User                    
User_233               3.0                       NaN                     NaN
User_651               NaN                       5.0                     4.0
User_965               4.0                       3.0                     NaN
     ...               ...                       ...                     ...
Construindo mecanismos de recomendação em Python

Medindo a esparsidade

number_of_empty = book_ratings_df.isnull().values.sum()

total_number = user_ratings_df.size
sparsity = number_of_empty/total_number
print(sparsity)
0.0114
Construindo mecanismos de recomendação em Python

Por que a esparsidade importa

Matriz grande e esparsa

Construindo mecanismos de recomendação em Python

Por que a esparsidade importa

Matriz grande e esparsa com célula vazia destacada

Construindo mecanismos de recomendação em Python

Por que a esparsidade importa

Matriz grande e esparsa com vizinhos preenchidos mais próximos destacados

Construindo mecanismos de recomendação em Python

Por que a esparsidade importa

Matriz grande e esparsa com vizinhos preenchidos mais próximos destacados

Construindo mecanismos de recomendação em Python

Medindo esparsidade por coluna

user_ratings_df.notnull().sum()
The Pelican Brief                           1
Snow Crash                                  1
The Great Gatsby                           12
Fifty Shades of Grey                        9
Leviathan                                   1
                                           ..
Construindo mecanismos de recomendação em Python

Fatoração de matrizes

Matriz grande e esparsa

Construindo mecanismos de recomendação em Python

Fatoração de matrizes

Matriz grande e esparsa ao lado de seus fatores

Construindo mecanismos de recomendação em Python

Fatoração de matrizes

Matriz grande e esparsa ao lado de seus fatores e uma matriz grande preenchida

Construindo mecanismos de recomendação em Python

Multiplicação de matrizes

Duas matrizes retangulares

Construindo mecanismos de recomendação em Python

Multiplicação de matrizes

Duas matrizes retangulares

Construindo mecanismos de recomendação em Python

Multiplicação de matrizes

Duas matrizes retangulares

Construindo mecanismos de recomendação em Python

Multiplicação de matrizes

Duas matrizes retangulares

Construindo mecanismos de recomendação em Python

Multiplicação de matrizes

Duas matrizes retangulares ao lado de uma matriz maior que é o produto

Construindo mecanismos de recomendação em Python

Multiplicação de matrizes

print(matrix_x)
[[4, 1], 
 [2, 2], 
 [3, 3]]
print(matrix_b)
[[1, 0, 4], 
 [0, 1, 6]]
Construindo mecanismos de recomendação em Python

Multiplicação de matrizes

import numpy as np

dot_product = np.dot(matrix_x, matrix_b)
print(dot_product)
[[ 4  1 22]
 [ 2  2 20]
 [ 3  3 30]]
Construindo mecanismos de recomendação em Python

Vamos praticar!

Construindo mecanismos de recomendação em Python

Preparing Video For Download...