原始碼
import math
film = [5, 7, 8, 10, 2] # 玩命關頭特徵值
film_titles = [ # 比較影片片名
'復仇者聯盟',
'決戰中途島',
'冰雪奇緣',
'雙子殺手',
]
film_features = [ # 比較影片特徵值
[2, 8, 8, 5, 6],
[5, 6, 9, 2, 5],
[8, 2, 0, 0, 10],
[5, 8, 8, 8, 3],
]
dist = [] # 儲存影片相似度值
for f in film_features:
distances = 0
for i in range(len(f)):
distances += (film[i] - f[i]) ** 2
dist.append(math.sqrt(distances))
min = min(dist) # 求最小值
min_index = dist.index(min) # 最小值的索引
print("與玩命關頭最相似的電影 : ", film_titles[min_index])
print("相似度值 : ", dist[min_index])
for i in range(len(dist)):
print("影片 : %s, 相似度 : %6.2f" % (film_titles[i], dist[i]))
基本測試
import math
film = [5, 7, 8, 10, 2] # 玩命關頭特徵值
film_titles = [ # 比較影片片名
'復仇者聯盟',
'決戰中途島',
'冰雪奇緣',
'雙子殺手',
]
film_features = [ # 比較影片特徵值
[2, 8, 8, 5, 6],
[5, 6, 9, 2, 5],
[8, 2, 0, 0, 10],
[5, 8, 8, 8, 3],
]
dist=[]
num=0
for f in film_features:
print("這是file_features[{}]{}".format(num,f))
num=num+1
計算list[0]的平方和
import math
film = [5, 7, 8, 10, 2] # 玩命關頭特徵值
film_titles = [ # 比較影片片名
'復仇者聯盟',
'決戰中途島',
'冰雪奇緣',
'雙子殺手',
]
film_features = [ # 比較影片特徵值
[2, 8, 8, 5, 6],
[5, 6, 9, 2, 5],
[8, 2, 0, 0, 10],
[5, 8, 8, 8, 3],
]
distances=0
for i in range(len(film)):
distances=distances+(film[i]-film_features[0][i])**2
a_squr=math.sqrt(distances)
print(a_squr)
使用二層迴圈計算
import math
film = [5, 7, 8, 10, 2] # 玩命關頭特徵值
film_titles = [ # 比較影片片名
'復仇者聯盟',
'決戰中途島',
'冰雪奇緣',
'雙子殺手',
]
film_features = [ # 比較影片特徵值
[2, 8, 8, 5, 6],
[5, 6, 9, 2, 5],
[8, 2, 0, 0, 10],
[5, 8, 8, 8, 3],
]
dist = [] # 儲存影片相似度值
for f in film_features:
distances = 0
for i in range(len(f)):
distances += (film[i] - f[i]) ** 2
dist.append(math.sqrt(distances))
print(dist)
print(type(dist))
print(type(distances))
沒有留言:
張貼留言