本文簡要介紹python語言中 sklearn.metrics.DistanceMetric
的用法。
用法:
class sklearn.metrics.DistanceMetric
DistanceMetric 類
此類為快速距離度量函數提供了統一的接口。可以通過
get_metric
類方法和指標字符串標識符訪問各種指標(見下文)。例子:
>>> from sklearn.metrics import DistanceMetric >>> dist = DistanceMetric.get_metric('euclidean') >>> X = [[0, 1, 2], [3, 4, 5]] >>> dist.pairwise(X) array([[ 0. , 5.19615242], [ 5.19615242, 0. ]])
可用指標
下麵列出了字符串度量標識符和相關的距離度量類:
用於實值向量空間的指標:
identifier
類名稱
args
距離函數
“euclidean”
EuclideanDistance
sqrt(sum((x - y)^2))
“manhattan”
ManhattanDistance
sum(|x - y|)
“chebyshev”
ChebyshevDistance
max(|x - y|)
“minkowski”
MinkowskiDistance
p, w
sum(w * |x - y|^p)^(1/p)
“wminkowski”
WMinkowskiDistance
p, w
sum(|w * (x - y)|^p)^(1/p)
“seuclidean”
SEuclideanDistance
V
sqrt(sum((x - y)^2 / V))
“mahalanobis”
MahalanobisDistance
Ⅴ或Ⅵ
sqrt((x - y)' V^-1 (x - y))
請注意,帶有非無
w
參數的 “minkowski” 實際上會使用w=w ** (1/p)
調用WMinkowskiDistance
,以便與 scipy 1.8 及更高版本的參數化保持一致。用於二維向量空間的度量:請注意,harsine 距離度量需要 [latitude, longitude] 形式的數據,輸入和輸出均以弧度為單位。
identifier
類名稱
距離函數
“haversine”
HaversineDistance
2 arcsin(sqrt(sin^2(0.5*dx) + cos(x1)cos(x2)sin^2(0.5*dy)))
用於整數值向量空間的度量:雖然用於整數值向量,但對於實值向量來說,這些也是有效的度量。
identifier
類名稱
距離函數
“hamming”
HammingDistance
N_unequal(x, y) / N_tot
“canberra”
CanberraDistance
sum(|x - y| / (|x| + |y|))
“braycurtis”
BrayCurtisDistance
sum(|x - y|) / (sum(|x|) + sum(|y|))
用於布爾值向量空間的指標:任何非零條目都被評估為“True”。在下麵的列表中,使用了以下縮寫:
N : 維數
NTT:兩個值都為 True 的暗點數
NTF:第一個值為 True,第二個值為 False 的暗點數
NFT:第一個值為 False,第二個值為 True 的點數
NFF:兩個值都為 False 的暗點數
NNEQ:不等維數,NNEQ = NTF + NFT
NNZ:非零維數,NNZ = NTF + NFT + NTT
identifier
類名稱
距離函數
“jaccard”
JaccardDistance
NNEQ /NNZ
“matching”
MatchingDistance
NNEQ /N
“dice”
DiceDistance
NNEQ /(NTT + NNZ)
“kulsinski”
KulsinskiDistance
(NNEQ + N - NTT) /(NNEQ + N)
“rogerstanimoto”
RogersTanimotoDistance
2 * NNEQ /(N + NNEQ)
“russellrao”
RussellRaoDistance
(N - NTT) /N
“sokalmichener”
SokalMichenerDistance
2 * NNEQ /(N + NNEQ)
“sokalsneath”
SokalSneathDistance
NNEQ /(NNEQ + 0.5 * NTT)
用戶定義距離:
identifier
類名稱
args
“pyfunc”
PyFuncDistance
func
這裏
func
是一個函數,它接受兩個一維 numpy 數組,並返回一個距離。請注意,為了在 BallTree 中使用,距離必須是真正的度量:即它必須滿足以下屬性非負性:d(x, y) >= 0
身份:d(x, y) = 0 當且僅當 x == y
對稱性:d(x, y) = d(y, x)
三角不等式:d(x, y) + d(y, z) >= d(x, z)
由於調用 python 函數涉及到 Python 對象開銷,這將相當慢,但它與其他距離具有相同的縮放比例。
相關用法
- Python sklearn DictVectorizer用法及代碼示例
- Python sklearn DictVectorizer.restrict用法及代碼示例
- Python sklearn DictionaryLearning用法及代碼示例
- Python sklearn DummyRegressor用法及代碼示例
- Python sklearn DummyClassifier用法及代碼示例
- Python sklearn DotProduct用法及代碼示例
- Python sklearn DecisionTreeClassifier用法及代碼示例
- Python sklearn DetCurveDisplay.from_predictions用法及代碼示例
- Python sklearn DBSCAN用法及代碼示例
- Python sklearn DetCurveDisplay.from_estimator用法及代碼示例
- Python sklearn DetCurveDisplay用法及代碼示例
- Python sklearn DecisionTreeRegressor用法及代碼示例
- Python sklearn jaccard_score用法及代碼示例
- Python sklearn WhiteKernel用法及代碼示例
- Python sklearn CalibrationDisplay.from_predictions用法及代碼示例
- Python sklearn VotingRegressor用法及代碼示例
- Python sklearn gen_batches用法及代碼示例
- Python sklearn ExpSineSquared用法及代碼示例
- Python sklearn MDS用法及代碼示例
- Python sklearn adjusted_rand_score用法及代碼示例
- Python sklearn MLPClassifier用法及代碼示例
- Python sklearn train_test_split用法及代碼示例
- Python sklearn RandomTreesEmbedding用法及代碼示例
- Python sklearn GradientBoostingRegressor用法及代碼示例
- Python sklearn GridSearchCV用法及代碼示例
注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.metrics.DistanceMetric。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。