Skip to content

Commit 1897007

Browse files
committed
add console logs and extract util functionalities
1 parent 85ed528 commit 1897007

File tree

2 files changed

+42
-23
lines changed

2 files changed

+42
-23
lines changed

src/index.js

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,36 @@
11
import math from 'mathjs';
22
import csvToMatrix from 'csv-to-array-matrix';
33

4-
csvToMatrix('./src/data.csv', init, ';');
4+
import {
5+
getDimension,
6+
getSubset,
7+
getMeanByVector,
8+
getStdByVector,
9+
setVector,
10+
} from './util';
511

6-
const getSubset = (matrix, selector) =>
7-
math.eval(`matrix[${selector}]`, { matrix });
8-
9-
const setVector = (matrix, index, vector) =>
10-
matrix.map((row, rowKey) => row.map((column, columnKey) => index === columnKey ? vector[rowKey][0] : column));
11-
12-
const getMeanByVector = (matrix) => {
13-
const n = getDimension(matrix, 2);
14-
const vectors = Array(n).fill().map((_, i) => getSubset(matrix, `:, ${i + 1}`));
15-
return vectors.reduce((result, vector) => result.concat(math.mean(vector)), []);
16-
};
17-
18-
const getStdByVector = (matrix) => {
19-
const n = getDimension(matrix, 2);
20-
const vectors = Array(n).fill().map((_, i) => getSubset(matrix, `:, ${i + 1}`));
21-
return vectors.reduce((result, vector) => result.concat(math.std(vector)), []);
22-
};
23-
24-
const getDimension = (matrix, dimension) =>
25-
dimension === 1
26-
? matrix.length
27-
: matrix[0].length
12+
csvToMatrix('./src/data.csv', init);
2813

2914
function init(matrix) {
15+
3016
// Part 0: Preparation
17+
console.log('Part 0: Preparation ...\n');
3118

3219
let X = getSubset(matrix, ':, 1:2');
3320
let y = getSubset(matrix, ':, 3');
3421
let m = getDimension(y, 1);
3522

3623
// Part 1: Feature Normalization
24+
console.log('Part 1: Feature Normalization ...\n');
3725

3826
let { XNorm, mu, sigma } = featureNormalize(X);
27+
28+
console.log('XNorm: ', XNorm);
29+
console.log('\n');
30+
console.log('Mean: ', mu);
31+
console.log('\n');
32+
console.log('Std: ', sigma);
33+
console.log('\n');
3934
}
4035

4136
function featureNormalize(X) {

src/util.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import math from 'mathjs';
2+
3+
export const getSubset = (matrix, selector) =>
4+
math.eval(`matrix[${selector}]`, { matrix });
5+
6+
export const setVector = (matrix, index, vector) =>
7+
matrix.map((row, rowKey) => row.map((column, columnKey) => index === columnKey ? vector[rowKey][0] : column));
8+
9+
export const getMeanByVector = (matrix) => {
10+
const n = getDimension(matrix, 2);
11+
const vectors = Array(n).fill().map((_, i) => getSubset(matrix, `:, ${i + 1}`));
12+
return vectors.reduce((result, vector) => result.concat(math.mean(vector)), []);
13+
};
14+
15+
export const getStdByVector = (matrix) => {
16+
const n = getDimension(matrix, 2);
17+
const vectors = Array(n).fill().map((_, i) => getSubset(matrix, `:, ${i + 1}`));
18+
return vectors.reduce((result, vector) => result.concat(math.std(vector)), []);
19+
};
20+
21+
export const getDimension = (matrix, dimension) =>
22+
dimension === 1
23+
? matrix.length
24+
: matrix[0].length;

0 commit comments

Comments
 (0)