diff --git a/src/class/learning/Cluster.js b/src/class/learning/Cluster.js index 7aacd6e428..e6a4e1ae15 100644 --- a/src/class/learning/Cluster.js +++ b/src/class/learning/Cluster.js @@ -2,6 +2,7 @@ import { kmpp } from 'skmeans/kinit'; // import { kmpp } from 'skmeans/dist/node/kinit'; import floor from 'lodash/floor'; import _toNumber from 'lodash/toNumber'; +import _isNaN from 'lodash/isNaN'; import LearningView from './LearningView'; import Chart from './Chart'; import DataTable from '../DataTable'; @@ -155,7 +156,7 @@ class Cluster { this.#isTrained = false; const { data, select } = this.#table; const filtered = data.filter( - (row) => !select.flat().some((selected) => !_toNumber(row[selected])) + (row) => !select.flat().some((selected) => _isNaN(_toNumber(row[selected]))) ); const [attr] = select; diff --git a/src/class/learning/DecisionTree.js b/src/class/learning/DecisionTree.js index 2a30f47045..848ea10dbe 100644 --- a/src/class/learning/DecisionTree.js +++ b/src/class/learning/DecisionTree.js @@ -4,6 +4,7 @@ import _max from 'lodash/max'; import _sum from 'lodash/sum'; import _mean from 'lodash/mean'; import _toNumber from 'lodash/toNumber'; +import _isNaN from 'lodash/isNaN'; import LearningBase from './LearningBase'; import { DecisionTreeClassifier as DTClassifier } from 'ml-cart'; import Utils from './Utils'; @@ -159,7 +160,7 @@ function getData(testRate = 0.2, data) { const { select = [[0], [1]], data: table, fields } = data; const [attr, predict] = select; const filtered = table.filter( - (row) => !select[0].some((selected) => !_toNumber(row[selected])) + (row) => !select[0].some((selected) => _isNaN(_toNumber(row[selected]))) ); const dataArray = filtered .map((row) => ({ diff --git a/src/class/learning/LearningView.js b/src/class/learning/LearningView.js index 4d38534e21..ae748ba343 100644 --- a/src/class/learning/LearningView.js +++ b/src/class/learning/LearningView.js @@ -15,7 +15,7 @@ const STATUS = { export default class LearningView { constructor({ name = 'model name', status = STATUS.NO_MODEL, value = 0} = {}) { - this.id = Entry.generateHash(); + this.id = Entry.generateHash(); this.visible = true; this.value = value; const fontFamily = EntryStatic.fontFamily || 'NanumGothic'; diff --git a/src/class/learning/LogisticRegression.js b/src/class/learning/LogisticRegression.js index 492fb17af0..b7725af055 100644 --- a/src/class/learning/LogisticRegression.js +++ b/src/class/learning/LogisticRegression.js @@ -4,6 +4,7 @@ import _max from 'lodash/max'; import _sum from 'lodash/sum'; import _mean from 'lodash/mean'; import _toNumber from 'lodash/toNumber'; +import _isNaN from 'lodash/isNaN'; import LearningBase from './LearningBase'; import Utils from './Utils'; @@ -184,7 +185,7 @@ function getData(validationRate, testRate, data, trainParam) { const { select = [[0], [1]], data: table, fields } = data; const [attr, predict] = select; const filtered = table.filter( - (row) => !select[0].some((selected) => !_toNumber(row[selected])) + (row) => !select[0].some((selected) => _isNaN(_toNumber(row[selected]))) ); const dataArray = filtered .map((row) => ({ diff --git a/src/class/learning/NumberClassification.js b/src/class/learning/NumberClassification.js index cbcd83b865..c2d5148616 100644 --- a/src/class/learning/NumberClassification.js +++ b/src/class/learning/NumberClassification.js @@ -6,6 +6,7 @@ import _floor from 'lodash/floor'; import _sum from 'lodash/sum'; import _mean from 'lodash/mean'; import _toNumber from 'lodash/toNumber'; +import _isNaN from 'lodash/isNaN'; import DataTable from '../DataTable'; export const classes = [ @@ -334,7 +335,7 @@ function convertTableToKnnData(tableData = {}) { const { select = [[0], [1]], data: table = [] } = tableData; const [attr, predict] = select; const filtered = table.filter( - (row) => !select[0].some((selected) => !_toNumber(row[selected])) + (row) => !select[0].some((selected) => _isNaN(_toNumber(row[selected]))) ); return filtered.reduce( (accumulator, row) => { diff --git a/src/class/learning/Regression.js b/src/class/learning/Regression.js index af29bc2340..a3c6bc3c8a 100644 --- a/src/class/learning/Regression.js +++ b/src/class/learning/Regression.js @@ -5,6 +5,7 @@ import Chart from './Chart'; import _sum from 'lodash/sum'; import _mean from 'lodash/mean'; import _toNumber from 'lodash/toNumber'; +import _isNaN from 'lodash/isNaN'; import LearningBase from './LearningBase'; import Utils from './Utils'; @@ -224,7 +225,7 @@ function convertToTfData(data, trainParam) { const [attr, predict] = select; const { epochs = 1, batchSize = 1 } = trainParam; const filtered = table.filter( - (row) => !select.flat().some((selected) => !_toNumber(row[selected])) + (row) => !select.flat().some((selected) => _isNaN(_toNumber(row[selected]))) ); const totalDataSize = Math.ceil(filtered.length / batchSize) * epochs; return filtered.reduce( diff --git a/src/class/learning/Svm.js b/src/class/learning/Svm.js index 22cb4a79b7..acf7f6360c 100644 --- a/src/class/learning/Svm.js +++ b/src/class/learning/Svm.js @@ -4,6 +4,7 @@ import _max from 'lodash/max'; import _sum from 'lodash/sum'; import _mean from 'lodash/mean'; import _toNumber from 'lodash/toNumber'; +import _isNaN from 'lodash/isNaN'; import Utils from './Utils'; const { callApi } = require('../../util/common'); const SVM = require('libsvm-js/asm'); @@ -168,7 +169,7 @@ class Svm extends LearningBase { const { select = [[0], [1]], data: table, fields } = data; const [attr, predict] = select; const filtered = table.filter( - (row) => !select[0].some((selected) => !_toNumber(row[selected])) + (row) => !select[0].some((selected) => _isNaN(_toNumber(row[selected]))) ); const dataArray = filtered .map((row) => ({