編寫**s=disfun(t,sign),其中t為資料集,sign為屬性型別,d為相似性矩陣
#num數值型
#fdc表示非對稱二元
#dc表示對稱二元
#bc表示標稱屬性
#p表示指示符
#xs表示序數屬性
s = function(t,sign)
else
else if(is.na(t[i,f]
)|is.na(t[j,f]))
else
#相異性計算
if(is.na(t[i,f]
)|is.na(t[j,f]
))else if(sign[f]
=='num'
)else if(sign[f]
=='fdc'
|sign[f]
=='dc'
|sign[f]
=='bc'
)else
}else if(sign[f]
=='xs')}
d[i,j]
= round(sum(p*distance)/sum(p),2)}}
} return(d)
}#1、書上例子
test1
"a","b","c","a"
)#標稱
test2
"優秀","一般","良好","優秀"
)#序數
test3
#數值book_test
book_test[,2]
s(book_test,c(
"bc","xs","num"
))#2、舉個栗子
t1 = c(125,48,57,147,58)
#數值t2 = c(
"優秀","良好","及格","補考","中等"
)#序數
t3 = c(1,0,1,1,0)
t4"男","女","女","男","女"
)t5 = c(
"長方形","圓形","三角形","菱形","三角形"
)mytest = data.frame(t1,t2,t3,t4,t5)
mytest[,2]
= c(5,4,2,1,3)
sign = c(
"num","xs","fdc","dc","bc"
)s(mytest,sign)
課本的例子
自己舉例
初學資料探勘 相似性度量 二
根據相似性從高到底排序。def topmatchs prefs,person,n 5,similarity sim pearson scores similarity prefs,person,other other for other in prefs if other person scores...
資料探勘學習筆記 余弦相似性
余弦相似性 余弦相似度 通過計算兩個向量的夾角余弦值來評估他們的相似性。令x,y是兩個待比較的向量,使用余弦度量作為相似性函式 其中,0度角的余弦值是1,而其他任何角度的余弦值都不大於1 並且其最小值是 1。從而兩個向量之間的角度的余弦值確定兩個向量是否大致指向相同的方向。兩個向量有相同的指向時,余...
初學資料探勘 相似性度量 二
根據相似性從高到底排序。def topmatchs prefs,person,n 5,similarity sim pearson scores similarity prefs,person,other other for other in prefs if other person scores...