1/*2
特徵向量相似度和距離的計算34
相似度:
5·夾角余弦
6·相關係數
7·dice
8·jaccard910
距離11
·明氏距離
12·歐氏距離
13·馬氏距離
14·jffreys & matusita 距離
15·mahalanobis 距離,未實現,協方差矩陣
16·camberra 距離(lance 距離,williams 距離)
17*/
1819
#include
<
iostream
>
20#include
<
vector
>
21#include
<
cassert
>
22#include
<
cmath
>
23using
namespace
std;
2425
double
dotproduct(
const
vector
<
double
>&
v1,
const
vector
<
double
>&
v2)26
33return
ret;34}
3536
double
module(
const
vector
<
double
>&
v)37
43return
sqrt(ret);44}
4546
//夾角余弦
47double
cosine(
const
vector
<
double
>&
v1,
const
vector
<
double
>&
v2)48
5253
double
mean(
const
vector
<
double
>&
v)54
61return
ret
/v.size();62}
6364
double
cov(
const
vector
<
double
>&
v1,
const
vector
<
double
>&
v2)65
7475
return
ret
/(v1.size() -1
);76}77
78//
相關係數
79double
coefficient(
const
vector
<
double
>&
v1,
const
vector
<
double
>&
v2)80
8485
//dice 係數
86double
dice(
const
vector
<
double
>&
v1,
const
vector
<
double
>&
v2)87
9192
//jaccard 係數
93double
jaccard(
const
vector
<
double
>&
v1,
const
vector
<
double
>&
v2)94
9899
//minkowsky 距離
100double
minkowsky(
const
vector
<
double
>&
v1,
const
vector
<
double
>&
v2,
double
m)101
108return
pow(ret,
1.0/
m);109
}110
111//
euclidean 距離
112double
euclidean(
const
vector
<
double
>&
v1,
const
vector
<
double
>&
v2)113
117118
//manhattan 距離
119double
manhattan(
const
vector
<
double
>&
v1,
const
vector
<
double
>&
v2)120
124125
//jffreys & matusita 距離
126double
jffreysmatusita(
const
vector
<
double
>&
v1,
const
vector
<
double
>&
v2)127
134return
sqrt(ret);
135}
136137
//mahalanobis 距離
138double
mahalanobis(
const
vector
<
double
>&
v1,
const
vector
<
double
>&
v2)139
143144
//camberra 距離(lance 距離,williams 距離)
145double
camberra(
const
vector
<
double
>&
v1,
const
vector
<
double
>&
v2)146
153return
ret;
154}
155156
intmain()
157;
159doubleb =
;160
vector
<
double
>
v1(a, a
+sizeof
(a)
/sizeof(*
a)), v2(b, b
+sizeof
(b)
/sizeof(*
b));
161162
cout
<<
cosine(v1, v2)
<<
endl;
163cout
<<
coefficient(v1, v2)
<<
endl;
164cout
<<
dice(v1, v2)
<<
endl;
165cout
<<
jaccard(v1, v2)
<<
endl;
166167
cout
<<
minkowsky(v1, v2,
5.0)
<<
endl;
168cout
<<
euclidean(v1, v2)
<<
endl;
169cout
<<
manhattan(v1, v2)
<<
endl;
170cout
<<
jffreysmatusita(v1, v2)
<<
endl;
171cout
<<
mahalanobis(v1, v2)
<<
endl;
172cout
<<
camberra(v1, v2)
<<
endl;
173174
return0;
175}
**於:
latex中的各種距離設定
1。頁面設定 a4 會給你乙個較小的頁面,為了使用更多的控制,可用geometry巨集包和命令 layout 2。改變長度 在latex裡改變長度的命令是 addtolength 和 setlength。latex可認的是 cm,mm,in 和pt.變數可設為負數。乙個例子是 addtolength...
獲取各種盒子的各種寬高和距離
document ready function 獲取瀏覽器顯示區域 可視區域 的高度 window height 獲取瀏覽器顯示區域 可視區域 的寬度 window width 獲取頁面的文件高度 document height 獲取頁面的文件寬度 document width 瀏覽器當前視窗文件b...
python求各種距離公式
今天乙個偶然的機會體會到了python資料運算的強大。求乙個陣列各樣本之間的距離僅簡單的幾句 就行。看來真的技術改變世界啊。廢話不多說,記下來怕以後忘記。from scipy.spatial.distance import pdist,squareform下面結合api文件標註一下具體用法 1.x ...