Skip to content

Commit 8153900

Browse files
feat: add new correlation metric
--- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: passed - task: lint_package_json status: na - task: lint_repl_help status: passed - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: passed - task: lint_javascript_tests status: passed - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: passed - task: lint_license_headers status: passed ---
1 parent 5e9e1ba commit 8153900

File tree

10 files changed

+31
-25
lines changed

10 files changed

+31
-25
lines changed

lib/node_modules/@stdlib/ml/base/cluster/kmeans/metrics/README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,12 @@ Returns a list of KMeans distance metrics.
4646

4747
```javascript
4848
var out = metrics();
49-
// e.g., returns [ 'euclidean', 'cosine', 'cityblock' ]
49+
// e.g., returns [ 'sqeuclidean', 'cosine', 'cityblock' , 'correlation' ]
5050
```
5151

5252
The output array contains the following metrics:
5353

54-
- `euclidean`: squared euclidean distance.
54+
- `sqeuclidean`: squared euclidean distance.
5555
- `cosine`: cosine distance.
5656
- `cityblock`: cityblock (taxicab) distance.
5757

@@ -81,7 +81,7 @@ var metrics = require( '@stdlib/ml/base/cluster/kmeans/metrics' );
8181

8282
var isMetric = contains( metrics() );
8383

84-
var bool = isMetric( 'euclidean' );
84+
var bool = isMetric( 'sqeuclidean' );
8585
// returns true
8686

8787
bool = isMetric( 'cosine' );
@@ -125,14 +125,14 @@ bool = isMetric( 'beep' );
125125

126126
An enumeration of KMeans distance metrics with the following fields:
127127

128-
- **STDLIB_ML_CLUSTER_KMEANS_EUCLIDEAN**: squared euclidean distance.
128+
- **STDLIB_ML_CLUSTER_KMEANS_SQEUCLIDEAN**: squared euclidean distance.
129129
- **STDLIB_ML_CLUSTER_KMEANS_COSINE**: cosine distance.
130130
- **STDLIB_ML_CLUSTER_KMEANS_CITYBLOCK**: cityblock (taxicab) distance.
131131

132132
```c
133133
#include "stdlib/ml/base/cluster/kmeans/metrics.h"
134134

135-
const enum STDLIB_ML_CLUSTER_KMEANS_METRIC v = STDLIB_ML_CLUSTER_KMEANS_EUCLIDEAN;
135+
const enum STDLIB_ML_CLUSTER_KMEANS_METRIC v = STDLIB_ML_CLUSTER_KMEANS_SQEUCLIDEAN;
136136
```
137137

138138
</section>

lib/node_modules/@stdlib/ml/base/cluster/kmeans/metrics/docs/repl.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
Examples
1717
--------
1818
> var out = {{alias}}()
19-
[ 'euclidean', 'cosine', 'cityblock' ]
19+
[ 'sqeuclidean', 'cosine', 'cityblock', 'correlation' ]
2020

2121
See Also
2222
--------

lib/node_modules/@stdlib/ml/base/cluster/kmeans/metrics/docs/types/index.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
*
2626
* @example
2727
* var list = metrics();
28-
* // e.g., returns [ 'euclidean', 'cosine', 'cityblock' ]
28+
* // e.g., returns [ 'sqeuclidean', 'cosine', 'cityblock', 'correlation' ]
2929
*/
3030
declare function metrics(): Array<string>;
3131

lib/node_modules/@stdlib/ml/base/cluster/kmeans/metrics/examples/index.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,16 @@
2121
var contains = require( '@stdlib/array/base/assert/contains' ).factory;
2222
var metrics = require( './../lib' );
2323

24-
var isAlternative = contains( metrics() );
24+
var isMetric = contains( metrics() );
2525

26-
var bool = isAlternative( 'euclidean' );
26+
var bool = isMetric( 'sqeuclidean' );
2727
console.log( bool );
2828
// => true
2929

30-
bool = isAlternative( 'cosine' );
30+
bool = isMetric( 'cosine' );
3131
console.log( bool );
3232
// => true
3333

34-
bool = isAlternative( 'beep' );
34+
bool = isMetric( 'beep' );
3535
console.log( bool );
3636
// => false

lib/node_modules/@stdlib/ml/base/cluster/kmeans/metrics/include/stdlib/ml/cluster/base/kmeans/metrics.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
* Enumeration of distance metrics.
2424
*/
2525
enum STDLIB_ML_CLUSTER_KMEANS_METRICS {
26-
// Euclidean distance:
27-
STDLIB_ML_CLUSTER_KMEANS_EUCLIDEAN = 0,
26+
// Squared euclidean distance:
27+
STDLIB_ML_CLUSTER_KMEANS_SQEUCLIDEAN = 0,
2828

2929
// Cosine distance:
3030
STDLIB_ML_CLUSTER_KMEANS_COSINE,
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
[
2-
"euclidean",
2+
"sqeuclidean",
33
"cosine",
4-
"cityblock"
4+
"cityblock",
5+
"correlation"
56
]

lib/node_modules/@stdlib/ml/base/cluster/kmeans/metrics/lib/enum.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
*
2626
* ## Notes
2727
*
28-
* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `EUCLIDEAN == 0`). Instead, the object should be used in an opaque manner.
28+
* - Downstream consumers of this mapping should **not** rely on specific integer values (e.g., `SQEUCLIDEAN == 0`). Instead, the object should be used in an opaque manner.
2929
* - The main purpose of this function is JavaScript and C inter-operation.
3030
*
3131
* @returns {Object} object mapping supported metrics to integer values
@@ -37,14 +37,17 @@
3737
function enumerated() {
3838
// NOTE: the following should match the C `metrics.h` enumeration!!!!
3939
return {
40-
// Euclidean distance:
41-
'euclidean': 0,
40+
// Squared euclidean distance:
41+
'sqeuclidean': 0,
4242

4343
// Cosine distance:
4444
'cosine': 1,
4545

4646
// Cityblock (taxicab) distance:
47-
'cityblock': 2
47+
'cityblock': 2,
48+
49+
// Correlation distance:
50+
'correlation': 3
4851
};
4952
}
5053

lib/node_modules/@stdlib/ml/base/cluster/kmeans/metrics/lib/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
* var metrics = require( '@stdlib/ml/base/cluster/kmeans/metrics' );
2828
*
2929
* var list = metrics();
30-
* // e.g., returns [ 'euclidean', 'cosine', 'cityblock' ]
30+
* // e.g., returns [ 'sqeuclidean', 'cosine', 'cityblock' , 'correlation' ]
3131
*/
3232

3333
// MODULES //

lib/node_modules/@stdlib/ml/base/cluster/kmeans/metrics/lib/main.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ var DATA = require( './data.json' );
3232
*
3333
* @example
3434
* var list = metrics();
35-
* // e.g., returns [ 'euclidean', 'cosine', 'cityblock' ]
35+
* // e.g., returns [ 'sqeuclidean', 'cosine', 'cityblock' , 'correlation' ]
3636
*/
3737
function metrics() {
3838
return DATA.slice();

lib/node_modules/@stdlib/ml/base/cluster/kmeans/metrics/test/test.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,10 @@ tape( 'the function returns a list of metrics', function test( t ) {
3939
var actual;
4040

4141
expected = [
42-
'euclidean',
42+
'sqeuclidean',
4343
'cosine',
44-
'cityblock'
44+
'cityblock',
45+
'correlation'
4546
];
4647
actual = metrics();
4748

@@ -62,9 +63,10 @@ tape( 'attached to the main function is an `enum` method to return an object map
6263

6364
// List of values which should be supported...
6465
o = [
65-
'euclidean',
66+
'sqeuclidean',
6667
'cosine',
67-
'cityblock'
68+
'cityblock',
69+
'correlation'
6870
];
6971
for ( i = 0; i < o.length; i++ ) {
7072
t.strictEqual( hasOwnProp( obj, o[ i ] ), true, 'has property `' + o[ i ] + '`' );

0 commit comments

Comments
 (0)