nlptoolkit-classification 1.0.7 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/Attribute/Attribute.js +6 -16
- package/dist/Attribute/Attribute.js.map +1 -1
- package/dist/Attribute/AttributeType.js +22 -32
- package/dist/Attribute/AttributeType.js.map +1 -1
- package/dist/Attribute/BinaryAttribute.js +14 -24
- package/dist/Attribute/BinaryAttribute.js.map +1 -1
- package/dist/Attribute/ContinuousAttribute.js +46 -55
- package/dist/Attribute/ContinuousAttribute.js.map +1 -1
- package/dist/Attribute/DiscreteAttribute.d.ts +1 -1
- package/dist/Attribute/DiscreteAttribute.js +38 -48
- package/dist/Attribute/DiscreteAttribute.js.map +1 -1
- package/dist/Attribute/DiscreteIndexedAttribute.d.ts +2 -2
- package/dist/Attribute/DiscreteIndexedAttribute.js +47 -55
- package/dist/Attribute/DiscreteIndexedAttribute.js.map +1 -1
- package/dist/DataSet/DataDefinition.d.ts +11 -0
- package/dist/DataSet/DataDefinition.js +115 -112
- package/dist/DataSet/DataDefinition.js.map +1 -1
- package/dist/DataSet/DataSet.js +268 -245
- package/dist/DataSet/DataSet.js.map +1 -1
- package/dist/DistanceMetric/DistanceMetric.js +2 -12
- package/dist/DistanceMetric/EuclidianDistance.js +27 -37
- package/dist/DistanceMetric/EuclidianDistance.js.map +1 -1
- package/dist/DistanceMetric/MahalanobisDistance.js +27 -36
- package/dist/DistanceMetric/MahalanobisDistance.js.map +1 -1
- package/dist/Experiment/BootstrapRun.js +31 -40
- package/dist/Experiment/BootstrapRun.js.map +1 -1
- package/dist/Experiment/Experiment.d.ts +7 -7
- package/dist/Experiment/Experiment.js +46 -53
- package/dist/Experiment/Experiment.js.map +1 -1
- package/dist/Experiment/KFoldRun.d.ts +17 -2
- package/dist/Experiment/KFoldRun.js +45 -39
- package/dist/Experiment/KFoldRun.js.map +1 -1
- package/dist/Experiment/KFoldRunSeparateTest.d.ts +13 -2
- package/dist/Experiment/KFoldRunSeparateTest.js +48 -47
- package/dist/Experiment/KFoldRunSeparateTest.js.map +1 -1
- package/dist/Experiment/MultipleRun.js +2 -12
- package/dist/Experiment/MxKFoldRun.js +31 -40
- package/dist/Experiment/MxKFoldRun.js.map +1 -1
- package/dist/Experiment/MxKFoldRunSeparateTest.js +35 -44
- package/dist/Experiment/MxKFoldRunSeparateTest.js.map +1 -1
- package/dist/Experiment/SingleRun.js +2 -12
- package/dist/Experiment/SingleRunWithK.d.ts +18 -3
- package/dist/Experiment/SingleRunWithK.js +39 -33
- package/dist/Experiment/SingleRunWithK.js.map +1 -1
- package/dist/Experiment/StratifiedKFoldRun.js +26 -36
- package/dist/Experiment/StratifiedKFoldRun.js.map +1 -1
- package/dist/Experiment/StratifiedKFoldRunSeparateTest.js +30 -40
- package/dist/Experiment/StratifiedKFoldRunSeparateTest.js.map +1 -1
- package/dist/Experiment/StratifiedMxKFoldRun.js +29 -39
- package/dist/Experiment/StratifiedMxKFoldRun.js.map +1 -1
- package/dist/Experiment/StratifiedMxKFoldRunSeparateTest.js +34 -43
- package/dist/Experiment/StratifiedMxKFoldRunSeparateTest.js.map +1 -1
- package/dist/Experiment/StratifiedSingleRunWithK.js +27 -36
- package/dist/Experiment/StratifiedSingleRunWithK.js.map +1 -1
- package/dist/FeatureSelection/BackwardSelection.js +26 -36
- package/dist/FeatureSelection/BackwardSelection.js.map +1 -1
- package/dist/FeatureSelection/FeatureSubSet.js +72 -82
- package/dist/FeatureSelection/FeatureSubSet.js.map +1 -1
- package/dist/FeatureSelection/FloatingSelection.js +25 -35
- package/dist/FeatureSelection/FloatingSelection.js.map +1 -1
- package/dist/FeatureSelection/ForwardSelection.js +25 -35
- package/dist/FeatureSelection/ForwardSelection.js.map +1 -1
- package/dist/FeatureSelection/SubSetSelection.js +69 -78
- package/dist/FeatureSelection/SubSetSelection.js.map +1 -1
- package/dist/Filter/DiscreteToContinuous.js +50 -60
- package/dist/Filter/DiscreteToContinuous.js.map +1 -1
- package/dist/Filter/DiscreteToIndexed.js +40 -50
- package/dist/Filter/DiscreteToIndexed.js.map +1 -1
- package/dist/Filter/FeatureFilter.js +23 -32
- package/dist/Filter/FeatureFilter.js.map +1 -1
- package/dist/Filter/LaryFilter.d.ts +1 -1
- package/dist/Filter/LaryFilter.js +46 -55
- package/dist/Filter/LaryFilter.js.map +1 -1
- package/dist/Filter/LaryToBinary.js +48 -58
- package/dist/Filter/LaryToBinary.js.map +1 -1
- package/dist/Filter/Normalize.js +33 -41
- package/dist/Filter/Normalize.js.map +1 -1
- package/dist/Filter/Pca.js +86 -96
- package/dist/Filter/Pca.js.map +1 -1
- package/dist/Filter/TrainedFeatureFilter.d.ts +1 -1
- package/dist/Filter/TrainedFeatureFilter.js +14 -24
- package/dist/Filter/TrainedFeatureFilter.js.map +1 -1
- package/dist/Instance/CompositeInstance.js +46 -56
- package/dist/Instance/CompositeInstance.js.map +1 -1
- package/dist/Instance/Instance.js +145 -154
- package/dist/Instance/Instance.js.map +1 -1
- package/dist/InstanceList/InstanceList.js +466 -443
- package/dist/InstanceList/InstanceList.js.map +1 -1
- package/dist/InstanceList/InstanceListOfSameClass.js +23 -32
- package/dist/InstanceList/InstanceListOfSameClass.js.map +1 -1
- package/dist/InstanceList/Partition.d.ts +45 -0
- package/dist/InstanceList/Partition.js +176 -131
- package/dist/InstanceList/Partition.js.map +1 -1
- package/dist/Model/DecisionTree/DecisionCondition.d.ts +8 -0
- package/dist/Model/DecisionTree/DecisionCondition.js +71 -72
- package/dist/Model/DecisionTree/DecisionCondition.js.map +1 -1
- package/dist/Model/DecisionTree/DecisionNode.d.ts +38 -1
- package/dist/Model/DecisionTree/DecisionNode.js +302 -275
- package/dist/Model/DecisionTree/DecisionNode.js.map +1 -1
- package/dist/Model/DecisionTree/DecisionStump.d.ts +17 -0
- package/dist/Model/DecisionTree/DecisionStump.js +25 -0
- package/dist/Model/DecisionTree/DecisionStump.js.map +1 -0
- package/dist/Model/DecisionTree/DecisionTree.d.ts +24 -9
- package/dist/Model/DecisionTree/DecisionTree.js +90 -76
- package/dist/Model/DecisionTree/DecisionTree.js.map +1 -1
- package/dist/Model/DummyModel.d.ts +28 -3
- package/dist/Model/DummyModel.js +64 -50
- package/dist/Model/DummyModel.js.map +1 -1
- package/dist/{Classifier/Bagging.d.ts → Model/Ensemble/BaggingModel.d.ts} +8 -4
- package/dist/Model/Ensemble/BaggingModel.js +37 -0
- package/dist/Model/Ensemble/BaggingModel.js.map +1 -0
- package/dist/{Classifier/RandomForest.d.ts → Model/Ensemble/RandomForestModel.d.ts} +8 -4
- package/dist/Model/Ensemble/RandomForestModel.js +34 -0
- package/dist/Model/Ensemble/RandomForestModel.js.map +1 -0
- package/dist/Model/Ensemble/TreeEnsembleModel.d.ts +32 -0
- package/dist/Model/Ensemble/TreeEnsembleModel.js +61 -0
- package/dist/Model/Ensemble/TreeEnsembleModel.js.map +1 -0
- package/dist/Model/Model.d.ts +50 -0
- package/dist/Model/Model.js +131 -72
- package/dist/Model/Model.js.map +1 -1
- package/dist/Model/NeuralNetwork/DeepNetworkModel.d.ts +47 -0
- package/dist/Model/NeuralNetwork/DeepNetworkModel.js +180 -0
- package/dist/Model/NeuralNetwork/DeepNetworkModel.js.map +1 -0
- package/dist/Model/NeuralNetwork/LinearPerceptronModel.d.ts +31 -0
- package/dist/Model/NeuralNetwork/LinearPerceptronModel.js +75 -0
- package/dist/Model/NeuralNetwork/LinearPerceptronModel.js.map +1 -0
- package/dist/Model/NeuralNetwork/MultiLayerPerceptronModel.d.ts +39 -0
- package/dist/Model/NeuralNetwork/MultiLayerPerceptronModel.js +119 -0
- package/dist/Model/NeuralNetwork/MultiLayerPerceptronModel.js.map +1 -0
- package/dist/Model/{NeuralNetworkModel.d.ts → NeuralNetwork/NeuralNetworkModel.d.ts} +19 -5
- package/dist/Model/NeuralNetwork/NeuralNetworkModel.js +211 -0
- package/dist/Model/NeuralNetwork/NeuralNetworkModel.js.map +1 -0
- package/dist/Model/{KnnInstance.d.ts → NonParametric/KnnInstance.d.ts} +1 -1
- package/dist/Model/NonParametric/KnnInstance.js +25 -0
- package/dist/Model/NonParametric/KnnInstance.js.map +1 -0
- package/dist/Model/{KnnModel.d.ts → NonParametric/KnnModel.d.ts} +30 -6
- package/dist/Model/NonParametric/KnnModel.js +111 -0
- package/dist/Model/NonParametric/KnnModel.js.map +1 -0
- package/dist/Model/{GaussianModel.d.ts → Parametric/GaussianModel.d.ts} +20 -2
- package/dist/Model/Parametric/GaussianModel.js +95 -0
- package/dist/Model/Parametric/GaussianModel.js.map +1 -0
- package/dist/Model/Parametric/KMeansModel.d.ts +36 -0
- package/dist/Model/Parametric/KMeansModel.js +65 -0
- package/dist/Model/Parametric/KMeansModel.js.map +1 -0
- package/dist/Model/Parametric/LdaModel.d.ts +44 -0
- package/dist/Model/Parametric/LdaModel.js +90 -0
- package/dist/Model/Parametric/LdaModel.js.map +1 -0
- package/dist/Model/{NaiveBayesModel.d.ts → Parametric/NaiveBayesModel.d.ts} +30 -10
- package/dist/Model/Parametric/NaiveBayesModel.js +131 -0
- package/dist/Model/Parametric/NaiveBayesModel.js.map +1 -0
- package/dist/Model/Parametric/QdaModel.d.ts +30 -0
- package/dist/Model/Parametric/QdaModel.js +75 -0
- package/dist/Model/Parametric/QdaModel.js.map +1 -0
- package/dist/Model/RandomModel.d.ts +32 -2
- package/dist/Model/RandomModel.js +85 -60
- package/dist/Model/RandomModel.js.map +1 -1
- package/dist/Model/ValidatedModel.js +21 -31
- package/dist/Model/ValidatedModel.js.map +1 -1
- package/dist/Parameter/ActivationFunction.js +9 -19
- package/dist/Parameter/ActivationFunction.js.map +1 -1
- package/dist/Parameter/BaggingParameter.js +24 -33
- package/dist/Parameter/BaggingParameter.js.map +1 -1
- package/dist/Parameter/C45Parameter.d.ts +2 -2
- package/dist/Parameter/C45Parameter.js +34 -42
- package/dist/Parameter/C45Parameter.js.map +1 -1
- package/dist/Parameter/DeepNetworkParameter.d.ts +2 -2
- package/dist/Parameter/DeepNetworkParameter.js +48 -56
- package/dist/Parameter/DeepNetworkParameter.js.map +1 -1
- package/dist/Parameter/KMeansParameter.js +29 -38
- package/dist/Parameter/KMeansParameter.js.map +1 -1
- package/dist/Parameter/KnnParameter.d.ts +1 -1
- package/dist/Parameter/KnnParameter.js +25 -34
- package/dist/Parameter/KnnParameter.js.map +1 -1
- package/dist/Parameter/LinearPerceptronParameter.d.ts +4 -4
- package/dist/Parameter/LinearPerceptronParameter.js +56 -62
- package/dist/Parameter/LinearPerceptronParameter.js.map +1 -1
- package/dist/Parameter/MultiLayerPerceptronParameter.d.ts +2 -2
- package/dist/Parameter/MultiLayerPerceptronParameter.js +38 -46
- package/dist/Parameter/MultiLayerPerceptronParameter.js.map +1 -1
- package/dist/Parameter/Parameter.d.ts +1 -1
- package/dist/Parameter/Parameter.js +21 -30
- package/dist/Parameter/Parameter.js.map +1 -1
- package/dist/Parameter/RandomForestParameter.js +25 -34
- package/dist/Parameter/RandomForestParameter.js.map +1 -1
- package/dist/Performance/ClassificationPerformance.js +24 -33
- package/dist/Performance/ClassificationPerformance.js.map +1 -1
- package/dist/Performance/ConfusionMatrix.d.ts +1 -1
- package/dist/Performance/ConfusionMatrix.js +149 -158
- package/dist/Performance/ConfusionMatrix.js.map +1 -1
- package/dist/Performance/DetailedClassificationPerformance.js +23 -32
- package/dist/Performance/DetailedClassificationPerformance.js.map +1 -1
- package/dist/Performance/ExperimentPerformance.js +184 -161
- package/dist/Performance/ExperimentPerformance.js.map +1 -1
- package/dist/Performance/Performance.js +21 -30
- package/dist/Performance/Performance.js.map +1 -1
- package/dist/StatisticalTest/Combined5x2F.d.ts +12 -0
- package/dist/StatisticalTest/Combined5x2F.js +41 -39
- package/dist/StatisticalTest/Combined5x2F.js.map +1 -1
- package/dist/StatisticalTest/Combined5x2t.d.ts +13 -0
- package/dist/StatisticalTest/Combined5x2t.js +42 -39
- package/dist/StatisticalTest/Combined5x2t.js.map +1 -1
- package/dist/StatisticalTest/Paired5x2t.d.ts +12 -0
- package/dist/StatisticalTest/Paired5x2t.js +40 -38
- package/dist/StatisticalTest/Paired5x2t.js.map +1 -1
- package/dist/StatisticalTest/PairedTest.d.ts +12 -0
- package/dist/StatisticalTest/PairedTest.js +31 -29
- package/dist/StatisticalTest/PairedTest.js.map +1 -1
- package/dist/StatisticalTest/Pairedt.d.ts +12 -0
- package/dist/StatisticalTest/Pairedt.js +38 -36
- package/dist/StatisticalTest/Pairedt.js.map +1 -1
- package/dist/StatisticalTest/Sign.d.ts +17 -0
- package/dist/StatisticalTest/Sign.js +50 -43
- package/dist/StatisticalTest/Sign.js.map +1 -1
- package/dist/StatisticalTest/StatisticalTestResult.d.ts +30 -0
- package/dist/StatisticalTest/StatisticalTestResult.js +65 -43
- package/dist/StatisticalTest/StatisticalTestResult.js.map +1 -1
- package/dist/StatisticalTest/StatisticalTestResultType.js +11 -21
- package/dist/StatisticalTest/StatisticalTestResultType.js.map +1 -1
- package/dist/index.d.ts +88 -0
- package/dist/index.js +105 -0
- package/dist/index.js.map +1 -0
- package/package.json +9 -8
- package/source/Attribute/DiscreteAttribute.ts +1 -1
- package/source/Attribute/DiscreteIndexedAttribute.ts +2 -2
- package/source/DataSet/DataDefinition.ts +11 -0
- package/source/Experiment/BootstrapRun.ts +2 -2
- package/source/Experiment/Experiment.ts +10 -10
- package/source/Experiment/KFoldRun.ts +20 -5
- package/source/Experiment/KFoldRunSeparateTest.ts +16 -5
- package/source/Experiment/MxKFoldRun.ts +1 -1
- package/source/Experiment/MxKFoldRunSeparateTest.ts +1 -1
- package/source/Experiment/SingleRunWithK.ts +20 -5
- package/source/Experiment/StratifiedKFoldRun.ts +1 -1
- package/source/Experiment/StratifiedKFoldRunSeparateTest.ts +1 -1
- package/source/Experiment/StratifiedMxKFoldRun.ts +1 -1
- package/source/Experiment/StratifiedMxKFoldRunSeparateTest.ts +3 -3
- package/source/Experiment/StratifiedSingleRunWithK.ts +1 -1
- package/source/Filter/LaryFilter.ts +1 -1
- package/source/Filter/TrainedFeatureFilter.ts +1 -1
- package/source/InstanceList/Partition.ts +125 -65
- package/source/Model/DecisionTree/DecisionCondition.ts +8 -0
- package/source/Model/DecisionTree/DecisionNode.ts +56 -20
- package/source/Model/DecisionTree/DecisionStump.ts +26 -0
- package/source/Model/DecisionTree/DecisionTree.ts +44 -15
- package/source/Model/DummyModel.ts +40 -10
- package/source/{Classifier/Bagging.ts → Model/Ensemble/BaggingModel.ts} +15 -12
- package/source/{Classifier/RandomForest.ts → Model/Ensemble/RandomForestModel.ts} +14 -12
- package/source/Model/{TreeEnsembleModel.ts → Ensemble/TreeEnsembleModel.ts} +26 -18
- package/source/Model/Model.ts +77 -0
- package/source/Model/{DeepNetworkModel.ts → NeuralNetwork/DeepNetworkModel.ts} +59 -56
- package/source/Model/NeuralNetwork/LinearPerceptronModel.ts +81 -0
- package/source/Model/{MultiLayerPerceptronModel.ts → NeuralNetwork/MultiLayerPerceptronModel.ts} +46 -39
- package/source/Model/{NeuralNetworkModel.ts → NeuralNetwork/NeuralNetworkModel.ts} +20 -7
- package/source/Model/{KnnInstance.ts → NonParametric/KnnInstance.ts} +1 -1
- package/source/Model/{KnnModel.ts → NonParametric/KnnModel.ts} +48 -19
- package/source/Model/{GaussianModel.ts → Parametric/GaussianModel.ts} +21 -3
- package/source/Model/Parametric/KMeansModel.ts +72 -0
- package/source/Model/Parametric/LdaModel.ts +98 -0
- package/source/Model/{NaiveBayesModel.ts → Parametric/NaiveBayesModel.ts} +68 -25
- package/source/Model/Parametric/QdaModel.ts +83 -0
- package/source/Model/RandomModel.ts +54 -16
- package/source/Parameter/C45Parameter.ts +2 -2
- package/source/Parameter/DeepNetworkParameter.ts +2 -2
- package/source/Parameter/KnnParameter.ts +1 -1
- package/source/Parameter/LinearPerceptronParameter.ts +4 -4
- package/source/Parameter/MultiLayerPerceptronParameter.ts +2 -2
- package/source/Parameter/Parameter.ts +1 -1
- package/source/Performance/ConfusionMatrix.ts +1 -1
- package/source/StatisticalTest/Combined5x2F.ts +12 -0
- package/source/StatisticalTest/Combined5x2t.ts +13 -0
- package/source/StatisticalTest/Paired5x2t.ts +12 -0
- package/source/StatisticalTest/PairedTest.ts +12 -0
- package/source/StatisticalTest/Pairedt.ts +12 -0
- package/source/StatisticalTest/Sign.ts +17 -0
- package/source/StatisticalTest/StatisticalTestResult.ts +30 -0
- package/source/index.ts +88 -0
- package/tests/Classifier/C45Test.ts +2 -2
- package/tests/Classifier/DeepNetworkTest.ts +3 -5
- package/tests/Classifier/DummyTest.ts +2 -2
- package/tests/Classifier/KMeansTest.ts +2 -2
- package/tests/Classifier/KnnTest.ts +2 -2
- package/tests/Classifier/LdaTest.ts +2 -2
- package/tests/Classifier/LinearPerceptronTest.ts +2 -2
- package/tests/Classifier/MultiLayerPerceptronTest.ts +2 -3
- package/tests/Classifier/NaiveBayesTest.ts +2 -2
- package/tests/Classifier/QdaTest.ts +2 -2
- package/tests/Classifier/RandomForestTest.ts +2 -2
- package/tsconfig.json +4 -4
- package/dist/Classifier/Bagging.js +0 -45
- package/dist/Classifier/Bagging.js.map +0 -1
- package/dist/Classifier/C45.d.ts +0 -14
- package/dist/Classifier/C45.js +0 -43
- package/dist/Classifier/C45.js.map +0 -1
- package/dist/Classifier/C45Stump.d.ts +0 -13
- package/dist/Classifier/C45Stump.js +0 -32
- package/dist/Classifier/C45Stump.js.map +0 -1
- package/dist/Classifier/Classifier.d.ts +0 -40
- package/dist/Classifier/Classifier.js +0 -72
- package/dist/Classifier/Classifier.js.map +0 -1
- package/dist/Classifier/DeepNetwork.d.ts +0 -14
- package/dist/Classifier/DeepNetwork.js +0 -34
- package/dist/Classifier/DeepNetwork.js.map +0 -1
- package/dist/Classifier/Dummy.d.ts +0 -14
- package/dist/Classifier/Dummy.js +0 -32
- package/dist/Classifier/Dummy.js.map +0 -1
- package/dist/Classifier/KMeans.d.ts +0 -13
- package/dist/Classifier/KMeans.js +0 -39
- package/dist/Classifier/KMeans.js.map +0 -1
- package/dist/Classifier/Knn.d.ts +0 -14
- package/dist/Classifier/Knn.js +0 -32
- package/dist/Classifier/Knn.js.map +0 -1
- package/dist/Classifier/Lda.d.ts +0 -13
- package/dist/Classifier/Lda.js +0 -55
- package/dist/Classifier/Lda.js.map +0 -1
- package/dist/Classifier/LinearPerceptron.d.ts +0 -15
- package/dist/Classifier/LinearPerceptron.js +0 -35
- package/dist/Classifier/LinearPerceptron.js.map +0 -1
- package/dist/Classifier/MultiLayerPerceptron.d.ts +0 -15
- package/dist/Classifier/MultiLayerPerceptron.js +0 -35
- package/dist/Classifier/MultiLayerPerceptron.js.map +0 -1
- package/dist/Classifier/NaiveBayes.d.ts +0 -26
- package/dist/Classifier/NaiveBayes.js +0 -70
- package/dist/Classifier/NaiveBayes.js.map +0 -1
- package/dist/Classifier/Qda.d.ts +0 -13
- package/dist/Classifier/Qda.js +0 -53
- package/dist/Classifier/Qda.js.map +0 -1
- package/dist/Classifier/RandomClassifier.d.ts +0 -13
- package/dist/Classifier/RandomClassifier.js +0 -35
- package/dist/Classifier/RandomClassifier.js.map +0 -1
- package/dist/Classifier/RandomForest.js +0 -42
- package/dist/Classifier/RandomForest.js.map +0 -1
- package/dist/Model/DeepNetworkModel.d.ts +0 -45
- package/dist/Model/DeepNetworkModel.js +0 -187
- package/dist/Model/DeepNetworkModel.js.map +0 -1
- package/dist/Model/GaussianModel.js +0 -86
- package/dist/Model/GaussianModel.js.map +0 -1
- package/dist/Model/KMeansModel.d.ts +0 -28
- package/dist/Model/KMeansModel.js +0 -61
- package/dist/Model/KMeansModel.js.map +0 -1
- package/dist/Model/KnnInstance.js +0 -33
- package/dist/Model/KnnInstance.js.map +0 -1
- package/dist/Model/KnnModel.js +0 -95
- package/dist/Model/KnnModel.js.map +0 -1
- package/dist/Model/LdaModel.d.ts +0 -28
- package/dist/Model/LdaModel.js +0 -67
- package/dist/Model/LdaModel.js.map +0 -1
- package/dist/Model/LinearPerceptronModel.d.ts +0 -24
- package/dist/Model/LinearPerceptronModel.js +0 -91
- package/dist/Model/LinearPerceptronModel.js.map +0 -1
- package/dist/Model/MultiLayerPerceptronModel.d.ts +0 -33
- package/dist/Model/MultiLayerPerceptronModel.js +0 -123
- package/dist/Model/MultiLayerPerceptronModel.js.map +0 -1
- package/dist/Model/NaiveBayesModel.js +0 -107
- package/dist/Model/NaiveBayesModel.js.map +0 -1
- package/dist/Model/NeuralNetworkModel.js +0 -202
- package/dist/Model/NeuralNetworkModel.js.map +0 -1
- package/dist/Model/QdaModel.d.ts +0 -27
- package/dist/Model/QdaModel.js +0 -63
- package/dist/Model/QdaModel.js.map +0 -1
- package/dist/Model/TreeEnsembleModel.d.ts +0 -22
- package/dist/Model/TreeEnsembleModel.js +0 -64
- package/dist/Model/TreeEnsembleModel.js.map +0 -1
- package/index.js +0 -100
- package/source/Classifier/C45.ts +0 -34
- package/source/Classifier/C45Stump.ts +0 -23
- package/source/Classifier/Classifier.ts +0 -72
- package/source/Classifier/DeepNetwork.ts +0 -26
- package/source/Classifier/Dummy.ts +0 -23
- package/source/Classifier/KMeans.ts +0 -30
- package/source/Classifier/Knn.ts +0 -25
- package/source/Classifier/Lda.ts +0 -47
- package/source/Classifier/LinearPerceptron.ts +0 -27
- package/source/Classifier/MultiLayerPerceptron.ts +0 -27
- package/source/Classifier/NaiveBayes.ts +0 -66
- package/source/Classifier/Qda.ts +0 -46
- package/source/Classifier/RandomClassifier.ts +0 -26
- package/source/Model/KMeansModel.ts +0 -56
- package/source/Model/LdaModel.ts +0 -62
- package/source/Model/LinearPerceptronModel.ts +0 -83
- package/source/Model/QdaModel.ts +0 -57
- package/source/tsconfig.json +0 -13
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RandomForestModel = void 0;
|
|
4
|
+
const TreeEnsembleModel_1 = require("./TreeEnsembleModel");
|
|
5
|
+
const InstanceList_1 = require("../../InstanceList/InstanceList");
|
|
6
|
+
const DecisionTree_1 = require("../DecisionTree/DecisionTree");
|
|
7
|
+
const DecisionNode_1 = require("../DecisionTree/DecisionNode");
|
|
8
|
+
class RandomForestModel extends TreeEnsembleModel_1.TreeEnsembleModel {
|
|
9
|
+
/**
|
|
10
|
+
* Training algorithm for random forest classifier. Basically the algorithm creates K distinct decision trees from
|
|
11
|
+
* K bootstrap samples of the original training set.
|
|
12
|
+
*
|
|
13
|
+
* @param trainSet Training data given to the algorithm
|
|
14
|
+
* @param parameters Parameters of the bagging trees algorithm. ensembleSize returns the number of trees in the random forest.
|
|
15
|
+
*/
|
|
16
|
+
train(trainSet, parameters) {
|
|
17
|
+
let forestSize = parameters.getEnsembleSize();
|
|
18
|
+
this.forest = new Array();
|
|
19
|
+
for (let i = 0; i < forestSize; i++) {
|
|
20
|
+
let bootstrap = trainSet.bootstrap(i);
|
|
21
|
+
let tree = new DecisionTree_1.DecisionTree(new DecisionNode_1.DecisionNode(new InstanceList_1.InstanceList(bootstrap.getSample()), undefined, parameters, false));
|
|
22
|
+
this.forest.push(tree);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Loads the random forest model from an input file.
|
|
27
|
+
* @param fileName File name of the random forest model.
|
|
28
|
+
*/
|
|
29
|
+
loadModel(fileName) {
|
|
30
|
+
this.constructor2(fileName);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.RandomForestModel = RandomForestModel;
|
|
34
|
+
//# sourceMappingURL=RandomForestModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RandomForestModel.js","sourceRoot":"","sources":["../../../source/Model/Ensemble/RandomForestModel.ts"],"names":[],"mappings":";;;AAAA,2DAAsD;AACtD,kEAA6D;AAG7D,+DAA0D;AAC1D,+DAA0D;AAE1D,MAAa,iBAAkB,SAAQ,qCAAiB;IAEpD;;;;;;OAMG;IACH,KAAK,CAAC,QAAsB,EAAE,UAAqB;QAC/C,IAAI,UAAU,GAA4B,UAAW,CAAC,eAAe,EAAE,CAAC;QACxE,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,EAAgB,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAC,CAAC;YACjC,IAAI,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,IAAI,GAAG,IAAI,2BAAY,CAAC,IAAI,2BAAY,CAAC,IAAI,2BAAY,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE,SAAS,EAA0B,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;YAC7I,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,QAAgB;QACtB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;IAC/B,CAAC;CAEJ;AA3BD,8CA2BC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Model } from "../Model";
|
|
2
|
+
import { Instance } from "../../Instance/Instance";
|
|
3
|
+
import { DecisionTree } from "../DecisionTree/DecisionTree";
|
|
4
|
+
export declare abstract class TreeEnsembleModel extends Model {
|
|
5
|
+
protected forest: Array<DecisionTree>;
|
|
6
|
+
/**
|
|
7
|
+
* A constructor which sets the {@link Array} of {@link DecisionTree} with given input.
|
|
8
|
+
*
|
|
9
|
+
* @param forest An {@link Array} of {@link DecisionTree}.
|
|
10
|
+
*/
|
|
11
|
+
constructor1(forest: Array<DecisionTree>): void;
|
|
12
|
+
/**
|
|
13
|
+
* Loads a tree ensemble model such as Random Forest model or Bagging model from an input model file.
|
|
14
|
+
* @param fileName Model file name.
|
|
15
|
+
*/
|
|
16
|
+
constructor2(fileName: string): void;
|
|
17
|
+
/**
|
|
18
|
+
* The predict method takes an {@link Instance} as an input and loops through the {@link ArrayList} of {@link DecisionTree}s.
|
|
19
|
+
* Makes prediction for the items of that ArrayList and returns the maximum item of that ArrayList.
|
|
20
|
+
*
|
|
21
|
+
* @param instance Instance to make prediction.
|
|
22
|
+
* @return The maximum prediction of a given Instance.
|
|
23
|
+
*/
|
|
24
|
+
predict(instance: Instance): string;
|
|
25
|
+
/**
|
|
26
|
+
* Calculates the posterior probability distribution for the given instance according to ensemble tree model.
|
|
27
|
+
* @param instance Instance for which posterior probability distribution is calculated.
|
|
28
|
+
* @return Posterior probability distribution for the given instance.
|
|
29
|
+
*/
|
|
30
|
+
predictProbability(instance: Instance): Map<string, number>;
|
|
31
|
+
saveTxt(fileName: string): void;
|
|
32
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TreeEnsembleModel = void 0;
|
|
4
|
+
const Model_1 = require("../Model");
|
|
5
|
+
const DecisionTree_1 = require("../DecisionTree/DecisionTree");
|
|
6
|
+
const DiscreteDistribution_1 = require("nlptoolkit-math/dist/DiscreteDistribution");
|
|
7
|
+
const FileContents_1 = require("nlptoolkit-util/dist/FileContents");
|
|
8
|
+
const DecisionNode_1 = require("../DecisionTree/DecisionNode");
|
|
9
|
+
class TreeEnsembleModel extends Model_1.Model {
|
|
10
|
+
forest;
|
|
11
|
+
/**
|
|
12
|
+
* A constructor which sets the {@link Array} of {@link DecisionTree} with given input.
|
|
13
|
+
*
|
|
14
|
+
* @param forest An {@link Array} of {@link DecisionTree}.
|
|
15
|
+
*/
|
|
16
|
+
constructor1(forest) {
|
|
17
|
+
this.forest = forest;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Loads a tree ensemble model such as Random Forest model or Bagging model from an input model file.
|
|
21
|
+
* @param fileName Model file name.
|
|
22
|
+
*/
|
|
23
|
+
constructor2(fileName) {
|
|
24
|
+
let input = new FileContents_1.FileContents(fileName);
|
|
25
|
+
let numberOfTrees = parseInt(input.readLine());
|
|
26
|
+
this.forest = new Array();
|
|
27
|
+
for (let i = 0; i < numberOfTrees; i++) {
|
|
28
|
+
this.forest.push(new DecisionTree_1.DecisionTree(new DecisionNode_1.DecisionNode(input)));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The predict method takes an {@link Instance} as an input and loops through the {@link ArrayList} of {@link DecisionTree}s.
|
|
33
|
+
* Makes prediction for the items of that ArrayList and returns the maximum item of that ArrayList.
|
|
34
|
+
*
|
|
35
|
+
* @param instance Instance to make prediction.
|
|
36
|
+
* @return The maximum prediction of a given Instance.
|
|
37
|
+
*/
|
|
38
|
+
predict(instance) {
|
|
39
|
+
let distribution = new DiscreteDistribution_1.DiscreteDistribution();
|
|
40
|
+
for (let tree of this.forest) {
|
|
41
|
+
distribution.addItem(tree.predict(instance));
|
|
42
|
+
}
|
|
43
|
+
return distribution.getMaxItem();
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Calculates the posterior probability distribution for the given instance according to ensemble tree model.
|
|
47
|
+
* @param instance Instance for which posterior probability distribution is calculated.
|
|
48
|
+
* @return Posterior probability distribution for the given instance.
|
|
49
|
+
*/
|
|
50
|
+
predictProbability(instance) {
|
|
51
|
+
let distribution = new DiscreteDistribution_1.DiscreteDistribution();
|
|
52
|
+
for (let tree of this.forest) {
|
|
53
|
+
distribution.addItem(tree.predict(instance));
|
|
54
|
+
}
|
|
55
|
+
return distribution.getProbabilityDistribution();
|
|
56
|
+
}
|
|
57
|
+
saveTxt(fileName) {
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.TreeEnsembleModel = TreeEnsembleModel;
|
|
61
|
+
//# sourceMappingURL=TreeEnsembleModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TreeEnsembleModel.js","sourceRoot":"","sources":["../../../source/Model/Ensemble/TreeEnsembleModel.ts"],"names":[],"mappings":";;;AAAA,oCAA+B;AAE/B,+DAA0D;AAC1D,oFAA+E;AAC/E,oEAA+D;AAC/D,+DAA0D;AAE1D,MAAsB,iBAAkB,SAAQ,aAAK;IAEvC,MAAM,CAAqB;IAErC;;;;OAIG;IACH,YAAY,CAAC,MAA2B;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,QAAgB;QACzB,IAAI,KAAK,GAAG,IAAI,2BAAY,CAAC,QAAQ,CAAC,CAAA;QACtC,IAAI,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,EAAgB,CAAA;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAC,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,2BAAY,CAAC,IAAI,2BAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC/D,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,QAAkB;QACtB,IAAI,YAAY,GAAG,IAAI,2CAAoB,EAAE,CAAC;QAC9C,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC3B,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,YAAY,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,QAAkB;QACjC,IAAI,YAAY,GAAG,IAAI,2CAAoB,EAAE,CAAC;QAC9C,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC3B,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,YAAY,CAAC,0BAA0B,EAAE,CAAC;IACrD,CAAC;IAED,OAAO,CAAC,QAAgB;IACxB,CAAC;CAEJ;AAzDD,8CAyDC"}
|
package/dist/Model/Model.d.ts
CHANGED
|
@@ -3,10 +3,14 @@ import { FileContents } from "nlptoolkit-util/dist/FileContents";
|
|
|
3
3
|
import { InstanceList } from "../InstanceList/InstanceList";
|
|
4
4
|
import { Matrix } from "nlptoolkit-math/dist/Matrix";
|
|
5
5
|
import { DiscreteDistribution } from "nlptoolkit-math/dist/DiscreteDistribution";
|
|
6
|
+
import { Parameter } from "../Parameter/Parameter";
|
|
7
|
+
import { Performance } from "../Performance/Performance";
|
|
6
8
|
export declare abstract class Model {
|
|
7
9
|
abstract predict(instance: Instance): string;
|
|
8
10
|
abstract predictProbability(instance: Instance): Map<string, number>;
|
|
9
11
|
abstract saveTxt(fileName: String): void;
|
|
12
|
+
abstract train(trainSet: InstanceList, parameters: Parameter): void;
|
|
13
|
+
abstract loadModel(fileName: string): void;
|
|
10
14
|
/**
|
|
11
15
|
* Given an array of class labels, returns the maximum occurred one.
|
|
12
16
|
*
|
|
@@ -14,8 +18,54 @@ export declare abstract class Model {
|
|
|
14
18
|
* @return The class label that occurs most in the array of class labels (mod of class label list).
|
|
15
19
|
*/
|
|
16
20
|
static getMaximum(classLabels: Array<string>): string;
|
|
21
|
+
/**
|
|
22
|
+
* Loads a single instance from a single line.
|
|
23
|
+
* @param line Line containing the instance.
|
|
24
|
+
* @param attributeTypes Type of the attributes of the instance. If th attribute is discrete, it is "DISCRETE",
|
|
25
|
+
* otherwise it is "CONTINUOUS".
|
|
26
|
+
* @return Instance read from the line.
|
|
27
|
+
*/
|
|
17
28
|
loadInstance(line: string, attributeTypes: string[]): Instance;
|
|
29
|
+
/**
|
|
30
|
+
* Loads a discrete distribution from an input model file
|
|
31
|
+
* @param input Input model file.
|
|
32
|
+
* @return Discrete distribution read from an input model file.
|
|
33
|
+
*/
|
|
18
34
|
static loadDiscreteDistribution(input: FileContents): DiscreteDistribution;
|
|
35
|
+
/**
|
|
36
|
+
* Loads an instance list from an input model file.
|
|
37
|
+
* @param input Input model file.
|
|
38
|
+
* @return Instance list read from an input model file.
|
|
39
|
+
*/
|
|
19
40
|
loadInstanceList(input: FileContents): InstanceList;
|
|
41
|
+
/**
|
|
42
|
+
* Loads a matrix from an input model file.
|
|
43
|
+
* @param input Input model file.
|
|
44
|
+
* @return Matrix read from the input model file.
|
|
45
|
+
*/
|
|
20
46
|
loadMatrix(input: FileContents): Matrix;
|
|
47
|
+
/**
|
|
48
|
+
* Checks given instance's attribute and returns true if it is a discrete indexed attribute, false otherwise.
|
|
49
|
+
*
|
|
50
|
+
* @param instance Instance to check.
|
|
51
|
+
* @return True if instance is a discrete indexed attribute, false otherwise.
|
|
52
|
+
*/
|
|
53
|
+
discreteCheck(instance: Instance): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* TestClassification an instance list with the current model.
|
|
56
|
+
*
|
|
57
|
+
* @param testSet Test data (list of instances) to be tested.
|
|
58
|
+
* @return The accuracy (and error) of the model as an instance of Performance class.
|
|
59
|
+
*/
|
|
60
|
+
test(testSet: InstanceList): Performance;
|
|
61
|
+
/**
|
|
62
|
+
* Runs current classifier with the given train and test data.
|
|
63
|
+
*
|
|
64
|
+
* @param parameter Parameter of the classifier to be trained.
|
|
65
|
+
* @param trainSet Training data to be used in training the classifier.
|
|
66
|
+
* @param testSet Test data to be tested after training the model.
|
|
67
|
+
* @return The accuracy (and error) of the trained model as an instance of Performance class.
|
|
68
|
+
* @throws DiscreteFeaturesNotAllowed Exception for discrete features.
|
|
69
|
+
*/
|
|
70
|
+
singleRun(parameter: Parameter, trainSet: InstanceList, testSet: InstanceList): Performance;
|
|
21
71
|
}
|
package/dist/Model/Model.js
CHANGED
|
@@ -1,84 +1,143 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Model = void 0;
|
|
4
|
+
const Instance_1 = require("../Instance/Instance");
|
|
5
|
+
const CounterHashMap_1 = require("nlptoolkit-datastructure/dist/CounterHashMap");
|
|
6
|
+
const InstanceList_1 = require("../InstanceList/InstanceList");
|
|
7
|
+
const Matrix_1 = require("nlptoolkit-math/dist/Matrix");
|
|
8
|
+
const DiscreteDistribution_1 = require("nlptoolkit-math/dist/DiscreteDistribution");
|
|
9
|
+
const DiscreteAttribute_1 = require("../Attribute/DiscreteAttribute");
|
|
10
|
+
const DiscreteIndexedAttribute_1 = require("../Attribute/DiscreteIndexedAttribute");
|
|
11
|
+
const ConfusionMatrix_1 = require("../Performance/ConfusionMatrix");
|
|
12
|
+
const DetailedClassificationPerformance_1 = require("../Performance/DetailedClassificationPerformance");
|
|
13
|
+
class Model {
|
|
14
|
+
/**
|
|
15
|
+
* Given an array of class labels, returns the maximum occurred one.
|
|
16
|
+
*
|
|
17
|
+
* @param classLabels An array of class labels.
|
|
18
|
+
* @return The class label that occurs most in the array of class labels (mod of class label list).
|
|
19
|
+
*/
|
|
20
|
+
static getMaximum(classLabels) {
|
|
21
|
+
let frequencies = new CounterHashMap_1.CounterHashMap();
|
|
22
|
+
for (let label of classLabels) {
|
|
23
|
+
frequencies.put(label);
|
|
24
|
+
}
|
|
25
|
+
return frequencies.max();
|
|
8
26
|
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
for (let label of classLabels) {
|
|
28
|
-
frequencies.put(label);
|
|
27
|
+
/**
|
|
28
|
+
* Loads a single instance from a single line.
|
|
29
|
+
* @param line Line containing the instance.
|
|
30
|
+
* @param attributeTypes Type of the attributes of the instance. If th attribute is discrete, it is "DISCRETE",
|
|
31
|
+
* otherwise it is "CONTINUOUS".
|
|
32
|
+
* @return Instance read from the line.
|
|
33
|
+
*/
|
|
34
|
+
loadInstance(line, attributeTypes) {
|
|
35
|
+
let items = line.split(",");
|
|
36
|
+
let instance = new Instance_1.Instance(items[items.length - 1]);
|
|
37
|
+
for (let i = 0; i < items.length - 1; i++) {
|
|
38
|
+
switch (attributeTypes[i]) {
|
|
39
|
+
case "DISCRETE":
|
|
40
|
+
instance.addAttribute(items[i]);
|
|
41
|
+
break;
|
|
42
|
+
case "CONTINUOUS":
|
|
43
|
+
instance.addAttribute(parseFloat(items[i]));
|
|
44
|
+
break;
|
|
29
45
|
}
|
|
30
|
-
return frequencies.max();
|
|
31
46
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
47
|
+
return instance;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Loads a discrete distribution from an input model file
|
|
51
|
+
* @param input Input model file.
|
|
52
|
+
* @return Discrete distribution read from an input model file.
|
|
53
|
+
*/
|
|
54
|
+
static loadDiscreteDistribution(input) {
|
|
55
|
+
let distribution = new DiscreteDistribution_1.DiscreteDistribution();
|
|
56
|
+
let size = parseInt(input.readLine());
|
|
57
|
+
for (let i = 0; i < size; i++) {
|
|
58
|
+
let line = input.readLine();
|
|
59
|
+
let items = line.split(" ");
|
|
60
|
+
let count = parseInt(items[1]);
|
|
61
|
+
for (let j = 0; j < count; j++) {
|
|
62
|
+
distribution.addItem(items[0]);
|
|
44
63
|
}
|
|
45
|
-
return instance;
|
|
46
64
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
65
|
+
return distribution;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Loads an instance list from an input model file.
|
|
69
|
+
* @param input Input model file.
|
|
70
|
+
* @return Instance list read from an input model file.
|
|
71
|
+
*/
|
|
72
|
+
loadInstanceList(input) {
|
|
73
|
+
let types = input.readLine().split(" ");
|
|
74
|
+
let instanceCount = parseInt(input.readLine());
|
|
75
|
+
let instanceList = new InstanceList_1.InstanceList();
|
|
76
|
+
for (let i = 0; i < instanceCount; i++) {
|
|
77
|
+
instanceList.add(this.loadInstance(input.readLine(), types));
|
|
59
78
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
79
|
+
return instanceList;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Loads a matrix from an input model file.
|
|
83
|
+
* @param input Input model file.
|
|
84
|
+
* @return Matrix read from the input model file.
|
|
85
|
+
*/
|
|
86
|
+
loadMatrix(input) {
|
|
87
|
+
let items = input.readLine().split(" ");
|
|
88
|
+
let matrix = new Matrix_1.Matrix(parseInt(items[0]), parseInt(items[1]));
|
|
89
|
+
for (let j = 0; j < matrix.getRow(); j++) {
|
|
90
|
+
let line = input.readLine();
|
|
91
|
+
items = line.split(" ");
|
|
92
|
+
for (let k = 0; k < matrix.getColumn(); k++) {
|
|
93
|
+
matrix.setValue(j, k, parseFloat(items[k]));
|
|
66
94
|
}
|
|
67
|
-
return instanceList;
|
|
68
95
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
96
|
+
return matrix;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Checks given instance's attribute and returns true if it is a discrete indexed attribute, false otherwise.
|
|
100
|
+
*
|
|
101
|
+
* @param instance Instance to check.
|
|
102
|
+
* @return True if instance is a discrete indexed attribute, false otherwise.
|
|
103
|
+
*/
|
|
104
|
+
discreteCheck(instance) {
|
|
105
|
+
for (let i = 0; i < instance.attributeSize(); i++) {
|
|
106
|
+
if (instance.getAttribute(i) instanceof DiscreteAttribute_1.DiscreteAttribute &&
|
|
107
|
+
!(instance.getAttribute(i) instanceof DiscreteIndexedAttribute_1.DiscreteIndexedAttribute)) {
|
|
108
|
+
return false;
|
|
78
109
|
}
|
|
79
|
-
return matrix;
|
|
80
110
|
}
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* TestClassification an instance list with the current model.
|
|
115
|
+
*
|
|
116
|
+
* @param testSet Test data (list of instances) to be tested.
|
|
117
|
+
* @return The accuracy (and error) of the model as an instance of Performance class.
|
|
118
|
+
*/
|
|
119
|
+
test(testSet) {
|
|
120
|
+
let classLabels = testSet.getUnionOfPossibleClassLabels();
|
|
121
|
+
let confusion = new ConfusionMatrix_1.ConfusionMatrix(classLabels);
|
|
122
|
+
for (let i = 0; i < testSet.size(); i++) {
|
|
123
|
+
let instance = testSet.get(i);
|
|
124
|
+
confusion.classify(instance.getClassLabel(), this.predict(instance));
|
|
125
|
+
}
|
|
126
|
+
return new DetailedClassificationPerformance_1.DetailedClassificationPerformance(confusion);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Runs current classifier with the given train and test data.
|
|
130
|
+
*
|
|
131
|
+
* @param parameter Parameter of the classifier to be trained.
|
|
132
|
+
* @param trainSet Training data to be used in training the classifier.
|
|
133
|
+
* @param testSet Test data to be tested after training the model.
|
|
134
|
+
* @return The accuracy (and error) of the trained model as an instance of Performance class.
|
|
135
|
+
* @throws DiscreteFeaturesNotAllowed Exception for discrete features.
|
|
136
|
+
*/
|
|
137
|
+
singleRun(parameter, trainSet, testSet) {
|
|
138
|
+
this.train(trainSet, parameter);
|
|
139
|
+
return this.test(testSet);
|
|
81
140
|
}
|
|
82
|
-
|
|
83
|
-
|
|
141
|
+
}
|
|
142
|
+
exports.Model = Model;
|
|
84
143
|
//# sourceMappingURL=Model.js.map
|
package/dist/Model/Model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Model.js","sourceRoot":"","sources":["../../source/Model/Model.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Model.js","sourceRoot":"","sources":["../../source/Model/Model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { NeuralNetworkModel } from "./NeuralNetworkModel";
|
|
2
|
+
import { InstanceList } from "../../InstanceList/InstanceList";
|
|
3
|
+
import { Parameter } from "../../Parameter/Parameter";
|
|
4
|
+
export declare class DeepNetworkModel extends NeuralNetworkModel {
|
|
5
|
+
private weights;
|
|
6
|
+
private hiddenLayerSize;
|
|
7
|
+
private activationFunction;
|
|
8
|
+
/**
|
|
9
|
+
* The allocateWeights method takes {@link DeepNetworkParameter}s as an input. First it adds random weights to the {@link Array}
|
|
10
|
+
* of {@link Matrix} weights' first layer. Then it loops through the layers and adds random weights till the last layer.
|
|
11
|
+
* At the end it adds random weights to the last layer and also sets the hiddenLayerSize value.
|
|
12
|
+
*
|
|
13
|
+
* @param parameters {@link DeepNetworkParameter} input.
|
|
14
|
+
*/
|
|
15
|
+
private allocateWeights;
|
|
16
|
+
/**
|
|
17
|
+
* The setBestWeights method creates an {@link Array} of Matrix as bestWeights and clones the values of weights {@link Array}
|
|
18
|
+
* into this newly created {@link Array}.
|
|
19
|
+
*
|
|
20
|
+
* @return An {@link Array} clones from the weights ArrayList.
|
|
21
|
+
*/
|
|
22
|
+
private setBestWeights;
|
|
23
|
+
/**
|
|
24
|
+
* Loads a deep network model from an input model file.
|
|
25
|
+
* @param fileName Model file name.
|
|
26
|
+
*/
|
|
27
|
+
constructor2(fileName: string): void;
|
|
28
|
+
/**
|
|
29
|
+
* The calculateOutput method loops size of the weights times and calculate one hidden layer at a time and adds bias term.
|
|
30
|
+
* At the end it updates the output y value.
|
|
31
|
+
*/
|
|
32
|
+
protected calculateOutput(): void;
|
|
33
|
+
saveTxt(fileName: string): void;
|
|
34
|
+
/**
|
|
35
|
+
* Training algorithm for deep network classifier.
|
|
36
|
+
*
|
|
37
|
+
* @param train Training data given to the algorithm.
|
|
38
|
+
* @param params Parameters of the deep network algorithm. crossValidationRatio and seed are used as parameters.
|
|
39
|
+
* @throws DiscreteFeaturesNotAllowed Exception for discrete features.
|
|
40
|
+
*/
|
|
41
|
+
train(train: InstanceList, params: Parameter): void;
|
|
42
|
+
/**
|
|
43
|
+
* Loads the deep network model from an input file.
|
|
44
|
+
* @param fileName File name of the deep network model.
|
|
45
|
+
*/
|
|
46
|
+
loadModel(fileName: string): void;
|
|
47
|
+
}
|