程序员数学
1.基础数学
2.应用数学
-程序员数学(包括:函数,微积分,概率论,线性代数)
欧氏距离
欧氏距离公式以及具体的描述
如题:
用户对某电影的评分如下:
user | score |
---|---|
王** | 5 |
李** | 4 |
赵** | 3 |
计算王**、李**俩个人的距离 (一般用于用户画像)
解:
设L为所求的距离
L>0
L = sqrt((5-4)^ 2)
L = 1
平方再开根是为了确保距离不为 负数
那么我们再进一步
如题:
用户对电影的评分如下:
user | film1 | film2 |
---|---|---|
王** | 5 | 4 |
李** | 4 | 3 |
赵** | 3 | 2 |
计算王、李俩个人的距离
解:
设L为所求的距离
L>0
L = sqrt((5 - 4)^2 +(4 - 3)^2)
L ≈ 1.41
当数据中出现空或者没有数据时
如题:
用户对电影的评分如下:
user | film1 | film2 | film3 | film4 |
---|---|---|---|---|
王** | 5 | 4 | 3 | 2 |
李** | 4 | 3 | - | - |
赵** | 3 | 2 | 4 | 3 |
计算王*、李*俩个人的距离
王*、李* 的L距离
L = sqrt((1/2)*(5 - 4)^2 +(1/2)*(4 - 3)^2)
L = 1
王* 、赵 *的L距离
L = sqrt((1/4)*(5 - 3)^2 +(1/4)*(4 - 2)^2 +(1/4)*(3 - 4)^2 +(1/4)*(2 - 3)^2)
L = (1/2)sqrt(10)
L ≈ 1.6
如题:
用户对电影的评分如下:
user | film1 | film2 | film3 | film4 |
---|---|---|---|---|
王** | 5 | 4 | 3 | 2 |
李** | 4 | 3 | - | - |
赵** | 3 | 2 | 4 | 3 |
电影权重 | 0.3 | 0.3 | 0.3 | 0.1 |
计算王*、李*俩个人的距离
权重相加=1
需要先修正王*、李*权重
王:0.3/(0.3+0.3)= 0.5
李:0.3/(0.3+0.3)= 0.5
如下:
user | film1 | film2 | film3 | film4 |
---|---|---|---|---|
王** | 5 | 4 | 3 | 2 |
李** | 4 | 3 | - | - |
赵** | 3 | 2 | 4 | 3 |
权重 | 0.3 | 0.3 | 0.3 | 0.1 |
王李修正权重 | 0.5 | 0.5 | - | - |
王*、李* 的L距离
L = sqrt(0.5 * (5 - 4)^2 + 0.5 * (4 - 3)^2)
L = 1
王*、赵* 的L距离
L = sqrt(0.3 * (5 - 3)^2 + 0.3 * (4 - 2)^2 + 0.3 * (3 - 4)^2 + 0.1 * (2 - 3)^2
L = 1.8
处理数据单位不一致时
如题:
原始数据如下:
user | 身高(cm) | 体重(kg) |
---|---|---|
王** | 160 | 60 |
李** | 180 | 65 |
计算王*、李*俩个人的距离
先修正数据引入标准的平均值
user | 身高(cm) | 体重(kg) |
---|---|---|
王** | 160 | 60 |
李** | 180 | 65 |
平均值 | 170 | 65 |
修正小李 160/170=0.94 60/65 = 0.92
修正小李 180/170=1.06 65/65 = 1
得
user | 身高(cm) | 体重(kg) |
---|---|---|
王** | 160 | 60 |
李** | 180 | 65 |
修正王 | 0.94 | 0.92 |
修正李 | 1.06 | 1 |
所以
王*、李* 的L距离
L = sqrt((0.94-1.06)^2 + (0.92 - 1)^2)
L = 0.144