Vous êtes sur la page 1sur 16

Affectation - 4

1. Problèmes de récitation

1.1. Chapitre 9

1.1.1. Trois ordinateurs, A, B et C, présentent les caractéristiques numériques suivantes :

Nous pouvons imaginer que ces valeurs définissent un vecteur pour chaque ordinateur ;
par exemple, le vecteur de A est [3,06, 500, 6]. Nous pouvons calculer la distance en
cosinus entre deux vecteurs quelconques, mais si nous ne mettons pas les composants à
l'échelle, la taille du disque dominera et rendra les différences entre les autres composants
pratiquement invisibles. Utilisons 1 comme facteur d'échelle pour la vitesse du processeur,
α pour la taille du disque et β pour la taille de la mémoire principale.

Taille de la
Fonctio Vitesse du Taille du mémoire
nnalité processeur disque principale
A 3.06 500α 6β
B 2.68 320α 4β
C 2.92 640α 6β

(a) En termes de α et β, calculez les cosinus des angles entre les vecteurs pour chaque paire des
trois ordinateurs.

A=[3,06, 500α, 6β]


B=[2.68, 320α, 4β]

Cos θ = 8.2008 + 160000α2 + 24β2


√(9.36 + 250000α2 + 36β2) * √(7.18 + 102400α2 + 16β2)

A=[3,06, 500α, 6β]


C=[2,92, 640α, 6β]

Cos θ = 8.9352 + 320000α2 + 36β2


√(9.36 + 250000α2 + 36β2) * √(8.53 + 409600α2 + 36β2)
B=[2.68, 320α, 4β]
C=[2,92, 640α, 6β]

Cos θ = 7.8256 + 204800α2 + 24β2


√(7.18 + 102400α2 + 16β2) * √(8.53 + 409600α2 + 36β2)

(b) Quels sont les angles entre les vecteurs si α = β = 1 ?

A=[3,06, 500α, 6β]


B=[2.68, 320α, 4β]

Cos θ = 8.2008 + 160000α2 + 24β2


√(9.36 + 250000α2 + 36β2) * √(7.18 + 102400α2 + 16β2)

= 8.2008 + 160000(1)2 + 24(1)2


√(9.36 + 250000(1)2 + 36(1)2) * √(7.18 + 102400(1)2 + 16(1)2)

= 8.2008 + 160000 + 24
√(9.36 + 250000 + 36) * √(7.18 + 102400 + 16)

= 0.99

L'angle entre les vecteurs A et B est approximativement de 0◦

A=[3,06, 500α, 6β]


C=[2,92, 640α, 6β]

Cos θ = 8.9352 + 320000α2 + 36β2


√(9.36 + 250000α2 + 36β2) * √(8.53 + 409600α2 + 36β2)

= 8.9352 + 320000(1)2 + 36(1)2


√(9.36 + 250000(1)2 + 36(1)2) * √(8.53 + 409600(1)2 + 36(1)2)

= 8.9352 + 320000 + 36
√(9.36 + 250000 + 36) * √(8.53 + 409600 + 36)

= 0.99

L'angle entre les vecteurs A et C est approximativement de 0◦


B=[2.68, 320α, 4β]
C=[2,92, 640α, 6β]

Cos θ = 7.8256 + 204800α2 + 24β2


√(7.18 + 102400α2 + 16β2) * √(8.53 + 409600α2 + 36β2)

= 7.8256 + 204800(1)2 + 24(1)2


√(7.18 + 102400(1)2 + 16(1)2) * √(8.53 + 409600(1)2 + 36(1)2)

= 7.8256 + 204800 + 24
√(7.18 + 102400 + 16) * √(8.53 + 409600 + 36)

= 0.99

L'angle entre les vecteurs B et C est approximativement de 0◦

(c) Quels sont les angles entre les vecteurs si α = 0,01 et β = 0,5 ?

A=[3,06, 500α, 6β]


B=[2.68, 320α, 4β]

Cos θ = 8.2008 + 160000α2 + 24β2


√(9.36 + 250000α2 + 36β2) * √(7.18 + 102400α2 + 16β2)

= 8.2008 + 160000(0.01)2 + 24(0.5)2


√(9.36 + 250000(0.01)2 + 36(0.5)2) * √(7.18 + 102400(0.01)2 + 16(0.5)2)

= 8.2008 + 16 + 6
√(9.36 + 25 + 9) * √(7.18 + 10.24 + 4)

= 0.99

L'angle entre les vecteurs A et B est approximativement de 0◦

A=[3,06, 500α, 6β]


C=[2,92, 640α, 6β]

Cos θ = 8.9352 + 320000α2 + 36β2


√(9.36 + 250000α2 + 36β2) * √(8.53 + 409600α2 + 36β2)

= 8.9352 + 320000(0.01)2 + 36(0.5)2


√(9.36 + 250000(0.01)2 + 36(0.5)2) * √(8.53 + 409600(0.01)2 + 36(0.5)2)

= 8.9352 + 32 + 9
√(9.36 + 25 + 9) * √(8.53 + 40.96 + 9)

= 0.99
L'angle entre les vecteurs A et C est approximativement de 0◦

B=[2.68, 320α, 4β]


C=[2,92, 640α, 6β]

Cos θ = 7.8256 + 204800α2 + 24β2


√(7.18 + 102400α2 + 16β2) * √(8.53 + 409600α2 + 36β2)

= 7.8256 + 204800(0.01)2 + 24(0.5)2


√(7.18 + 102400(0.01)2 + 16(0.5)2) * √(8.53 + 409600(0.01)2 + 36(0.5)2)

= 7.8256 + 20.48 + 6
√(7.18 + 10.24 + 4) * √(8.53 + 40.96 + 9)

= 0.97

L'angle entre les vecteurs B et C est approximativement de 0◦

(d) Une façon équitable de sélectionner les facteurs d'échelle est de rendre chacun d'eux
inversement proportionnel à la valeur moyenne de sa composante. Quelles seraient les
valeurs de α et β, et quels seraient les angles entre les vecteurs ?

Facteurs d'échelle α = β = [inversement proportionnel à la valeur moyenne de sa


composante].

La valeur de α = 3 = 0.002
(500+320+640)

La valeur de β = 3 = 0.1875
(6+4+6)

A=[3,06, 500α, 6β]


B=[2.68, 320α, 4β]

Cos θ = 8.2008 + 160000α2 + 24β2


√(9.36 + 250000α2 + 36β2) * √(7.18 + 102400α2 + 16β2)

= 8.2008 + 160000(0.002)2 + 24(0.1875)2


√(9.36 + 250000(0.002)2 + 36(0.1875)2) * √(7.18 + 102400(0.002)2 + 16(0.1875)2)

= 8.2008 + 0.64 + 0.84


√(9.36 + 1 + 1.27) * √(7.18 + 0.41 + 0.56)

= 0.994

L'angle entre les vecteurs A et B est approximativement de 0◦


A=[3,06, 500α, 6β]
C=[2,92, 640α, 6β]

Cos θ = 8.9352 + 320000α2 + 36β2


√(9.36 + 250000α2 + 36β2) * √(8.53 + 409600α2 + 36β2)

= 8.9352 + 320000(0.002)2 + 36(0.1875)2


√(9.36 + 250000(0.002)2 + 36(0.1875)2) * √(8.53 + 409600(0.002)2 + 36(0.1875)2)

= 8.9352 + 1.28 + 1.27


√(9.36 + 1 + 1.27) * √(8.53 + 1.64 + 1.27)

= 0.996

L'angle entre les vecteurs A et C est approximativement de 0◦

B=[2.68, 320α, 4β]


C=[2,92, 640α, 6β]

Cos θ = 7.8256 + 204800α2 + 24β2


√(7.18 + 102400α2 + 16β2) * √(8.53 + 409600α2 + 36β2)

= 7.8256 + 204800(0.002)2 + 24(0.1875)2


√(7.18 + 102400(0.002)2 + 16(0.1875)2) * √(8.53 + 409600(0.002)2 + 36(0.1875)2)

= 7.8256 + 0.82 + 0.84


√(7.18 + 0.41 + 0.56) * √(8.53 + 1.64 + 1.27)

= 0.98

L'angle entre les vecteurs B et C est approximativement de 0◦

1.1.2. Un utilisateur a évalué les trois ordinateurs de l'exercice 9.2.1 comme suit :
A : 4 étoiles, B : 2 étoiles, C : 5 étoiles.

(a) Normaliser les évaluations pour cet utilisateur.

Notes attribuées par les utilisateurs à 3 ordinateurs (A, B et C) : 4, 2 et 5

Note moyenne des utilisateurs = 4+2+5


3
= 11
3
= 3.67

Note normalisée pour A= 4 - 11 = 1 = 0,33


3 3

Note normalisée pour B= 2 - 11 = - 5 = - 1,67


3 3

Note normalisée pour C= 5 - 11 = 4 = 1,33


3 3

Note normalisée combinée =(4 - 3,67) + (2 - 3,67) + (5 - 3,67)


3
= - 0.01
3
= - 0.003333

(b) Calculez un profil d'utilisateur pour l'utilisateur, avec des composants pour la vitesse du
processeur, la taille du disque et la taille de la mémoire principale, sur la base des données
de l'exercice 9.2.1.

Vitesse du processeur = 3.06 * 1/3 - 2.68 * 5/3 + 2.92 * 4/3 = 0.4467


Taille du disque = 500 * 1/3 – 320 * 5/3 + 640 * 4/3 = 486.6667
Mémoire principale= 6 * 1/3 – 4 * 5/3 + 6 * 4/3 = 3.3333

Fonctio Vitesse du Taille du Taille de la mémoire


nnalité processeur disque principale
Utilisate
ur 0.4467 486.6667 3.3333

1.1.3. La figure 9.8 est une matrice d'utilité représentant les évaluations, sur une échelle de 1 à
5 étoiles, de huit éléments, de a à h, par trois utilisateurs A, B et C. Calculez les éléments
suivants à partir des données de cette matrice.

(a) En traitant la matrice d'utilité comme une matrice booléenne, calculer la distance de Jaccard
entre chaque paire d'utilisateurs.

Distance de Jaccard = F11


F11+F01+F10

Jaccard(A, B) = 4 = 1 = 0,5
8 2

Jaccard(B, C) = 4 = 1 = 0,5
8 2

Jaccard(A, C) = 4 = 1 = 0,5
8 2

(b) Répétez la partie (a), mais utilisez la distance en cosinus.

A=[4,5,0,5,1,0,3,2]
B=[0,3,4,3,1,2,1,0]

cos(A, B) = (4*0)+(5*3)+(0*4)+(5*3)+(1*1)+(0*2)+(3*1)+(2*0) = 34 = 0.601


√(16+25+0+25+1+0+9+4) * √(0+9+16+9+1+4+1+0) √(80)*√(40)

B=[0,3,4,3,1,2,1,0]
C=[2,0,1,3,0,4,5,3]

cos(B, C) = (0*2)+(3*0)+(4*1)+(3*3)+(1*0)+(2*4)+(1*5)+(0*3) = 26 = 0.514


√(0+9+16+9+1+4+1+0) * √(4+0+1+9+0+16+25+9) √(40)*√(64)

A=[4,5,0,5,1,0,3,2]
C=[2,0,1,3,0,4,5,3]

cos(A, C) = (4*2)+(5*0)+(0*1)+(5*3)+(1*0)+(0*4)+(3*5)+(2*3) = 44 = 0.615


√(16+25+0+25+1+0+9+4) * √(4+0+1+9+0+16+25+9) √(80)*√(64)

(c) Traiter les notes 3, 4 et 5 comme 1 et les notes 1, 2 et blanc comme 0. Calculer la distance
de Jaccard entre chaque paire d'utilisateurs.

A B c D e f g h
A 1 1 0 1 0 0 1 0
B 0 1 1 1 0 0 0 0
C 0 0 0 1 0 1 1 1

Distance de Jaccard = F11


F11+F01+F10
Jaccard(A, B) = 2 = 0,4
5

Jaccard(B, C) = 1 = 0,167
6

Jaccard(A, C) = 2 = 1 = 0,333
6 3
(d) Répétez la partie (c), mais utilisez la distance en cosinus.

A=[1,1,0,1,0,0,1,0]
B=[0,1,1,1,0,0,0,0]

cos(A, B) = (1*0)+(1*1)+(0*1)+(1*1)+(0*0)+(0*0)+(1*0)+(0*0) = 2 = 0.577


√(4) * √(3) 2√3

B=[0,1,1,1,0,0,0,0]
C=[0,0,0,1,0,1,1,1]

cos(B, C) = (0*0)+(1*0)+(1*0)+(1*1)+(0*0)+(0*1)+(0*1)+(0*1) = 1 = 0.289


√(3) * √(4) 2√3

A=[1,1,0,1,0,0,1,0]
C=[0,0,0,1,0,1,1,1]

cos(A, C) = (1*0)+(1*0)+(0*0)+(1*1)+(0*0)+(0*1)+(1*1)+(0*0) = 2 = 1 = 0,5


√(4) * √(4) 4 2

(e) Normaliser la matrice en soustrayant de chaque entrée non vide la valeur moyenne pour
son utilisateur.

Matrice normalisée

a B c d e F G h
A 0.67 1.67 1.67 -2.34 -0.34 -1.34
B 0.67 1.67 0.67 -1.34 -0.34 -1.34
C -1 -2 0 1 2 0

(f) En utilisant la matrice normalisée de la partie (e), calculez la distance en cosinus entre
chaque paire d'utilisateurs.

A=[0.67,1.67,0,1.67,-2.34,0,-0.34,-1.34]
B=[0,0.67,1.67,0.67,-1.34,-0.34,-1.34,0]

cos(A, B) = (1,67*0,67)+(1,67*0,67)+(-2,34*-1,34)+ (-0,34*-1,34) = 5 ,829 = 0,5858


√(13.41) * √(7.39) 9.95

B=[0,0.67,1.67,0.67,-1.34,-0.34,-1.34,0]
C=[-1,0,-2,0,0,1,2,0]

cos(B, C) = (1,67*-2)+ (0,67*0)+ (-0,34*1)+(-1,34*2) = - 6,36 = -0,74


√(7.39) * √(10) 8.60
A=[0.67,1.67,0,1.67,-2.34,0,-0.34,-1.34]
C=[-1,0,-2,0,0,1,2,0]

cos(A, C) = (0,67*-1)+ (1,67*0)+(-0,34*2)+(-1,34*0) = -1 ,35 = -0,12


√(13.41) * √(10) 11.58

1.1.4. En commençant par la décomposition de la figure 9.10, nous pouvons choisir n'importe
laquelle des 20 entrées de U ou V à optimiser en premier. Effectuer cette première étape
d'optimisation en supposant que nous choisissons :

(a) u32

1 1 2 2 2 2 2
1 1 1 1 1 1 1 2 2 2 2 2
1 x X = 1+x 1+x 1+x 1+x 1+x
1 1 1 1 1 1 1 2 2 2 2 2
1 1 2 2 2 2 2
La contribution à la somme des carrés de la troisième ligne est la suivante
(x - 1)2 + (𝑥 - 2)2 + 𝑥2 + (𝑥 - 3)2

Nous trouvons la valeur minimale de cette expression en la différentiant et en l'égalant à


0, comme suit :
2 × ((x - 1) + (x - 2) + x + (x - 3)) = 0

La solution pour x est x = 1,5

1 1 2 2 2 2 2
1 1 1 1 1 1 1 2 2 2 2 2
1 1.5 X = 2.5 2.5 2.5 2.5 2.5
1 1 1 1 1 1 1 2 2 2 2 2
1 1 2 2 2 2 2

(b) v14

1 1 2 2 2 y+1 2
1 1 1 1 1 y 1 2 2 2 y+1 2
1 1 X = 2 2 2 y+1 2
1 1 1 1 1 1 1 2 2 2 y+1 2
1 1 2 2 2 y+1 2

La contribution à la somme des carrés de la quatrième colonne est la suivante


(y - 3)2 + (𝑦 - 3)2 + 𝑦2 + (𝑦 - 2)2 + (𝑦 - 3)2

Nous trouvons la valeur minimale de cette expression en la différentiant et en l'égalant à


0, comme suit :
2 × ((y - 3) + (y - 3) + y + (y - 2) + (y - 3)) = 0

La solution pour x est y=2.2

1 1 2 2 2 3.2 2
1 1 1 1 1 2.2 1 2 2 2 3.2 2
1 1 X = 2 2 2 3.2 2
1 1 1 1 1 1 1 2 2 2 3.2 2
1 1 2 2 2 3.2 2

2. Problèmes de stage

2.1. Problème 1
Chargez l'ensemble de données Movielens 100k (ml-100k.zip) dans Python à l'aide de Pandas
dataframes. Construire un profil d'utilisateur sur des données non calibrées pour les deux
utilisateurs 200 et 15, et calculer la similarité en cosinus et la distance entre les préférences de
l'utilisateur et l'article/le film 95. À quel utilisateur un système de recommandation suggérerait-
il ce film ?
Article/film 95 [Profil de l'article] :

Utilisateur 15 [Profil utilisateur] :

Utilisateur 200 [Profil utilisateur] :

À quel utilisateur un système de recommandation suggérerait-il ce film ?

Similarité et distance cosinusoïdale entre les préférences de l'utilisateur et le profil de


l'élément :
Sur la base de la distance en cosinus et du score de similarité entre les préférences de
l'utilisateur et le profil de l'élément pour le film 95, le système de recommandation devrait
suggérer ce film à l'utilisateur 200 avec un score de similarité en cosinus plus élevé de
0,38745727.

2.2. Problème 2
Chargez l'ensemble de données Movielens 100k (ml-100k.zip) dans Python à l'aide de Pandas
dataframes. Convertir les données d'évaluation en une représentation matricielle de l'utilité et
trouver les 10 utilisateurs les plus similaires à l'utilisateur 1 sur la base de la similarité
cosinusoïdale des données d'évaluation des utilisateurs. Sur la base de la moyenne des notes
attribuées à l'article 508 par les utilisateurs similaires, quelle est la note attendue pour cet
article par l'utilisateur 1 ?

Données non normalisées :

Convertir les données d'évaluation en une représentation matricielle de l'utilité :


Trouver les 10 utilisateurs les plus similaires à l'utilisateur 1 sur la base de la similarité en
cosinus des données d'évaluation des utilisateurs :
Sur la base de la moyenne des notes attribuées à l'article 508 par les utilisateurs similaires,
quelle est la note attendue pour cet article par l'utilisateur 1 ?

Données normalisées [en supprimant la moyenne de l'utilisateur dans la matrice d'utilité] :


Convertir les données d'évaluation en une représentation matricielle de l'utilité :

Trouver les 10 utilisateurs les plus similaires à l'utilisateur 1 sur la base de la similarité en
cosinus des données d'évaluation des utilisateurs :
Sur la base de la moyenne des notes attribuées à l'article 508 par les utilisateurs similaires,
quelle est la note attendue pour cet article par l'utilisateur 1 ?

Vous aimerez peut-être aussi