|
@@ -7,13 +7,13 @@ const metrics = {
|
|
`,
|
|
`,
|
|
evaluate: (data, target) => Math.sqrt(data.inertia - 2 * vectorDot(data.mu.vector, target.vector) + target.sqMag),
|
|
evaluate: (data, target) => Math.sqrt(data.inertia - 2 * vectorDot(data.mu.vector, target.vector) + target.sqMag),
|
|
},
|
|
},
|
|
- bigTheta: { // inverse of arith mean of cosine similarity
|
|
|
|
- option: "Inverse Cosine Similarity (Θ)",
|
|
|
|
|
|
+ bigTheta: { // 1 - arith mean of cosine similarity
|
|
|
|
+ option: "Cosine Difference (Θ)",
|
|
displayName: String.raw`\Theta`,
|
|
displayName: String.raw`\Theta`,
|
|
displayBody: p => String.raw`
|
|
displayBody: p => String.raw`
|
|
- \frac{1}{\hat{q}\cdot\vec{\nu}\left(${p}\right)}
|
|
|
|
|
|
+ 1 - \hat{q}\cdot\vec{\nu}\left(${p}\right)
|
|
`,
|
|
`,
|
|
- evaluate: (data, target) => 1 / vectorDot(data.nu, target.unit),
|
|
|
|
|
|
+ evaluate: (data, target) => 1 - vectorDot(data.nu, target.unit),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
theta: { // angle of mean
|
|
theta: { // angle of mean
|
|
@@ -25,7 +25,7 @@ const metrics = {
|
|
evaluate: (data, target) => rad2deg * Math.acos(vectorDot(data.mu.unit, target.unit)),
|
|
evaluate: (data, target) => rad2deg * Math.acos(vectorDot(data.mu.unit, target.unit)),
|
|
},
|
|
},
|
|
phi: { // hue angle
|
|
phi: { // hue angle
|
|
- option: "Hue Difference (ϕ)",
|
|
|
|
|
|
+ option: "Hue Azimuth (ϕ)",
|
|
displayName: String.raw`\phi`,
|
|
displayName: String.raw`\phi`,
|
|
displayBody: (p, space) => String.raw`
|
|
displayBody: (p, space) => String.raw`
|
|
\angle \left(\text{oproj}_{\vec{${space === "jab" ? "J" : "L"}}}{\vec{q}}, \text{oproj}_{\vec{${space === "jab" ? "J" : "L"}}}{\vec{\mu}\left(${p}\right)} \right)
|
|
\angle \left(\text{oproj}_{\vec{${space === "jab" ? "J" : "L"}}}{\vec{q}}, \text{oproj}_{\vec{${space === "jab" ? "J" : "L"}}}{\vec{\mu}\left(${p}\right)} \right)
|
|
@@ -36,7 +36,7 @@ const metrics = {
|
|
},
|
|
},
|
|
},
|
|
},
|
|
delta: { // euclidean
|
|
delta: { // euclidean
|
|
- option: "Euclidean Distance (δ)",
|
|
|
|
|
|
+ option: "Euclidean (δ)",
|
|
displayName: String.raw`\delta`,
|
|
displayName: String.raw`\delta`,
|
|
displayBody: p => String.raw`
|
|
displayBody: p => String.raw`
|
|
\left|\left| \vec{q} - \vec{\mu}\left(${p}\right) \right|\right|
|
|
\left|\left| \vec{q} - \vec{\mu}\left(${p}\right) \right|\right|
|
|
@@ -44,7 +44,7 @@ const metrics = {
|
|
evaluate: (data, target) => vectorMag(data.mu.vector.map((x, i) => x - target.vector[i])),
|
|
evaluate: (data, target) => vectorMag(data.mu.vector.map((x, i) => x - target.vector[i])),
|
|
},
|
|
},
|
|
manhattan: { // manhattan distance
|
|
manhattan: { // manhattan distance
|
|
- option: "Manhattan Distance (M)",
|
|
|
|
|
|
+ option: "Manhattan (M)",
|
|
displayName: "M",
|
|
displayName: "M",
|
|
displayBody: p => String.raw`
|
|
displayBody: p => String.raw`
|
|
\sum_{i} \left| \vec{\mu}\left(${p}\right)_i - \vec{q}_i \right|
|
|
\sum_{i} \left| \vec{\mu}\left(${p}\right)_i - \vec{q}_i \right|
|
|
@@ -52,7 +52,7 @@ const metrics = {
|
|
evaluate: (data, target) => data.mu.vector.map((x, i) => Math.abs(x - target.vector[i])).reduce((x, y) => x + y),
|
|
evaluate: (data, target) => data.mu.vector.map((x, i) => Math.abs(x - target.vector[i])).reduce((x, y) => x + y),
|
|
},
|
|
},
|
|
ch: { // chebyshev
|
|
ch: { // chebyshev
|
|
- option: "Chebyshev Distance (Ч)",
|
|
|
|
|
|
+ option: "Chebyshev (Ч)",
|
|
displayName: "Ч",
|
|
displayName: "Ч",
|
|
displayBody: p => String.raw`
|
|
displayBody: p => String.raw`
|
|
\max_{i} \left| \vec{\mu}\left(${p}\right)_i - \vec{q}_i \right|
|
|
\max_{i} \left| \vec{\mu}\left(${p}\right)_i - \vec{q}_i \right|
|
|
@@ -60,7 +60,7 @@ const metrics = {
|
|
evaluate: (data, target) => Math.max(...data.mu.vector.map((x, i) => Math.abs(x - target.vector[i]))),
|
|
evaluate: (data, target) => Math.max(...data.mu.vector.map((x, i) => Math.abs(x - target.vector[i]))),
|
|
},
|
|
},
|
|
lightnessDiff: {
|
|
lightnessDiff: {
|
|
- option: "Lightness Difference (ℓ)",
|
|
|
|
|
|
+ option: "Lightness (ℓ)",
|
|
displayName: String.raw`\ell`,
|
|
displayName: String.raw`\ell`,
|
|
displayBody: (p, space) => String.raw`
|
|
displayBody: (p, space) => String.raw`
|
|
\left| \text{comp}_{\vec{${space === "jab" ? "J" : "L"}}}{\vec{q}} - \text{comp}_{\vec{${space === "jab" ? "J" : "L"}}}{\vec{\mu}\left(${p}\right)} \right|
|
|
\left| \text{comp}_{\vec{${space === "jab" ? "J" : "L"}}}{\vec{q}} - \text{comp}_{\vec{${space === "jab" ? "J" : "L"}}}{\vec{\mu}\left(${p}\right)} \right|
|