特征计算 - Jaccard 相似系数与 Python 代码实现
生活随笔
收集整理的這篇文章主要介紹了
特征计算 - Jaccard 相似系数与 Python 代码实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Jaccard 相似系數又稱為Jaccard相似性度量(Jaccard系數,Jaccard 指數,Jaccard index)。用于比較有限樣本集之間的相似性與差異性。Jaccard系數值越大,樣本相似度越高。定義為相交的大小除以樣本集合的大小:
(若A B均為空,那么定義J(A,B)= 1)
與 Jaccard 相似系數相對的指標是Jaccard 距離(Jaccard distance),定義為 1- Jaccard系數,即:
Python 代碼:
data_school_list = data['school'].unique().tolist() #school列表 edu_similar=[] l = len(data_school_list)#定義循環次數 for i in data_school_list:try:print(l)#顯示當前計算的進度Jaccard_list = []#建立一個空白列表,用于存儲Jaccar系數true_id = data.loc[data['school'] == i,'id'].tolist() #id列表for m in range(len(true_id)):true_ids = copy.copy(true_id)#復制id列表true_ids.pop(m)for n in range(len(true_ids)):data_id_x = data.loc[data['id']== true_id[m],'school'].tolist()data_id_y = data.loc[data['id']== true_id[n],'school'].tolist()union_set = len(list(set(data_id_x)|set(data_id_y)))#并集長度intersection_set = len(list(set(data_id_x)&set(data_id_y)))#交集長度Jaccard = intersection_set/union_set #Jaccard IndexJaccard_list.append(Jaccard)#插入listJaccard_array = np.array(Jaccard_list)Jaccard_mean = np.mean(Jaccard_array)Jaccard_std = np.std(Jaccard_array)Jaccard_list = [i,Jaccard_mean,Jaccard_std]edu_similar.append(Jaccard_list)l-=1#l-1進行下一個循環,直到數據中每一條都計算完畢except:Jaccard_list = [i,0,0]edu_similar.append(Jaccard_list)l-=1?
總結
以上是生活随笔為你收集整理的特征计算 - Jaccard 相似系数与 Python 代码实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 李宏毅机器学习(十一)meta-lear
- 下一篇: 聚类分析 - K-means - Pyt