参考书籍:《大数据:互联网大规模数据挖掘与分布式处理》(第二版)

原版英文书籍:Mining of Massive Datasets

注:答案为本人自己做的,并非标准答案,仅供参考。
如有错误,请私信我,我将及时修改。

《大数据:互联网大规模数据挖掘与分布式处理》(第二版)第九章习题答案

注:本书包含大量习题,较难的习题或习题中较难的部分都会用!标记,最难的习题用!!标记。

习题9.2.1

向量A,B,C:

向量处理器速度磁盘大小内存大小
A3.06500α
B2.68320α
C2.92640α

a)

向量组合夹角余弦
A-B 8.2008 + 160000 α 2 + 24 β 2 3.0 6 2 + 250000 α 2 + 36 β 2 ∗ 2.6 8 2 + 102400 α 2 + 16 β 2 \frac{8.2008+160000α^2+24β^2}{\sqrt{3.06^2+250000α^2+36β^2}*\sqrt{2.68^2+102400α^2+16β^2}} 3.062+250000α2+36β2 2.682+102400α2+16β2 8.2008+160000α2+24β2
A-C 8.9352 + 320000 α 2 + 36 β 2 3.0 6 2 + 250000 α 2 + 36 β 2 ∗ 2.9 2 2 + 409600 α 2 + 36 β 2 \frac{8.9352+320000α^2+36β^2}{\sqrt{3.06^2+250000α^2+36β^2}*\sqrt{2.92^2+409600α^2+36β^2}} 3.062+250000α2+36β2 2.922+409600α2+36β2 8.9352+320000α2+36β2
B-C 7.8256 + 204800 α 2 + 24 β 2 2.6 8 2 + 102400 α 2 + 16 β 2 ∗ 2.9 2 2 + 409600 α 2 + 36 β 2 \frac{7.8256+204800α^2+24β^2}{\sqrt{2.68^2+102400α^2+16β^2}*\sqrt{2.92^2+409600α^2+36β^2}} 2.682+102400α2+16β2 2.922+409600α2+36β2 7.8256+204800α2+24β2

b)

若α=β=1,则:

向量组合夹角余弦夹角
A-B0.9999970.1403°
A-C0.9999950.1812°
B-C0.9999880.2807°

c)

若α=0.01,β=0.5,则:

向量组合夹角余弦夹角
A-B0.9908817.7436°
A-C0.9915557.4515°
B-C0.96917814.2623°

!(d)

第一分量的平均值=(3.06+2.68+2.92)/3=2.886667,放缩变换因子为1。

第二分量的平均值=(500+320+640)/3=486.6667,放缩变换因子α=2.886667*1/486.6667=0.0059。

第二分量的平均值=(6+4+6)/3=5.333333,放缩变换因子β=2.886667*1/5.333333=0.5413。

则:

向量组合夹角余弦夹角
A-B0.98998.1704°
A-C0.99167.4542°
B-C0.969314.2265°

习题9.2.2

(a)

归一化前:

向量处理器速度磁盘大小内存大小
A3.065006
B2.683204
C2.926406

归一化后:

向量处理器速度磁盘大小内存大小
A0.173313.33330.6667
B-0.2067-166.6667-1.3333
C0.0333153.33330.6667

!!(b)

不会写,按放缩变换因子均为1来算:

向量组合夹角余弦夹角
A-B0.99892.7158°
A-C-0.9991177.5023°
B-C-0.999993179.78°

习题9.2.3

(a)

计算机归一化前归一化后
A40.3333
B2-1.6667
C51.3333

(b)

评分为0.3333、-1.6667和1.3333的平均值0。

习题9.3.1

效用矩阵:

用户abcdefgh
A455132
B343121
C213453

a)

组合Jaccard距离
A-B1/2
A-C5/8
B-C1/2

b)

组合余弦距离
A-B0.6010
A-C0.5311
B-C0.5139

c)

将评分3到5看成1,将评分1和评分2还有空白看成0。效用矩阵变为:

用户abcdefgh
A11010010
B01110000
C00010111
组合Jaccard距离
A-B0
A-C0
B-C0

d)

组合余弦距离
A-B0.5774
A-C0.5
B-C0.2887

e)

效用矩阵变为:

用户abcdefgh
A0.66671.66671.6667-2.3333-0.3333-1.3333
B0.66671.66670.6667-1.3333-0.3333-1.3333
C-1-20120

f)

组合余弦距离
A-B0.5843
A-C-0.1155
B-C-0.7396

习题9.3.2

a)

将评分3到5看成1,将评分1和评分2还有空白看成0。效用矩阵变为:

用户abcdefgh
A11010010
B01110000
C00010111

b)

用户簇1(f、h)簇2(a、e)簇3(b、c)簇4(d、g)
A01/21/21
B0011/2
C1001

c)

组合余弦距离
A-B0.7303
A-C0.5774
B-C0.3162

习题9.4.1

矩阵M:

[ 5 2 4 4 3 3 1 2 4 1 2 3 1 4 2 5 4 3 5 4 4 5 4 ] \begin{bmatrix} 5&2&4&4&3\\3&1&2&4&1\\2&&3&1&4\\2&5&4&3&5\\4&4&5&4& \end{bmatrix} 53224215442345441343145

(a) u32

新的U、V矩阵如下所示:

[ 1 1 1 1 1 z 1 1 1 1 ] × [ 1 1 1 1 1 1 1 1 1 1 ] = [ 2 2 2 2 2 2 2 2 2 2 z + 1 z + 1 z + 1 z + 1 z + 1 2 2 2 2 2 2 2 2 2 2 ] \begin{bmatrix} 1&1\\1&1\\1&z\\1&1\\1&1 \end{bmatrix} × \begin{bmatrix} 1&1&1&1&1\\1&1&1&1&1 \end{bmatrix}= \begin{bmatrix} 2&2&2&2&2\\2&2&2&2&2\\z+1&z+1&z+1&z+1&z+1\\2&2&2&2&2\\2&2&2&2&2 \end{bmatrix} 1111111z11 ×[1111111111]= 22z+12222z+12222z+12222z+12222z+122

注意到矩阵乘积的结果中只有第三行才有变化,于是,当将UV和M进行比较时,唯一的RMSE变化来自第三行。

第三行对平方和计算的贡献是:

( 2 − ( z + 1 ) ) 2 + ( 3 − ( z + 1 ) ) 2 + ( 1 − ( z + 1 ) ) 2 + ( 4 − ( z + 1 ) ) 2 (2-(z+1))^2+(3-(z+1))^2+(1-(z+1))^2+(4-(z+1))^2 (2(z+1))2+(3(z+1))2+(1(z+1))2+(4(z+1))2

该表达式可以简化为:

( 1 − z ) 2 + ( 2 − z ) 2 + z 2 + ( 3 − z ) 2 (1-z)^2+(2-z)^2+z^2+(3-z)^2 (1z)2+(2z)2+z2+(3z)2

令其导数为0,于是有:

− 2 ( 1 − z ) − 2 ( 2 − z ) + 2 z − 2 ( 3 − z ) = 0 -2(1-z)-2(2-z)+2z-2(3-z)=0 2(1z)2(2z)+2z2(3z)=0

对上式化简有:

− 2 ( 6 − 4 z ) = 0 -2(6-4z)=0 2(64z)=0

于是, z = 1.5 z=1.5 z=1.5

(b) v14

注:书上写的是v41,我觉得不对,是打印错误,下面按v14计算。

新的U、V矩阵如下所示:

[ 1 1 1 1 1 1 1 1 1 1 ] × [ 1 1 1 y 1 1 1 1 1 1 ] = [ 2 2 2 y + 1 2 2 2 2 y + 1 2 2 2 2 y + 1 2 2 2 2 y + 1 2 2 2 2 y + 1 2 ] \begin{bmatrix} 1&1\\1&1\\1&1\\1&1\\1&1 \end{bmatrix} × \begin{bmatrix} 1&1&1&y&1\\1&1&1&1&1 \end{bmatrix}= \begin{bmatrix} 2&2&2&y+1&2\\2&2&2&y+1&2\\2&2&2&y+1&2\\2&2&2&y+1&2\\2&2&2&y+1&2 \end{bmatrix} 1111111111 ×[111111y111]= 222222222222222y+1y+1y+1y+1y+122222

注意到矩阵乘积的结果中只有第四列才有变化,于是,当将UV和M进行比较时,唯一的RMSE变化来自第四列。

第四列对平方和计算的贡献是:

( 4 − ( y + 1 ) ) 2 + ( 4 − ( y + 1 ) ) 2 + ( 1 − ( y + 1 ) ) 2 + ( 3 − ( y + 1 ) ) 2 + ( 4 − ( y + 1 ) ) 2 (4-(y+1))^2+(4-(y+1))^2+(1-(y+1))^2+(3-(y+1))^2+(4-(y+1))^2 (4(y+1))2+(4(y+1))2+(1(y+1))2+(3(y+1))2+(4(y+1))2

该表达式可以简化为:

( 3 − y ) 2 + ( 3 − y ) 2 + y 2 + ( 2 − y ) 2 + ( 3 − y ) 2 (3-y)^2+(3-y)^2+y^2+(2-y)^2+(3-y)^2 (3y)2+(3y)2+y2+(2y)2+(3y)2

令其导数为0,于是有:

− 2 ( 3 − y ) − 2 ( 3 − y ) + 2 y − 2 ( 2 − y ) − 2 ( 3 − y ) = 0 -2(3-y)-2(3-y)+2y-2(2-y)-2(3-y)=0 2(3y)2(3y)+2y2(2y)2(3y)=0

对上式化简有:

− 2 ( 11 − 5 y ) = 0 -2(11-5y)=0 2(115y)=0

于是, y = 2.2 y=2.2 y=2.2

习题9.4.2

矩阵M:

[ 5 2 4 4 3 3 1 2 4 1 2 3 1 4 2 5 4 3 5 4 4 5 4 ] \begin{bmatrix} 5&2&4&4&3\\3&1&2&4&1\\2&&3&1&4\\2&5&4&3&5\\4&4&5&4& \end{bmatrix} 53224215442345441343145

对U、V的初始值都设为相同值x,新的U、V矩阵如下所示:

[ x x x x x x x x x x ] × [ x x x x x x x x x x ] = [ 2 x 2 2 x 2 2 x 2 2 x 2 2 x 2 2 x 2 2 x 2 2 x 2 2 x 2 2 x 2 2 x 2 2 x 2 2 x 2 2 x 2 2 x 2 2 x 2 2 x 2 2 x 2 2 x 2 2 x 2 2 x 2 2 x 2 2 x 2 2 x 2 2 x 2 ] \begin{bmatrix} x&x\\x&x\\x&x\\x&x\\x&x \end{bmatrix} × \begin{bmatrix} x&x&x&x&x\\x&x&x&x&x \end{bmatrix}= \begin{bmatrix} 2x^2&2x^2&2x^2&2x^2&2x^2\\2x^2&2x^2&2x^2&2x^2&2x^2\\2x^2&2x^2&2x^2&2x^2&2x^2\\2x^2&2x^2&2x^2&2x^2&2x^2\\2x^2&2x^2&2x^2&2x^2&2x^2 \end{bmatrix} xxxxxxxxxx ×[xxxxxxxxxx]= 2x22x22x22x22x22x22x22x22x22x22x22x22x22x22x22x22x22x22x22x22x22x22x22x22x2

M − U V = [ 5 − 2 x 2 2 − 2 x 2 4 − 2 x 2 4 − 2 x 2 3 − 2 x 2 3 − 2 x 2 1 − 2 x 2 2 − 2 x 2 4 − 2 x 2 1 − 2 x 2 2 − 2 x 2 3 − 2 x 2 1 − 2 x 2 4 − 2 x 2 2 − 2 x 2 5 − 2 x 2 4 − 2 x 2 3 − 2 x 2 5 − 2 x 2 4 − 2 x 2 4 − 2 x 2 5 − 2 x 2 4 − 2 x 2 ] M-UV= \begin{bmatrix} 5-2x^2&2-2x^2&4-2x^2&4-2x^2&3-2x^2 \\ 3-2x^2&1-2x^2&2-2x^2&4-2x^2&1-2x^2 \\2-2x^2&&3-2x^2&1-2x^2&4 -2x^2 \\2-2x^2&5-2x^2&4-2x^2&3-2x^2&5 -2x^2 \\4-2x^2&4-2x^2&5-2x^2&4-2x^2& \end{bmatrix} MUV= 52x232x222x222x242x222x212x252x242x242x222x232x242x252x242x242x212x232x242x232x212x242x252x2

求M-NV的每一个元素的平方和,除以23再开方,得到RMSE。

当RMSE取得最小值时,x即为所求,为1.2769。

求解程序:

syms x 

F = sqrt((3*(1-2*x^2)^2+4*(2-2*x^2)^2+4*(3-2*x^2)^2+8*(4-2*x^2)^2+4*(5-2*x^2)^2)/23);

Feq = diff(F);

Feq=@(x)eval(Feq);

[x,fval,exitflag] = fzero(Feq,rand())

习题9.4.3

矩阵M:

[ 5 2 4 4 3 3 1 2 4 1 2 3 1 4 2 5 4 3 5 4 4 5 4 ] \begin{bmatrix} 5&2&4&4&3\\3&1&2&4&1\\2&&3&1&4\\2&5&4&3&5\\4&4&5&4& \end{bmatrix} 53224215442345441343145

a)

重新考虑u11的值,新的U、V矩阵如下所示:

[ x 1 1 1 1.178 1 1 1 1 1 ] × [ 1.617 1 1 1 1 1 1 1 1 1 ] = [ 1.617 x + 1 x + 1 x + 1 x + 1 x + 1 2.617 2 2 2 2 1.905 2.178 2.178 2.178 2.178 2.617 2 2 2 2 2.617 2 2 2 2 ] \begin{bmatrix} x&1\\1&1\\1.178&1\\1&1\\1&1 \end{bmatrix} × \begin{bmatrix} 1.617&1&1&1&1\\1&1&1&1&1 \end{bmatrix}= \begin{bmatrix} 1.617x+1 & x+1 & x+1 & x+1 & x+1 \\ 2.617 & 2 & 2& 2& 2 \\ 1.905 & 2.178 & 2.178 & 2.178 & 2.178 \\ 2.617 & 2 & 2& 2& 2 \\ 2.617 & 2 & 2& 2& 2 \end{bmatrix} x11.1781111111 ×[1.617111111111]= 1.617x+12.6171.9052.6172.617x+122.17822x+122.17822x+122.17822x+122.17822

注意到矩阵乘积的结果中只有第一行才有变化,于是,当将UV和M进行比较时,唯一的RMSE变化来自第一行。

第一行对平方和计算的贡献是:

( 5 − ( 1.617 x + 1 ) ) 2 + ( 2 − ( x + 1 ) ) 2 + ( 4 − ( x + 1 ) ) 2 + ( 4 − ( x + 1 ) ) 2 + ( 3 − ( x + 1 ) ) 2 (5-(1.617x+1))^2+(2-(x+1))^2+(4-(x+1))^2+(4-(x+1))^2+(3-(x+1))^2 (5(1.617x+1))2+(2(x+1))2+(4(x+1))2+(4(x+1))2+(3(x+1))2

该表达式可以简化为:

( 4 − 1.617 x ) 2 + ( 1 − x ) 2 + ( 3 − x ) 2 + ( 3 − x ) 2 + ( 2 − x ) 2 (4-1.617x)^2+(1-x)^2+(3-x)^2+(3-x)^2+(2-x)^2 (41.617x)2+(1x)2+(3x)2+(3x)2+(2x)2

令其导数为0,于是有:

− 2 ( 4 − 1.617 x ) − 2 ( 1 − x ) − 2 ( 3 − x ) − 2 ( 3 − x ) − 2 ( 2 − x ) = 0 -2(4-1.617x)-2(1-x)-2(3-x)-2(3-x)-2(2-x)=0 2(41.617x)2(1x)2(3x)2(3x)2(2x)=0

对上式化简有:

− 2 ( 13 − 5.617 x ) = 0 -2(13-5.617x)=0 2(135.617x)=0

于是, x = 2.314 x=2.314 x=2.314

b)

考虑u52的值,新的U、V矩阵如下所示:

[ 2.314 1 1 1 1.178 1 1 1 1 x ] × [ 1.617 1 1 1 1 1 1 1 1 1 ] = [ 4.7417 3.314 3.314 3.314 3.314 2.617 2 2 2 2 1.905 2.178 2.178 2.178 2.178 2.617 2 2 2 2 x + 1.617 x + 1 x + 1 x + 1 x + 1 ] \begin{bmatrix} 2.314&1\\1&1\\1.178&1\\1&1\\1&x \end{bmatrix} × \begin{bmatrix} 1.617&1&1&1&1\\1&1&1&1&1 \end{bmatrix}= \begin{bmatrix} 4.7417 & 3.314 & 3.314 & 3.314 & 3.314 \\ 2.617 & 2 & 2& 2& 2 \\ 1.905 & 2.178 & 2.178 & 2.178 & 2.178 \\ 2.617 & 2 & 2& 2& 2 \\ x+1.617 & x+1 & x+1 & x+1 & x+1 \end{bmatrix} 2.31411.178111111x ×[1.617111111111]= 4.74172.6171.9052.617x+1.6173.31422.1782x+13.31422.1782x+13.31422.1782x+13.31422.1782x+1

注意到矩阵乘积的结果中只有第五行才有变化,于是,当将UV和M进行比较时,唯一的RMSE变化来自第五行。

第五行对平方和计算的贡献是:

( 4 − ( x + 1.617 ) ) 2 + ( 4 − ( x + 1 ) ) 2 + ( 5 − ( x + 1 ) ) 2 + ( 4 − ( x + 1 ) ) 2 (4-(x+1.617))^2+(4-(x+1))^2+(5-(x+1))^2+(4-(x+1))^2 (4(x+1.617))2+(4(x+1))2+(5(x+1))2+(4(x+1))2

该表达式可以简化为:

( 2.383 − x ) 2 + ( 3 − x ) 2 + ( 4 − x ) 2 + ( 3 − x ) 2 (2.383-x)^2+(3-x)^2+(4-x)^2+(3-x)^2 (2.383x)2+(3x)2+(4x)2+(3x)2

令其导数为0,于是有:

− 2 ( 2.383 − x ) − 2 ( 3 − x ) − 2 ( 4 − x ) − 2 ( 3 − x ) = 0 -2(2.383-x)-2(3-x)-2(4-x)-2(3-x)=0 2(2.383x)2(3x)2(4x)2(3x)=0

对上式化简有:

− 2 ( 12.383 − 4 x ) = 0 -2(12.383-4x)=0 2(12.3834x)=0

于是, x = 3.096 x=3.096 x=3.096

c)

考虑v22的值,新的U、V矩阵如下所示:

[ 2.314 1 1 1 1.178 1 1 1 1 3.096 ] × [ 1.617 1 1 1 1 1 x 1 1 1 ] = [ 4.742 x + 2.314 3.314 3.314 3.314 2.617 x + 1 2 2 2 1.905 x + 1.178 2.178 2.178 2.178 2.617 x + 1 2 2 2 4.713 3.096 x + 1 4.096 4.096 4.096 ] \begin{bmatrix} 2.314&1\\1&1\\1.178&1\\1&1\\1&3.096 \end{bmatrix} × \begin{bmatrix} 1.617&1&1&1&1\\ 1&x&1&1&1 \end{bmatrix}= \begin{bmatrix} 4.742 & x+2.314 & 3.314 & 3.314 & 3.314 \\ 2.617 & x+1 & 2& 2& 2 \\ 1.905 & x+1.178 & 2.178 & 2.178 & 2.178 \\ 2.617 & x+1 & 2& 2& 2 \\ 4.713 & 3.096x+1 & 4.096 & 4.096 & 4.096 \end{bmatrix} 2.31411.1781111113.096 ×[1.61711x111111]= 4.7422.6171.9052.6174.713x+2.314x+1x+1.178x+13.096x+13.31422.17824.0963.31422.17824.0963.31422.17824.096

注意到矩阵乘积的结果中只有第2列才有变化,于是,当将UV和M进行比较时,唯一的RMSE变化来自第2列。

第2列对平方和计算的贡献是:

( 2 − ( x + 2.314 ) ) 2 + ( 1 − ( x + 1 ) ) 2 + ( 5 − ( x + 1 ) ) 2 + ( 4 − ( 3.096 x + 1 ) ) 2 (2-(x+2.314))^2+(1-(x+1))^2+(5-(x+1))^2+(4-(3.096x+1))^2 (2(x+2.314))2+(1(x+1))2+(5(x+1))2+(4(3.096x+1))2

该表达式可以简化为:

( − 0.314 − x ) 2 + x 2 + ( 4 − x ) 2 + ( 3 − 3.096 x ) 2 (-0.314-x)^2+x^2+(4-x)^2+(3-3.096x)^2 (0.314x)2+x2+(4x)2+(33.096x)2

令其导数为0,于是有:

− 2 ( − 0.314 − x ) + 2 x − 2 ( 4 − x ) − 2 ( 3 − 3.096 x ) = 0 -2(-0.314-x)+2x-2(4-x)-2(3-3.096x)=0 2(0.314x)+2x2(4x)2(33.096x)=0

对上式化简有:

− 2 ( 6.686 − 6.096 x ) = 0 -2(6.686-6.096x)=0 2(6.6866.096x)=0

于是, x = 1.097 x=1.097 x=1.097

习题9.4.4

将9.4.4节的 y y y的公式中的 i i i全换成 j j j即可。

习题9.4.5

矩阵M:

[ 5 2 4 4 3 3 1 2 4 1 2 3 1 4 2 5 4 3 5 4 4 5 4 ] \begin{bmatrix} 5&2&4&4&3\\3&1&2&4&1\\2&&3&1&4\\2&5&4&3&5\\4&4&5&4 \end{bmatrix} 53224215442345441343145

a)

归一化处理后的矩阵M:

[ 1.47 − 1.1375 0.07 − 0.825 0.87 − 0.7375 − 0.53 − 1.425 − 0.43 0.17 1.275 − 1.73 1.6625 − 0.13 0.975 − 0.18 0.2125 0.42 ] \begin{bmatrix} 1.47 & -1.1375 & 0.07 & -0.825 \\ 0.87 & -0.7375 & -0.53 & -1.425\\ -0.43 && 0.17 & 1.275\\ -1.73 & 1.6625 & -0.13 & 0.975\\ -0.18 & 0.2125 & 0.42 & \end{bmatrix} 1.470.870.431.730.181.13750.73751.66250.21250.070.530.170.130.420.8251.4251.2750.975

b)

归一化处理后的矩阵M:

[ 1.45 − 1.35 0.05 0.45 − 0.6 0.85 − 0.95 − 0.55 1.85 − 1.2 − 0.3875 0.2125 − 1.3875 1.5625 − 1.75 1.45 − 0.15 − 0.75 1.2 − 0.2 0 0.4 − 0.2 ] \begin{bmatrix} 1.45 & -1.35 & 0.05 & 0.45 & -0.6\\ 0.85 & -0.95 & -0.55 & 1.85 & -1.2\\ -0.3875 && 0.2125 & -1.3875 & 1.5625\\ -1.75 & 1.45 & -0.15 & -0.75 & 1.2\\ -0.2&0&0.4&-0.2 \end{bmatrix} 1.450.850.38751.750.21.350.951.4500.050.550.21250.150.40.451.851.38750.750.20.61.21.56251.2

可以看出,两种处理之后的结果不同。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐