nlptoolkit-classification 1.0.6 → 1.0.8

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.
Files changed (310) hide show
  1. package/README.md +1 -0
  2. package/dist/Attribute/DiscreteAttribute.d.ts +1 -1
  3. package/dist/Attribute/DiscreteAttribute.js.map +1 -1
  4. package/dist/Attribute/DiscreteIndexedAttribute.d.ts +2 -2
  5. package/dist/DataSet/DataDefinition.d.ts +11 -0
  6. package/dist/DataSet/DataDefinition.js +11 -0
  7. package/dist/DataSet/DataDefinition.js.map +1 -1
  8. package/dist/Experiment/BootstrapRun.js +2 -2
  9. package/dist/Experiment/BootstrapRun.js.map +1 -1
  10. package/dist/Experiment/Experiment.d.ts +7 -7
  11. package/dist/Experiment/Experiment.js +6 -6
  12. package/dist/Experiment/Experiment.js.map +1 -1
  13. package/dist/Experiment/KFoldRun.d.ts +17 -2
  14. package/dist/Experiment/KFoldRun.js +19 -4
  15. package/dist/Experiment/KFoldRun.js.map +1 -1
  16. package/dist/Experiment/KFoldRunSeparateTest.d.ts +13 -2
  17. package/dist/Experiment/KFoldRunSeparateTest.js +15 -4
  18. package/dist/Experiment/KFoldRunSeparateTest.js.map +1 -1
  19. package/dist/Experiment/MxKFoldRun.js +1 -1
  20. package/dist/Experiment/MxKFoldRun.js.map +1 -1
  21. package/dist/Experiment/MxKFoldRunSeparateTest.js +1 -1
  22. package/dist/Experiment/MxKFoldRunSeparateTest.js.map +1 -1
  23. package/dist/Experiment/SingleRunWithK.d.ts +18 -3
  24. package/dist/Experiment/SingleRunWithK.js +18 -3
  25. package/dist/Experiment/SingleRunWithK.js.map +1 -1
  26. package/dist/Experiment/StratifiedKFoldRun.js +1 -1
  27. package/dist/Experiment/StratifiedKFoldRun.js.map +1 -1
  28. package/dist/Experiment/StratifiedKFoldRunSeparateTest.js +1 -1
  29. package/dist/Experiment/StratifiedKFoldRunSeparateTest.js.map +1 -1
  30. package/dist/Experiment/StratifiedMxKFoldRun.js +1 -1
  31. package/dist/Experiment/StratifiedMxKFoldRun.js.map +1 -1
  32. package/dist/Experiment/StratifiedMxKFoldRunSeparateTest.js +3 -3
  33. package/dist/Experiment/StratifiedMxKFoldRunSeparateTest.js.map +1 -1
  34. package/dist/Experiment/StratifiedSingleRunWithK.js +1 -1
  35. package/dist/Experiment/StratifiedSingleRunWithK.js.map +1 -1
  36. package/dist/Filter/LaryFilter.d.ts +1 -1
  37. package/dist/Filter/LaryFilter.js +1 -1
  38. package/dist/Filter/TrainedFeatureFilter.d.ts +1 -1
  39. package/dist/Filter/TrainedFeatureFilter.js +1 -1
  40. package/dist/InstanceList/Partition.d.ts +45 -0
  41. package/dist/InstanceList/Partition.js +125 -70
  42. package/dist/InstanceList/Partition.js.map +1 -1
  43. package/dist/Model/DecisionTree/DecisionCondition.d.ts +8 -0
  44. package/dist/Model/DecisionTree/DecisionCondition.js +8 -0
  45. package/dist/Model/DecisionTree/DecisionCondition.js.map +1 -1
  46. package/dist/Model/DecisionTree/DecisionNode.d.ts +39 -1
  47. package/dist/Model/DecisionTree/DecisionNode.js +64 -22
  48. package/dist/Model/DecisionTree/DecisionNode.js.map +1 -1
  49. package/dist/Model/DecisionTree/DecisionStump.d.ts +17 -0
  50. package/dist/{Classifier/C45Stump.js → Model/DecisionTree/DecisionStump.js} +13 -10
  51. package/dist/Model/DecisionTree/DecisionStump.js.map +1 -0
  52. package/dist/Model/DecisionTree/DecisionTree.d.ts +24 -9
  53. package/dist/Model/DecisionTree/DecisionTree.js +39 -16
  54. package/dist/Model/DecisionTree/DecisionTree.js.map +1 -1
  55. package/dist/Model/DummyModel.d.ts +28 -3
  56. package/dist/Model/DummyModel.js +36 -23
  57. package/dist/Model/DummyModel.js.map +1 -1
  58. package/dist/{Classifier/Bagging.d.ts → Model/Ensemble/BaggingModel.d.ts} +8 -4
  59. package/dist/{Classifier/Bagging.js → Model/Ensemble/BaggingModel.js} +16 -14
  60. package/dist/Model/Ensemble/BaggingModel.js.map +1 -0
  61. package/dist/{Classifier/RandomForest.d.ts → Model/Ensemble/RandomForestModel.d.ts} +8 -4
  62. package/dist/{Classifier/RandomForest.js → Model/Ensemble/RandomForestModel.js} +16 -14
  63. package/dist/Model/Ensemble/RandomForestModel.js.map +1 -0
  64. package/dist/Model/Ensemble/TreeEnsembleModel.d.ts +32 -0
  65. package/dist/Model/{TreeEnsembleModel.js → Ensemble/TreeEnsembleModel.js} +23 -17
  66. package/dist/Model/Ensemble/TreeEnsembleModel.js.map +1 -0
  67. package/dist/Model/Model.d.ts +52 -0
  68. package/dist/Model/Model.js +84 -1
  69. package/dist/Model/Model.js.map +1 -1
  70. package/dist/Model/NeuralNetwork/DeepNetworkModel.d.ts +47 -0
  71. package/dist/Model/{DeepNetworkModel.js → NeuralNetwork/DeepNetworkModel.js} +55 -55
  72. package/dist/Model/NeuralNetwork/DeepNetworkModel.js.map +1 -0
  73. package/dist/Model/NeuralNetwork/LinearPerceptronModel.d.ts +31 -0
  74. package/dist/Model/NeuralNetwork/LinearPerceptronModel.js +84 -0
  75. package/dist/Model/NeuralNetwork/LinearPerceptronModel.js.map +1 -0
  76. package/dist/Model/NeuralNetwork/MultiLayerPerceptronModel.d.ts +39 -0
  77. package/dist/Model/{MultiLayerPerceptronModel.js → NeuralNetwork/MultiLayerPerceptronModel.js} +41 -37
  78. package/dist/Model/NeuralNetwork/MultiLayerPerceptronModel.js.map +1 -0
  79. package/dist/Model/{NeuralNetworkModel.d.ts → NeuralNetwork/NeuralNetworkModel.d.ts} +19 -5
  80. package/dist/Model/{NeuralNetworkModel.js → NeuralNetwork/NeuralNetworkModel.js} +19 -6
  81. package/dist/Model/NeuralNetwork/NeuralNetworkModel.js.map +1 -0
  82. package/dist/Model/{KnnInstance.d.ts → NonParametric/KnnInstance.d.ts} +1 -1
  83. package/dist/Model/NonParametric/KnnInstance.js.map +1 -0
  84. package/dist/Model/{KnnModel.d.ts → NonParametric/KnnModel.d.ts} +30 -6
  85. package/dist/Model/{KnnModel.js → NonParametric/KnnModel.js} +42 -19
  86. package/dist/Model/NonParametric/KnnModel.js.map +1 -0
  87. package/dist/Model/{GaussianModel.d.ts → Parametric/GaussianModel.d.ts} +20 -2
  88. package/dist/Model/{GaussianModel.js → Parametric/GaussianModel.js} +21 -3
  89. package/dist/Model/Parametric/GaussianModel.js.map +1 -0
  90. package/dist/Model/Parametric/KMeansModel.d.ts +36 -0
  91. package/dist/Model/Parametric/KMeansModel.js +73 -0
  92. package/dist/Model/Parametric/KMeansModel.js.map +1 -0
  93. package/dist/Model/Parametric/LdaModel.d.ts +44 -0
  94. package/dist/Model/Parametric/LdaModel.js +98 -0
  95. package/dist/Model/Parametric/LdaModel.js.map +1 -0
  96. package/dist/Model/{NaiveBayesModel.d.ts → Parametric/NaiveBayesModel.d.ts} +30 -10
  97. package/dist/Model/{NaiveBayesModel.js → Parametric/NaiveBayesModel.js} +64 -27
  98. package/dist/Model/Parametric/NaiveBayesModel.js.map +1 -0
  99. package/dist/Model/Parametric/QdaModel.d.ts +30 -0
  100. package/dist/Model/Parametric/QdaModel.js +84 -0
  101. package/dist/Model/Parametric/QdaModel.js.map +1 -0
  102. package/dist/Model/RandomModel.d.ts +32 -2
  103. package/dist/Model/RandomModel.js +48 -16
  104. package/dist/Model/RandomModel.js.map +1 -1
  105. package/dist/Parameter/C45Parameter.d.ts +2 -2
  106. package/dist/Parameter/DeepNetworkParameter.d.ts +2 -2
  107. package/dist/Parameter/KnnParameter.d.ts +1 -1
  108. package/dist/Parameter/LinearPerceptronParameter.d.ts +4 -4
  109. package/dist/Parameter/MultiLayerPerceptronParameter.d.ts +2 -2
  110. package/dist/Parameter/Parameter.d.ts +1 -1
  111. package/dist/Performance/ConfusionMatrix.d.ts +1 -1
  112. package/dist/StatisticalTest/Combined5x2F.d.ts +12 -0
  113. package/dist/StatisticalTest/Combined5x2F.js +12 -0
  114. package/dist/StatisticalTest/Combined5x2F.js.map +1 -1
  115. package/dist/StatisticalTest/Combined5x2t.d.ts +13 -0
  116. package/dist/StatisticalTest/Combined5x2t.js +13 -0
  117. package/dist/StatisticalTest/Combined5x2t.js.map +1 -1
  118. package/dist/StatisticalTest/Paired5x2t.d.ts +12 -0
  119. package/dist/StatisticalTest/Paired5x2t.js +12 -0
  120. package/dist/StatisticalTest/Paired5x2t.js.map +1 -1
  121. package/dist/StatisticalTest/PairedTest.d.ts +12 -0
  122. package/dist/StatisticalTest/PairedTest.js +12 -0
  123. package/dist/StatisticalTest/PairedTest.js.map +1 -1
  124. package/dist/StatisticalTest/Pairedt.d.ts +12 -0
  125. package/dist/StatisticalTest/Pairedt.js +12 -0
  126. package/dist/StatisticalTest/Pairedt.js.map +1 -1
  127. package/dist/StatisticalTest/Sign.d.ts +17 -0
  128. package/dist/StatisticalTest/Sign.js +17 -0
  129. package/dist/StatisticalTest/Sign.js.map +1 -1
  130. package/dist/StatisticalTest/StatisticalTestResult.d.ts +30 -0
  131. package/dist/StatisticalTest/StatisticalTestResult.js +30 -0
  132. package/dist/StatisticalTest/StatisticalTestResult.js.map +1 -1
  133. package/dist/index.d.ts +88 -0
  134. package/dist/index.js +111 -0
  135. package/dist/index.js.map +1 -0
  136. package/models/bagging-bupa.txt +10346 -0
  137. package/models/bagging-car.txt +40752 -0
  138. package/models/bagging-dermatology.txt +2990 -0
  139. package/models/bagging-iris.txt +1332 -0
  140. package/models/bagging-tictactoe.txt +29442 -0
  141. package/models/c45-bupa.txt +3 -0
  142. package/models/c45-car.txt +212 -0
  143. package/models/c45-carIndexed.txt +92 -0
  144. package/models/c45-dermatology.txt +22 -0
  145. package/models/c45-iris.txt +7 -0
  146. package/models/c45-tictactoe.txt +147 -0
  147. package/models/c45-tictactoeIndexed.txt +79 -0
  148. package/models/c45stump-bupa.txt +6 -0
  149. package/models/c45stump-car.txt +11 -0
  150. package/models/c45stump-chess.txt +35 -0
  151. package/models/c45stump-dermatology.txt +11 -0
  152. package/models/c45stump-iris.txt +5 -0
  153. package/models/c45stump-nursery.txt +10 -0
  154. package/models/c45stump-tictactoe.txt +9 -0
  155. package/models/randomforest-bupa.txt +10346 -0
  156. package/models/randomforest-car.txt +40752 -0
  157. package/models/randomforest-carIndexed.txt +15594 -0
  158. package/models/randomforest-dermatology.txt +2990 -0
  159. package/models/randomforest-iris.txt +1332 -0
  160. package/models/randomforest-tictactoe.txt +29442 -0
  161. package/package.json +7 -7
  162. package/source/Attribute/DiscreteAttribute.ts +1 -1
  163. package/source/Attribute/DiscreteIndexedAttribute.ts +2 -2
  164. package/source/DataSet/DataDefinition.ts +11 -0
  165. package/source/Experiment/BootstrapRun.ts +2 -2
  166. package/source/Experiment/Experiment.ts +10 -10
  167. package/source/Experiment/KFoldRun.ts +20 -5
  168. package/source/Experiment/KFoldRunSeparateTest.ts +16 -5
  169. package/source/Experiment/MxKFoldRun.ts +1 -1
  170. package/source/Experiment/MxKFoldRunSeparateTest.ts +1 -1
  171. package/source/Experiment/SingleRunWithK.ts +20 -5
  172. package/source/Experiment/StratifiedKFoldRun.ts +1 -1
  173. package/source/Experiment/StratifiedKFoldRunSeparateTest.ts +1 -1
  174. package/source/Experiment/StratifiedMxKFoldRun.ts +1 -1
  175. package/source/Experiment/StratifiedMxKFoldRunSeparateTest.ts +3 -3
  176. package/source/Experiment/StratifiedSingleRunWithK.ts +1 -1
  177. package/source/Filter/LaryFilter.ts +1 -1
  178. package/source/Filter/TrainedFeatureFilter.ts +1 -1
  179. package/source/InstanceList/Partition.ts +125 -65
  180. package/source/Model/DecisionTree/DecisionCondition.ts +8 -0
  181. package/source/Model/DecisionTree/DecisionNode.ts +65 -22
  182. package/source/Model/DecisionTree/DecisionStump.ts +26 -0
  183. package/source/Model/DecisionTree/DecisionTree.ts +44 -15
  184. package/source/Model/DummyModel.ts +40 -19
  185. package/source/{Classifier/Bagging.ts → Model/Ensemble/BaggingModel.ts} +15 -12
  186. package/source/{Classifier/RandomForest.ts → Model/Ensemble/RandomForestModel.ts} +14 -12
  187. package/source/Model/{TreeEnsembleModel.ts → Ensemble/TreeEnsembleModel.ts} +26 -18
  188. package/source/Model/Model.ts +92 -0
  189. package/source/Model/{DeepNetworkModel.ts → NeuralNetwork/DeepNetworkModel.ts} +59 -56
  190. package/source/Model/NeuralNetwork/LinearPerceptronModel.ts +81 -0
  191. package/source/Model/{MultiLayerPerceptronModel.ts → NeuralNetwork/MultiLayerPerceptronModel.ts} +46 -39
  192. package/source/Model/{NeuralNetworkModel.ts → NeuralNetwork/NeuralNetworkModel.ts} +20 -7
  193. package/source/Model/{KnnInstance.ts → NonParametric/KnnInstance.ts} +1 -1
  194. package/source/Model/{KnnModel.ts → NonParametric/KnnModel.ts} +48 -19
  195. package/source/Model/{GaussianModel.ts → Parametric/GaussianModel.ts} +21 -3
  196. package/source/Model/Parametric/KMeansModel.ts +72 -0
  197. package/source/Model/Parametric/LdaModel.ts +98 -0
  198. package/source/Model/{NaiveBayesModel.ts → Parametric/NaiveBayesModel.ts} +68 -25
  199. package/source/Model/Parametric/QdaModel.ts +83 -0
  200. package/source/Model/RandomModel.ts +54 -16
  201. package/source/Parameter/C45Parameter.ts +2 -2
  202. package/source/Parameter/DeepNetworkParameter.ts +2 -2
  203. package/source/Parameter/KnnParameter.ts +1 -1
  204. package/source/Parameter/LinearPerceptronParameter.ts +4 -4
  205. package/source/Parameter/MultiLayerPerceptronParameter.ts +2 -2
  206. package/source/Parameter/Parameter.ts +1 -1
  207. package/source/Performance/ConfusionMatrix.ts +1 -1
  208. package/source/StatisticalTest/Combined5x2F.ts +12 -0
  209. package/source/StatisticalTest/Combined5x2t.ts +13 -0
  210. package/source/StatisticalTest/Paired5x2t.ts +12 -0
  211. package/source/StatisticalTest/PairedTest.ts +12 -0
  212. package/source/StatisticalTest/Pairedt.ts +12 -0
  213. package/source/StatisticalTest/Sign.ts +17 -0
  214. package/source/StatisticalTest/StatisticalTestResult.ts +30 -0
  215. package/source/index.ts +88 -0
  216. package/source/tsconfig.json +1 -1
  217. package/tests/Classifier/C45Test.ts +2 -2
  218. package/tests/Classifier/DeepNetworkTest.ts +3 -5
  219. package/tests/Classifier/DummyTest.ts +2 -2
  220. package/tests/Classifier/KMeansTest.ts +2 -2
  221. package/tests/Classifier/KnnTest.ts +2 -2
  222. package/tests/Classifier/LdaTest.ts +2 -2
  223. package/tests/Classifier/LinearPerceptronTest.ts +2 -2
  224. package/tests/Classifier/MultiLayerPerceptronTest.ts +2 -3
  225. package/tests/Classifier/NaiveBayesTest.ts +2 -2
  226. package/tests/Classifier/QdaTest.ts +2 -2
  227. package/tests/Classifier/RandomForestTest.ts +2 -2
  228. package/tsconfig.json +1 -2
  229. package/dist/Classifier/Bagging.js.map +0 -1
  230. package/dist/Classifier/C45.d.ts +0 -14
  231. package/dist/Classifier/C45.js +0 -43
  232. package/dist/Classifier/C45.js.map +0 -1
  233. package/dist/Classifier/C45Stump.d.ts +0 -13
  234. package/dist/Classifier/C45Stump.js.map +0 -1
  235. package/dist/Classifier/Classifier.d.ts +0 -40
  236. package/dist/Classifier/Classifier.js +0 -72
  237. package/dist/Classifier/Classifier.js.map +0 -1
  238. package/dist/Classifier/DeepNetwork.d.ts +0 -14
  239. package/dist/Classifier/DeepNetwork.js +0 -34
  240. package/dist/Classifier/DeepNetwork.js.map +0 -1
  241. package/dist/Classifier/Dummy.d.ts +0 -14
  242. package/dist/Classifier/Dummy.js +0 -32
  243. package/dist/Classifier/Dummy.js.map +0 -1
  244. package/dist/Classifier/KMeans.d.ts +0 -13
  245. package/dist/Classifier/KMeans.js +0 -39
  246. package/dist/Classifier/KMeans.js.map +0 -1
  247. package/dist/Classifier/Knn.d.ts +0 -14
  248. package/dist/Classifier/Knn.js +0 -32
  249. package/dist/Classifier/Knn.js.map +0 -1
  250. package/dist/Classifier/Lda.d.ts +0 -13
  251. package/dist/Classifier/Lda.js +0 -55
  252. package/dist/Classifier/Lda.js.map +0 -1
  253. package/dist/Classifier/LinearPerceptron.d.ts +0 -15
  254. package/dist/Classifier/LinearPerceptron.js +0 -35
  255. package/dist/Classifier/LinearPerceptron.js.map +0 -1
  256. package/dist/Classifier/MultiLayerPerceptron.d.ts +0 -15
  257. package/dist/Classifier/MultiLayerPerceptron.js +0 -35
  258. package/dist/Classifier/MultiLayerPerceptron.js.map +0 -1
  259. package/dist/Classifier/NaiveBayes.d.ts +0 -26
  260. package/dist/Classifier/NaiveBayes.js +0 -70
  261. package/dist/Classifier/NaiveBayes.js.map +0 -1
  262. package/dist/Classifier/Qda.d.ts +0 -13
  263. package/dist/Classifier/Qda.js +0 -53
  264. package/dist/Classifier/Qda.js.map +0 -1
  265. package/dist/Classifier/RandomClassifier.d.ts +0 -13
  266. package/dist/Classifier/RandomClassifier.js +0 -35
  267. package/dist/Classifier/RandomClassifier.js.map +0 -1
  268. package/dist/Classifier/RandomForest.js.map +0 -1
  269. package/dist/Model/DeepNetworkModel.d.ts +0 -45
  270. package/dist/Model/DeepNetworkModel.js.map +0 -1
  271. package/dist/Model/GaussianModel.js.map +0 -1
  272. package/dist/Model/KMeansModel.d.ts +0 -28
  273. package/dist/Model/KMeansModel.js +0 -61
  274. package/dist/Model/KMeansModel.js.map +0 -1
  275. package/dist/Model/KnnInstance.js.map +0 -1
  276. package/dist/Model/KnnModel.js.map +0 -1
  277. package/dist/Model/LdaModel.d.ts +0 -28
  278. package/dist/Model/LdaModel.js +0 -67
  279. package/dist/Model/LdaModel.js.map +0 -1
  280. package/dist/Model/LinearPerceptronModel.d.ts +0 -24
  281. package/dist/Model/LinearPerceptronModel.js +0 -91
  282. package/dist/Model/LinearPerceptronModel.js.map +0 -1
  283. package/dist/Model/MultiLayerPerceptronModel.d.ts +0 -33
  284. package/dist/Model/MultiLayerPerceptronModel.js.map +0 -1
  285. package/dist/Model/NaiveBayesModel.js.map +0 -1
  286. package/dist/Model/NeuralNetworkModel.js.map +0 -1
  287. package/dist/Model/QdaModel.d.ts +0 -27
  288. package/dist/Model/QdaModel.js +0 -63
  289. package/dist/Model/QdaModel.js.map +0 -1
  290. package/dist/Model/TreeEnsembleModel.d.ts +0 -22
  291. package/dist/Model/TreeEnsembleModel.js.map +0 -1
  292. package/index.js +0 -100
  293. package/source/Classifier/C45.ts +0 -34
  294. package/source/Classifier/C45Stump.ts +0 -23
  295. package/source/Classifier/Classifier.ts +0 -72
  296. package/source/Classifier/DeepNetwork.ts +0 -26
  297. package/source/Classifier/Dummy.ts +0 -23
  298. package/source/Classifier/KMeans.ts +0 -30
  299. package/source/Classifier/Knn.ts +0 -25
  300. package/source/Classifier/Lda.ts +0 -47
  301. package/source/Classifier/LinearPerceptron.ts +0 -27
  302. package/source/Classifier/MultiLayerPerceptron.ts +0 -27
  303. package/source/Classifier/NaiveBayes.ts +0 -66
  304. package/source/Classifier/Qda.ts +0 -46
  305. package/source/Classifier/RandomClassifier.ts +0 -26
  306. package/source/Model/KMeansModel.ts +0 -56
  307. package/source/Model/LdaModel.ts +0 -62
  308. package/source/Model/LinearPerceptronModel.ts +0 -83
  309. package/source/Model/QdaModel.ts +0 -57
  310. /package/dist/Model/{KnnInstance.js → NonParametric/KnnInstance.js} +0 -0
package/index.js DELETED
@@ -1,100 +0,0 @@
1
- export * from "./dist/Attribute/Attribute"
2
- export * from "./dist/Attribute/AttributeType"
3
- export * from "./dist/Attribute/BinaryAttribute"
4
- export * from "./dist/Attribute/ContinuousAttribute"
5
- export * from "./dist/Attribute/DiscreteAttribute"
6
- export * from "./dist/Attribute/DiscreteIndexedAttribute"
7
- export * from "./dist/Classifier/Bagging"
8
- export * from "./dist/Classifier/C45"
9
- export * from "./dist/Classifier/C45Stump"
10
- export * from "./dist/Classifier/Classifier"
11
- export * from "./dist/Classifier/DeepNetwork"
12
- export * from "./dist/Classifier/Dummy"
13
- export * from "./dist/Classifier/KMeans"
14
- export * from "./dist/Classifier/Knn"
15
- export * from "./dist/Classifier/Lda"
16
- export * from "./dist/Classifier/LinearPerceptron"
17
- export * from "./dist/Classifier/MultiLayerPerceptron"
18
- export * from "./dist/Classifier/NaiveBayes"
19
- export * from "./dist/Classifier/Qda"
20
- export * from "./dist/Classifier/RandomClassifier"
21
- export * from "./dist/Classifier/RandomForest"
22
- export * from "./dist/DataSet/DataDefinition"
23
- export * from "./dist/DataSet/DataSet"
24
- export * from "./dist/DistanceMetric/DistanceMetric"
25
- export * from "./dist/DistanceMetric/EuclidianDistance"
26
- export * from "./dist/DistanceMetric/MahalanobisDistance"
27
- export * from "./dist/Experiment/BootstrapRun"
28
- export * from "./dist/Experiment/Experiment"
29
- export * from "./dist/Experiment/KFoldRun"
30
- export * from "./dist/Experiment/KFoldRunSeparateTest"
31
- export * from "./dist/Experiment/MultipleRun"
32
- export * from "./dist/Experiment/MxKFoldRun"
33
- export * from "./dist/Experiment/MxKFoldRunSeparateTest"
34
- export * from "./dist/Experiment/SingleRun"
35
- export * from "./dist/Experiment/SingleRunWithK"
36
- export * from "./dist/Experiment/StratifiedKFoldRun"
37
- export * from "./dist/Experiment/StratifiedKFoldRunSeparateTest"
38
- export * from "./dist/Experiment/StratifiedMxKFoldRun"
39
- export * from "./dist/Experiment/StratifiedMxKFoldRunSeparateTest"
40
- export * from "./dist/Experiment/StratifiedSingleRunWithK"
41
- export * from "./dist/FeatureSelection/BackwardSelection"
42
- export * from "./dist/FeatureSelection/FeatureSubSet"
43
- export * from "./dist/FeatureSelection/FloatingSelection"
44
- export * from "./dist/FeatureSelection/ForwardSelection"
45
- export * from "./dist/FeatureSelection/SubSetSelection"
46
- export * from "./dist/Filter/DiscreteToContinuous"
47
- export * from "./dist/Filter/DiscreteToIndexed"
48
- export * from "./dist/Filter/FeatureFilter"
49
- export * from "./dist/Filter/LaryFilter"
50
- export * from "./dist/Filter/LaryToBinary"
51
- export * from "./dist/Filter/Normalize"
52
- export * from "./dist/Filter/Pca"
53
- export * from "./dist/Filter/TrainedFeatureFilter"
54
- export * from "./dist/Instance/CompositeInstance"
55
- export * from "./dist/Instance/Instance"
56
- export * from "./dist/InstanceList/InstanceList"
57
- export * from "./dist/InstanceList/InstanceListOfSameClass"
58
- export * from "./dist/InstanceList/Partition"
59
- export * from "./dist/Model/DecisionTree/DecisionCondition"
60
- export * from "./dist/Model/DecisionTree/DecisionNode"
61
- export * from "./dist/Model/DecisionTree/DecisionTree"
62
- export * from "./dist/Model/DeepNetworkModel"
63
- export * from "./dist/Model/DummyModel"
64
- export * from "./dist/Model/GaussianModel"
65
- export * from "./dist/Model/KMeansModel"
66
- export * from "./dist/Model/KnnInstance"
67
- export * from "./dist/Model/KnnModel"
68
- export * from "./dist/Model/LdaModel"
69
- export * from "./dist/Model/LinearPerceptronModel"
70
- export * from "./dist/Model/Model"
71
- export * from "./dist/Model/MultiLayerPerceptronModel"
72
- export * from "./dist/Model/NaiveBayesModel"
73
- export * from "./dist/Model/NeuralNetworkModel"
74
- export * from "./dist/Model/QdaModel"
75
- export * from "./dist/Model/RandomModel"
76
- export * from "./dist/Model/TreeEnsembleModel"
77
- export * from "./dist/Model/ValidatedModel"
78
- export * from "./dist/Parameter/ActivationFunction"
79
- export * from "./dist/Parameter/BaggingParameter"
80
- export * from "./dist/Parameter/C45Parameter"
81
- export * from "./dist/Parameter/DeepNetworkParameter"
82
- export * from "./dist/Parameter/KMeansParameter"
83
- export * from "./dist/Parameter/KnnParameter"
84
- export * from "./dist/Parameter/LinearPerceptronParameter"
85
- export * from "./dist/Parameter/MultiLayerPerceptronParameter"
86
- export * from "./dist/Parameter/Parameter"
87
- export * from "./dist/Parameter/RandomForestParameter"
88
- export * from "./dist/Performance/ClassificationPerformance"
89
- export * from "./dist/Performance/ConfusionMatrix"
90
- export * from "./dist/Performance/DetailedClassificationPerformance"
91
- export * from "./dist/Performance/ExperimentPerformance"
92
- export * from "./dist/Performance/Performance"
93
- export * from "./dist/StatisticalTest/Combined5x2F"
94
- export * from "./dist/StatisticalTest/Combined5x2t"
95
- export * from "./dist/StatisticalTest/Paired5x2t"
96
- export * from "./dist/StatisticalTest/Pairedt"
97
- export * from "./dist/StatisticalTest/PairedTest"
98
- export * from "./dist/StatisticalTest/Sign"
99
- export * from "./dist/StatisticalTest/StatisticalTestResult"
100
- export * from "./dist/StatisticalTest/StatisticalTestResultType"
@@ -1,34 +0,0 @@
1
- import {Classifier} from "./Classifier";
2
- import {InstanceList} from "../InstanceList/InstanceList";
3
- import {Parameter} from "../Parameter/Parameter";
4
- import {C45Parameter} from "../Parameter/C45Parameter";
5
- import {Partition} from "../InstanceList/Partition";
6
- import {DecisionTree} from "../Model/DecisionTree/DecisionTree";
7
- import {DecisionNode} from "../Model/DecisionTree/DecisionNode";
8
-
9
- export class C45 extends Classifier{
10
-
11
- /**
12
- * Training algorithm for C4.5 univariate decision tree classifier. 20 percent of the data are left aside for pruning
13
- * 80 percent of the data is used for constructing the tree.
14
- *
15
- * @param trainSet Training data given to the algorithm.
16
- * @param parameters -
17
- */
18
- train(trainSet: InstanceList, parameters: Parameter): void {
19
- let tree: DecisionTree
20
- if ((<C45Parameter> parameters).isPrune()) {
21
- let partition = new Partition(trainSet, (<C45Parameter> parameters).getCrossValidationRatio(), true);
22
- tree = new DecisionTree(new DecisionNode(partition.get(1), undefined, undefined, false));
23
- tree.prune(partition.get(0));
24
- } else {
25
- tree = new DecisionTree(new DecisionNode(trainSet, undefined, undefined, false));
26
- }
27
- this.model = tree;
28
- }
29
-
30
- loadModel(fileName: string): void{
31
- this.model = new DecisionTree(fileName)
32
- }
33
-
34
- }
@@ -1,23 +0,0 @@
1
- import {Classifier} from "./Classifier";
2
- import {InstanceList} from "../InstanceList/InstanceList";
3
- import {Parameter} from "../Parameter/Parameter";
4
- import {DecisionTree} from "../Model/DecisionTree/DecisionTree";
5
- import {DecisionNode} from "../Model/DecisionTree/DecisionNode";
6
-
7
- export class C45Stump extends Classifier{
8
-
9
- /**
10
- * Training algorithm for C4.5 Stump univariate decision tree classifier.
11
- *
12
- * @param trainSet Training data given to the algorithm.
13
- * @param parameters -
14
- */
15
- train(trainSet: InstanceList, parameters: Parameter): void {
16
- this.model = new DecisionTree(new DecisionNode(trainSet, undefined, undefined, true));
17
- }
18
-
19
- loadModel(fileName: string): void{
20
- this.model = new DecisionTree(fileName)
21
- }
22
-
23
- }
@@ -1,72 +0,0 @@
1
- import {Model} from "../Model/Model";
2
- import {InstanceList} from "../InstanceList/InstanceList";
3
- import {Parameter} from "../Parameter/Parameter";
4
- import {Instance} from "../Instance/Instance";
5
- import {DiscreteAttribute} from "../Attribute/DiscreteAttribute";
6
- import {DiscreteIndexedAttribute} from "../Attribute/DiscreteIndexedAttribute";
7
- import {ConfusionMatrix} from "../Performance/ConfusionMatrix";
8
- import {Performance} from "../Performance/Performance";
9
- import {DetailedClassificationPerformance} from "../Performance/DetailedClassificationPerformance";
10
-
11
- export abstract class Classifier {
12
-
13
- protected model: Model
14
-
15
- abstract train(trainSet: InstanceList, parameters: Parameter):void
16
- abstract loadModel(fileName: string): void
17
-
18
- /**
19
- * Checks given instance's attribute and returns true if it is a discrete indexed attribute, false otherwise.
20
- *
21
- * @param instance Instance to check.
22
- * @return True if instance is a discrete indexed attribute, false otherwise.
23
- */
24
- discreteCheck(instance: Instance): boolean{
25
- for (let i = 0; i < instance.attributeSize(); i++) {
26
- if (instance.getAttribute(i) instanceof DiscreteAttribute &&
27
- !(instance.getAttribute(i) instanceof DiscreteIndexedAttribute)) {
28
- return false;
29
- }
30
- }
31
- return true;
32
- }
33
-
34
- /**
35
- * TestClassification an instance list with the current model.
36
- *
37
- * @param testSet Test data (list of instances) to be tested.
38
- * @return The accuracy (and error) of the model as an instance of Performance class.
39
- */
40
- test(testSet: InstanceList): Performance{
41
- let classLabels = testSet.getUnionOfPossibleClassLabels();
42
- let confusion = new ConfusionMatrix(classLabels);
43
- for (let i = 0; i < testSet.size(); i++) {
44
- let instance = testSet.get(i);
45
- confusion.classify(instance.getClassLabel(), this.model.predict(instance));
46
- }
47
- return new DetailedClassificationPerformance(confusion);
48
- }
49
-
50
- /**
51
- * Runs current classifier with the given train and test data.
52
- *
53
- * @param parameter Parameter of the classifier to be trained.
54
- * @param trainSet Training data to be used in training the classifier.
55
- * @param testSet Test data to be tested after training the model.
56
- * @return The accuracy (and error) of the trained model as an instance of Performance class.
57
- * @throws DiscreteFeaturesNotAllowed Exception for discrete features.
58
- */
59
- singleRun(parameter: Parameter, trainSet: InstanceList, testSet: InstanceList): Performance{
60
- this.train(trainSet, parameter);
61
- return this.test(testSet);
62
- }
63
-
64
- /**
65
- * Accessor for the model.
66
- *
67
- * @return Model.
68
- */
69
- getModel(): Model{
70
- return this.model
71
- }
72
- }
@@ -1,26 +0,0 @@
1
- import {Classifier} from "./Classifier";
2
- import {InstanceList} from "../InstanceList/InstanceList";
3
- import {Parameter} from "../Parameter/Parameter";
4
- import {Partition} from "../InstanceList/Partition";
5
- import {DeepNetworkParameter} from "../Parameter/DeepNetworkParameter";
6
- import {DeepNetworkModel} from "../Model/DeepNetworkModel";
7
-
8
- export class DeepNetwork extends Classifier{
9
-
10
- /**
11
- * Training algorithm for deep network classifier.
12
- *
13
- * @param trainSet Training data given to the algorithm.
14
- * @param parameters Parameters of the deep network algorithm. crossValidationRatio and seed are used as parameters.
15
- * @throws DiscreteFeaturesNotAllowed Exception for discrete features.
16
- */
17
- train(trainSet: InstanceList, parameters: Parameter): void {
18
- let partition = new Partition(trainSet, (<DeepNetworkParameter> parameters).getCrossValidationRatio(), true);
19
- this.model = new DeepNetworkModel(partition.get(1), partition.get(0), <DeepNetworkParameter> parameters);
20
- }
21
-
22
- loadModel(fileName: string): void{
23
- this.model = new DeepNetworkModel(fileName)
24
- }
25
-
26
- }
@@ -1,23 +0,0 @@
1
- import {Classifier} from "./Classifier";
2
- import {InstanceList} from "../InstanceList/InstanceList";
3
- import {Parameter} from "../Parameter/Parameter";
4
- import {DummyModel} from "../Model/DummyModel";
5
-
6
- export class Dummy extends Classifier{
7
-
8
- /**
9
- * Training algorithm for the dummy classifier. Actually dummy classifier returns the maximum occurring class in
10
- * the training data, there is no training.
11
- *
12
- * @param trainSet Training data given to the algorithm.
13
- * @param parameters -
14
- */
15
- train(trainSet: InstanceList, parameters: Parameter): void {
16
- this.model = new DummyModel(trainSet);
17
- }
18
-
19
- loadModel(fileName: string): void{
20
- this.model = new DummyModel(fileName)
21
- }
22
-
23
- }
@@ -1,30 +0,0 @@
1
- import {Classifier} from "./Classifier";
2
- import {InstanceList} from "../InstanceList/InstanceList";
3
- import {Parameter} from "../Parameter/Parameter";
4
- import {Partition} from "../InstanceList/Partition";
5
- import {KMeansModel} from "../Model/KMeansModel";
6
- import {KMeansParameter} from "../Parameter/KMeansParameter";
7
-
8
- export class KMeans extends Classifier{
9
-
10
- /**
11
- * Training algorithm for K-Means classifier. K-Means finds the mean of each class for training.
12
- *
13
- * @param trainSet Training data given to the algorithm.
14
- * @param parameters distanceMetric: distance metric used to calculate the distance between two instances.
15
- */
16
- train(trainSet: InstanceList, parameters: Parameter): void {
17
- let priorDistribution = trainSet.classDistribution();
18
- let classMeans = new InstanceList();
19
- let classLists = new Partition(trainSet);
20
- for (let i = 0; i < classLists.size(); i++) {
21
- classMeans.add(classLists.get(i).average());
22
- }
23
- this.model = new KMeansModel(priorDistribution, classMeans, (<KMeansParameter> parameters).getDistanceMetric());
24
- }
25
-
26
- loadModel(fileName: string): void{
27
- this.model = new KMeansModel(fileName)
28
- }
29
-
30
- }
@@ -1,25 +0,0 @@
1
- import {Classifier} from "./Classifier";
2
- import {InstanceList} from "../InstanceList/InstanceList";
3
- import {Parameter} from "../Parameter/Parameter";
4
- import {KnnModel} from "../Model/KnnModel";
5
- import {KnnParameter} from "../Parameter/KnnParameter";
6
-
7
- export class Knn extends Classifier{
8
-
9
-
10
- /**
11
- * Training algorithm for K-nearest neighbor classifier.
12
- *
13
- * @param trainSet Training data given to the algorithm.
14
- * @param parameters K: k parameter of the K-nearest neighbor algorithm
15
- * distanceMetric: distance metric used to calculate the distance between two instances.
16
- */
17
- train(trainSet: InstanceList, parameters: Parameter): void {
18
- this.model = new KnnModel(trainSet, (<KnnParameter> parameters).getK(), (<KnnParameter> parameters).getDistanceMetric());
19
- }
20
-
21
- loadModel(fileName: string): void{
22
- this.model = new KnnModel(fileName)
23
- }
24
-
25
- }
@@ -1,47 +0,0 @@
1
- import {Classifier} from "./Classifier";
2
- import {InstanceList} from "../InstanceList/InstanceList";
3
- import {Parameter} from "../Parameter/Parameter";
4
- import {Vector} from "nlptoolkit-math/dist/Vector";
5
- import {Partition} from "../InstanceList/Partition";
6
- import {Matrix} from "nlptoolkit-math/dist/Matrix";
7
- import {InstanceListOfSameClass} from "../InstanceList/InstanceListOfSameClass";
8
- import {LdaModel} from "../Model/LdaModel";
9
-
10
- export class Lda extends Classifier{
11
-
12
- /**
13
- * Training algorithm for the linear discriminant analysis classifier (Introduction to Machine Learning, Alpaydin, 2015).
14
- *
15
- * @param trainSet Training data given to the algorithm.
16
- * @param parameters -
17
- */
18
- train(trainSet: InstanceList, parameters: Parameter): void {
19
- let w0 = new Map<string, number>();
20
- let w = new Map<string, Vector>();
21
- let priorDistribution = trainSet.classDistribution();
22
- let classLists = new Partition(trainSet);
23
- let covariance = new Matrix(trainSet.get(0).continuousAttributeSize(), trainSet.get(0).continuousAttributeSize());
24
- for (let i = 0; i < classLists.size(); i++) {
25
- let averageVector = new Vector(classLists.get(i).continuousAttributeAverage());
26
- let classCovariance = classLists.get(i).covariance(averageVector);
27
- classCovariance.multiplyWithConstant(classLists.get(i).size() - 1);
28
- covariance.add(classCovariance);
29
- }
30
- covariance.divideByConstant(trainSet.size() - classLists.size());
31
- covariance.inverse();
32
- for (let i = 0; i < classLists.size(); i++) {
33
- let Ci = (<InstanceListOfSameClass> classLists.get(i)).getClassLabel();
34
- let averageVector = new Vector(classLists.get(i).continuousAttributeAverage());
35
- let wi = covariance.multiplyWithVectorFromRight(averageVector);
36
- w.set(Ci, wi);
37
- let w0i = -0.5 * wi.dotProduct(averageVector) + Math.log(priorDistribution.getProbability(Ci));
38
- w0.set(Ci, w0i);
39
- }
40
- this.model = new LdaModel(priorDistribution, w, w0);
41
- }
42
-
43
- loadModel(fileName: string): void{
44
- this.model = new LdaModel(fileName)
45
- }
46
-
47
- }
@@ -1,27 +0,0 @@
1
- import {Classifier} from "./Classifier";
2
- import {InstanceList} from "../InstanceList/InstanceList";
3
- import {Parameter} from "../Parameter/Parameter";
4
- import {Partition} from "../InstanceList/Partition";
5
- import {LinearPerceptronParameter} from "../Parameter/LinearPerceptronParameter";
6
- import {LinearPerceptronModel} from "../Model/LinearPerceptronModel";
7
-
8
- export class LinearPerceptron extends Classifier{
9
-
10
- /**
11
- * Training algorithm for the linear perceptron algorithm. 20 percent of the data is separated as cross-validation
12
- * data used for selecting the best weights. 80 percent of the data is used for training the linear perceptron with
13
- * gradient descent.
14
- *
15
- * @param trainSet Training data given to the algorithm
16
- * @param parameters Parameters of the linear perceptron.
17
- */
18
- train(trainSet: InstanceList, parameters: Parameter): void {
19
- let partition = new Partition(trainSet, (<LinearPerceptronParameter> parameters).getCrossValidationRatio(), true);
20
- this.model = new LinearPerceptronModel(partition.get(1), partition.get(0), <LinearPerceptronParameter> parameters);
21
- }
22
-
23
- loadModel(fileName: string): void{
24
- this.model = new LinearPerceptronModel(fileName)
25
- }
26
-
27
- }
@@ -1,27 +0,0 @@
1
- import {Classifier} from "./Classifier";
2
- import {InstanceList} from "../InstanceList/InstanceList";
3
- import {Parameter} from "../Parameter/Parameter";
4
- import {Partition} from "../InstanceList/Partition";
5
- import {MultiLayerPerceptronParameter} from "../Parameter/MultiLayerPerceptronParameter";
6
- import {MultiLayerPerceptronModel} from "../Model/MultiLayerPerceptronModel";
7
-
8
- export class MultiLayerPerceptron extends Classifier{
9
-
10
- /**
11
- * Training algorithm for the multilayer perceptron algorithm. 20 percent of the data is separated as cross-validation
12
- * data used for selecting the best weights. 80 percent of the data is used for training the multilayer perceptron with
13
- * gradient descent.
14
- *
15
- * @param trainSet Training data given to the algorithm
16
- * @param parameters Parameters of the multilayer perceptron.
17
- */
18
- train(trainSet: InstanceList, parameters: Parameter): void {
19
- let partition = new Partition(trainSet, (<MultiLayerPerceptronParameter> parameters).getCrossValidationRatio(), true);
20
- this.model = new MultiLayerPerceptronModel(partition.get(1), partition.get(0), <MultiLayerPerceptronParameter> parameters);
21
- }
22
-
23
- loadModel(fileName: string): void{
24
- this.model = new MultiLayerPerceptronModel(fileName)
25
- }
26
-
27
- }
@@ -1,66 +0,0 @@
1
- import {Classifier} from "./Classifier";
2
- import {InstanceList} from "../InstanceList/InstanceList";
3
- import {Parameter} from "../Parameter/Parameter";
4
- import {DiscreteDistribution} from "nlptoolkit-math/dist/DiscreteDistribution";
5
- import {Partition} from "../InstanceList/Partition";
6
- import {Vector} from "nlptoolkit-math/dist/Vector";
7
- import {InstanceListOfSameClass} from "../InstanceList/InstanceListOfSameClass";
8
- import {NaiveBayesModel} from "../Model/NaiveBayesModel";
9
- import {DiscreteAttribute} from "../Attribute/DiscreteAttribute";
10
-
11
- export class NaiveBayes extends Classifier{
12
-
13
- /**
14
- * Training algorithm for Naive Bayes algorithm with a continuous data set.
15
- *
16
- * @param priorDistribution Probability distribution of classes P(C_i)
17
- * @param classLists Instances are divided into K lists, where each list contains only instances from a single class
18
- */
19
- private trainContinuousVersion(priorDistribution: DiscreteDistribution, classLists: Partition){
20
- let classMeans = new Map<string, Vector>();
21
- let classDeviations = new Map<string, Vector>();
22
- for (let i = 0; i < classLists.size(); i++){
23
- let classLabel = (<InstanceListOfSameClass> classLists.get(i)).getClassLabel();
24
- let averageVector = classLists.get(i).average().toVector();
25
- classMeans.set(classLabel, averageVector);
26
- let standardDeviationVector = classLists.get(i).standardDeviation().toVector();
27
- classDeviations.set(classLabel, standardDeviationVector);
28
- }
29
- this.model = new NaiveBayesModel(priorDistribution, classMeans, classDeviations);
30
- }
31
-
32
- /**
33
- * Training algorithm for Naive Bayes algorithm with a discrete data set.
34
- * @param priorDistribution Probability distribution of classes P(C_i)
35
- * @param classLists Instances are divided into K lists, where each list contains only instances from a single class
36
- */
37
- private trainDiscreteVersion(priorDistribution: DiscreteDistribution, classLists: Partition){
38
- let classAttributeDistributions = new Map<String, Array<DiscreteDistribution>>();
39
- for (let i = 0; i < classLists.size(); i++){
40
- classAttributeDistributions.set((<InstanceListOfSameClass> classLists.get(i)).getClassLabel(),
41
- classLists.get(i).allAttributesDistribution());
42
- }
43
- this.model = new NaiveBayesModel(priorDistribution, classAttributeDistributions);
44
- }
45
-
46
- /**
47
- * Training algorithm for Naive Bayes algorithm. It basically calls trainContinuousVersion for continuous data sets,
48
- * trainDiscreteVersion for discrete data sets.
49
- * @param trainSet Training data given to the algorithm
50
- * @param parameters -
51
- */
52
- train(trainSet: InstanceList, parameters: Parameter): void {
53
- let priorDistribution = trainSet.classDistribution();
54
- let classLists = new Partition(trainSet);
55
- if (classLists.get(0).get(0).getAttribute(0) instanceof DiscreteAttribute){
56
- this.trainDiscreteVersion(priorDistribution, classLists);
57
- } else {
58
- this.trainContinuousVersion(priorDistribution, classLists);
59
- }
60
- }
61
-
62
- loadModel(fileName: string): void{
63
- this.model = new NaiveBayesModel(fileName)
64
- }
65
-
66
- }
@@ -1,46 +0,0 @@
1
- import {Classifier} from "./Classifier";
2
- import {Parameter} from "../Parameter/Parameter";
3
- import {InstanceList} from "../InstanceList/InstanceList";
4
- import {Vector} from "nlptoolkit-math/dist/Vector";
5
- import {Matrix} from "nlptoolkit-math/dist/Matrix";
6
- import {Partition} from "../InstanceList/Partition";
7
- import {InstanceListOfSameClass} from "../InstanceList/InstanceListOfSameClass";
8
- import {QdaModel} from "../Model/QdaModel";
9
-
10
- export class Qda extends Classifier{
11
-
12
- /**
13
- * Training algorithm for the quadratic discriminant analysis classifier (Introduction to Machine Learning, Alpaydin, 2015).
14
- *
15
- * @param trainSet Training data given to the algorithm.
16
- * @param parameters -
17
- */
18
- train(trainSet: InstanceList, parameters: Parameter) {
19
- let determinant = 0
20
- let w0 = new Map<string, number>();
21
- let w = new Map<string, Vector>();
22
- let W = new Map<string, Matrix>();
23
- let classLists = new Partition(trainSet);
24
- let priorDistribution = trainSet.classDistribution();
25
- for (let i = 0; i < classLists.size(); i++) {
26
- let Ci = (<InstanceListOfSameClass> classLists.get(i)).getClassLabel();
27
- let averageVector = new Vector(classLists.get(i).continuousAttributeAverage());
28
- let classCovariance = classLists.get(i).covariance(averageVector);
29
- determinant = classCovariance.determinant();
30
- classCovariance.inverse();
31
- let Wi = classCovariance.clone();
32
- Wi.multiplyWithConstant(-0.5);
33
- W.set(Ci, Wi);
34
- let wi = classCovariance.multiplyWithVectorFromLeft(averageVector);
35
- w.set(Ci, wi);
36
- let w0i = -0.5 * (wi.dotProduct(averageVector) + Math.log(determinant)) + Math.log(priorDistribution.getProbability(Ci));
37
- w0.set(Ci, w0i);
38
- }
39
- this.model = new QdaModel(priorDistribution, W, w, w0);
40
- }
41
-
42
- loadModel(fileName: string): void{
43
- this.model = new QdaModel(fileName)
44
- }
45
-
46
- }
@@ -1,26 +0,0 @@
1
- import {Classifier} from "./Classifier";
2
- import {InstanceList} from "../InstanceList/InstanceList";
3
- import {Parameter} from "../Parameter/Parameter";
4
- import {RandomModel} from "../Model/RandomModel";
5
-
6
- export class RandomClassifier extends Classifier{
7
-
8
- /**
9
- * Training algorithm for random classifier.
10
- *
11
- * @param trainSet Training data given to the algorithm.
12
- * @param parameters -
13
- */
14
- train(trainSet: InstanceList, parameters: Parameter): void {
15
- let result = new Array<string>()
16
- for (let s of trainSet.classDistribution().keys()){
17
- result.push(s)
18
- }
19
- this.model = new RandomModel(result, parameters.getSeed());
20
- }
21
-
22
- loadModel(fileName: string): void{
23
- this.model = new RandomModel(fileName)
24
- }
25
-
26
- }
@@ -1,56 +0,0 @@
1
- import {GaussianModel} from "./GaussianModel";
2
- import {InstanceList} from "../InstanceList/InstanceList";
3
- import {DistanceMetric} from "../DistanceMetric/DistanceMetric";
4
- import {Instance} from "../Instance/Instance";
5
- import {DiscreteDistribution} from "nlptoolkit-math/dist/DiscreteDistribution";
6
- import {FileContents} from "nlptoolkit-util/dist/FileContents";
7
- import {EuclidianDistance} from "../DistanceMetric/EuclidianDistance";
8
-
9
- export class KMeansModel extends GaussianModel{
10
-
11
- private classMeans: InstanceList
12
- private distanceMetric: DistanceMetric
13
-
14
- /**
15
- * The constructor that sets the classMeans, priorDistribution and distanceMetric according to given inputs.
16
- *
17
- * @param priorDistributionOrFileName {@link DiscreteDistribution} input.
18
- * @param classMeans {@link InstanceList} of class means.
19
- * @param distanceMetric {@link DistanceMetric} input.
20
- */
21
- constructor(priorDistributionOrFileName: DiscreteDistribution | string, classMeans?: InstanceList, distanceMetric?: DistanceMetric) {
22
- super()
23
- if (priorDistributionOrFileName instanceof DiscreteDistribution){
24
- this.classMeans = classMeans
25
- this.priorDistribution = priorDistributionOrFileName
26
- this.distanceMetric = distanceMetric
27
- } else {
28
- this.distanceMetric = new EuclidianDistance()
29
- let input = new FileContents(priorDistributionOrFileName)
30
- this.loadPriorDistribution(input)
31
- this.classMeans = this.loadInstanceList(input)
32
- }
33
- }
34
-
35
- /**
36
- * The calculateMetric method takes an {@link Instance} and a String as inputs. It loops through the class means, if
37
- * the corresponding class label is same as the given String it returns the negated distance between given instance and the
38
- * current item of class means. Otherwise it returns the smallest negative number.
39
- *
40
- * @param instance {@link Instance} input.
41
- * @param Ci String input.
42
- * @return The negated distance between given instance and the current item of class means.
43
- */
44
- calculateMetric(instance: Instance, Ci: string): number {
45
- for (let i = 0; i < this.classMeans.size(); i++) {
46
- if (this.classMeans.get(i).getClassLabel() == Ci) {
47
- return -this.distanceMetric.distance(instance, this.classMeans.get(i));
48
- }
49
- }
50
- return Number.NEGATIVE_INFINITY;
51
- }
52
-
53
- saveTxt(fileName: string){
54
- }
55
-
56
- }