nlptoolkit-classification 1.0.0

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 (412) hide show
  1. package/README.md +161 -0
  2. package/datasets/bupa.data +345 -0
  3. package/datasets/car.data +1728 -0
  4. package/datasets/chess.data +28056 -0
  5. package/datasets/dermatology.data +366 -0
  6. package/datasets/iris.data +150 -0
  7. package/datasets/nursery.data +12960 -0
  8. package/datasets/tictactoe.data +958 -0
  9. package/dist/Attribute/Attribute.d.ts +4 -0
  10. package/dist/Attribute/Attribute.js +17 -0
  11. package/dist/Attribute/Attribute.js.map +1 -0
  12. package/dist/Attribute/AttributeType.d.ts +18 -0
  13. package/dist/Attribute/AttributeType.js +33 -0
  14. package/dist/Attribute/AttributeType.js.map +1 -0
  15. package/dist/Attribute/BinaryAttribute.d.ts +9 -0
  16. package/dist/Attribute/BinaryAttribute.js +26 -0
  17. package/dist/Attribute/BinaryAttribute.js.map +1 -0
  18. package/dist/Attribute/ContinuousAttribute.d.ts +30 -0
  19. package/dist/Attribute/ContinuousAttribute.js +59 -0
  20. package/dist/Attribute/ContinuousAttribute.js.map +1 -0
  21. package/dist/Attribute/DiscreteAttribute.d.ts +24 -0
  22. package/dist/Attribute/DiscreteAttribute.js +53 -0
  23. package/dist/Attribute/DiscreteAttribute.js.map +1 -0
  24. package/dist/Attribute/DiscreteIndexedAttribute.d.ts +27 -0
  25. package/dist/Attribute/DiscreteIndexedAttribute.js +61 -0
  26. package/dist/Attribute/DiscreteIndexedAttribute.js.map +1 -0
  27. package/dist/Classifier/Bagging.d.ts +16 -0
  28. package/dist/Classifier/Bagging.js +42 -0
  29. package/dist/Classifier/Bagging.js.map +1 -0
  30. package/dist/Classifier/C45.d.ts +13 -0
  31. package/dist/Classifier/C45.js +40 -0
  32. package/dist/Classifier/C45.js.map +1 -0
  33. package/dist/Classifier/C45Stump.d.ts +12 -0
  34. package/dist/Classifier/C45Stump.js +29 -0
  35. package/dist/Classifier/C45Stump.js.map +1 -0
  36. package/dist/Classifier/Classifier.d.ts +39 -0
  37. package/dist/Classifier/Classifier.js +72 -0
  38. package/dist/Classifier/Classifier.js.map +1 -0
  39. package/dist/Classifier/DeepNetwork.d.ts +13 -0
  40. package/dist/Classifier/DeepNetwork.js +31 -0
  41. package/dist/Classifier/DeepNetwork.js.map +1 -0
  42. package/dist/Classifier/Dummy.d.ts +13 -0
  43. package/dist/Classifier/Dummy.js +29 -0
  44. package/dist/Classifier/Dummy.js.map +1 -0
  45. package/dist/Classifier/KMeans.d.ts +12 -0
  46. package/dist/Classifier/KMeans.js +36 -0
  47. package/dist/Classifier/KMeans.js.map +1 -0
  48. package/dist/Classifier/Knn.d.ts +13 -0
  49. package/dist/Classifier/Knn.js +29 -0
  50. package/dist/Classifier/Knn.js.map +1 -0
  51. package/dist/Classifier/Lda.d.ts +12 -0
  52. package/dist/Classifier/Lda.js +52 -0
  53. package/dist/Classifier/Lda.js.map +1 -0
  54. package/dist/Classifier/LinearPerceptron.d.ts +14 -0
  55. package/dist/Classifier/LinearPerceptron.js +32 -0
  56. package/dist/Classifier/LinearPerceptron.js.map +1 -0
  57. package/dist/Classifier/MultiLayerPerceptron.d.ts +14 -0
  58. package/dist/Classifier/MultiLayerPerceptron.js +32 -0
  59. package/dist/Classifier/MultiLayerPerceptron.js.map +1 -0
  60. package/dist/Classifier/NaiveBayes.d.ts +25 -0
  61. package/dist/Classifier/NaiveBayes.js +67 -0
  62. package/dist/Classifier/NaiveBayes.js.map +1 -0
  63. package/dist/Classifier/Qda.d.ts +12 -0
  64. package/dist/Classifier/Qda.js +50 -0
  65. package/dist/Classifier/Qda.js.map +1 -0
  66. package/dist/Classifier/RandomClassifier.d.ts +12 -0
  67. package/dist/Classifier/RandomClassifier.js +32 -0
  68. package/dist/Classifier/RandomClassifier.js.map +1 -0
  69. package/dist/Classifier/RandomForest.d.ts +13 -0
  70. package/dist/Classifier/RandomForest.js +39 -0
  71. package/dist/Classifier/RandomForest.js.map +1 -0
  72. package/dist/DataSet/DataDefinition.d.ts +59 -0
  73. package/dist/DataSet/DataDefinition.js +108 -0
  74. package/dist/DataSet/DataDefinition.js.map +1 -0
  75. package/dist/DataSet/DataSet.d.ts +111 -0
  76. package/dist/DataSet/DataSet.js +286 -0
  77. package/dist/DataSet/DataSet.js.map +1 -0
  78. package/dist/DistanceMetric/DistanceMetric.d.ts +4 -0
  79. package/dist/DistanceMetric/DistanceMetric.js +13 -0
  80. package/dist/DistanceMetric/DistanceMetric.js.map +1 -0
  81. package/dist/DistanceMetric/EuclidianDistance.d.ts +13 -0
  82. package/dist/DistanceMetric/EuclidianDistance.js +43 -0
  83. package/dist/DistanceMetric/EuclidianDistance.js.map +1 -0
  84. package/dist/DistanceMetric/MahalanobisDistance.d.ts +20 -0
  85. package/dist/DistanceMetric/MahalanobisDistance.js +39 -0
  86. package/dist/DistanceMetric/MahalanobisDistance.js.map +1 -0
  87. package/dist/Experiment/BootstrapRun.d.ts +19 -0
  88. package/dist/Experiment/BootstrapRun.js +44 -0
  89. package/dist/Experiment/BootstrapRun.js.map +1 -0
  90. package/dist/Experiment/Experiment.d.ts +37 -0
  91. package/dist/Experiment/Experiment.js +57 -0
  92. package/dist/Experiment/Experiment.js.map +1 -0
  93. package/dist/Experiment/KFoldRun.d.ts +19 -0
  94. package/dist/Experiment/KFoldRun.js +43 -0
  95. package/dist/Experiment/KFoldRun.js.map +1 -0
  96. package/dist/Experiment/KFoldRunSeparateTest.d.ts +24 -0
  97. package/dist/Experiment/KFoldRunSeparateTest.js +51 -0
  98. package/dist/Experiment/KFoldRunSeparateTest.js.map +1 -0
  99. package/dist/Experiment/MultipleRun.d.ts +5 -0
  100. package/dist/Experiment/MultipleRun.js +13 -0
  101. package/dist/Experiment/MultipleRun.js.map +1 -0
  102. package/dist/Experiment/MxKFoldRun.d.ts +20 -0
  103. package/dist/Experiment/MxKFoldRun.js +44 -0
  104. package/dist/Experiment/MxKFoldRun.js.map +1 -0
  105. package/dist/Experiment/MxKFoldRunSeparateTest.d.ts +21 -0
  106. package/dist/Experiment/MxKFoldRunSeparateTest.js +48 -0
  107. package/dist/Experiment/MxKFoldRunSeparateTest.js.map +1 -0
  108. package/dist/Experiment/SingleRun.d.ts +5 -0
  109. package/dist/Experiment/SingleRun.js +13 -0
  110. package/dist/Experiment/SingleRun.js.map +1 -0
  111. package/dist/Experiment/SingleRunWithK.d.ts +19 -0
  112. package/dist/Experiment/SingleRunWithK.js +37 -0
  113. package/dist/Experiment/SingleRunWithK.js.map +1 -0
  114. package/dist/Experiment/StratifiedKFoldRun.d.ts +17 -0
  115. package/dist/Experiment/StratifiedKFoldRun.js +39 -0
  116. package/dist/Experiment/StratifiedKFoldRun.js.map +1 -0
  117. package/dist/Experiment/StratifiedKFoldRunSeparateTest.d.ts +18 -0
  118. package/dist/Experiment/StratifiedKFoldRunSeparateTest.js +43 -0
  119. package/dist/Experiment/StratifiedKFoldRunSeparateTest.js.map +1 -0
  120. package/dist/Experiment/StratifiedMxKFoldRun.d.ts +19 -0
  121. package/dist/Experiment/StratifiedMxKFoldRun.js +43 -0
  122. package/dist/Experiment/StratifiedMxKFoldRun.js.map +1 -0
  123. package/dist/Experiment/StratifiedMxKFoldRunSeparateTest.d.ts +20 -0
  124. package/dist/Experiment/StratifiedMxKFoldRunSeparateTest.js +47 -0
  125. package/dist/Experiment/StratifiedMxKFoldRunSeparateTest.js.map +1 -0
  126. package/dist/Experiment/StratifiedSingleRunWithK.d.ts +18 -0
  127. package/dist/Experiment/StratifiedSingleRunWithK.js +39 -0
  128. package/dist/Experiment/StratifiedSingleRunWithK.js.map +1 -0
  129. package/dist/FeatureSelection/BackwardSelection.d.ts +18 -0
  130. package/dist/FeatureSelection/BackwardSelection.js +39 -0
  131. package/dist/FeatureSelection/BackwardSelection.js.map +1 -0
  132. package/dist/FeatureSelection/FeatureSubSet.d.ts +47 -0
  133. package/dist/FeatureSelection/FeatureSubSet.js +89 -0
  134. package/dist/FeatureSelection/FeatureSubSet.js.map +1 -0
  135. package/dist/FeatureSelection/FloatingSelection.d.ts +16 -0
  136. package/dist/FeatureSelection/FloatingSelection.js +38 -0
  137. package/dist/FeatureSelection/FloatingSelection.js.map +1 -0
  138. package/dist/FeatureSelection/ForwardSelection.d.ts +17 -0
  139. package/dist/FeatureSelection/ForwardSelection.js +38 -0
  140. package/dist/FeatureSelection/ForwardSelection.js.map +1 -0
  141. package/dist/FeatureSelection/SubSetSelection.d.ts +37 -0
  142. package/dist/FeatureSelection/SubSetSelection.js +90 -0
  143. package/dist/FeatureSelection/SubSetSelection.js.map +1 -0
  144. package/dist/Filter/DiscreteToContinuous.d.ts +25 -0
  145. package/dist/Filter/DiscreteToContinuous.js +69 -0
  146. package/dist/Filter/DiscreteToContinuous.js.map +1 -0
  147. package/dist/Filter/DiscreteToIndexed.d.ts +21 -0
  148. package/dist/Filter/DiscreteToIndexed.js +56 -0
  149. package/dist/Filter/DiscreteToIndexed.js.map +1 -0
  150. package/dist/Filter/FeatureFilter.d.ts +18 -0
  151. package/dist/Filter/FeatureFilter.js +36 -0
  152. package/dist/Filter/FeatureFilter.js.map +1 -0
  153. package/dist/Filter/LaryFilter.d.ts +27 -0
  154. package/dist/Filter/LaryFilter.js +62 -0
  155. package/dist/Filter/LaryFilter.js.map +1 -0
  156. package/dist/Filter/LaryToBinary.d.ts +23 -0
  157. package/dist/Filter/LaryToBinary.js +67 -0
  158. package/dist/Filter/LaryToBinary.js.map +1 -0
  159. package/dist/Filter/Normalize.d.ts +21 -0
  160. package/dist/Filter/Normalize.js +47 -0
  161. package/dist/Filter/Normalize.js.map +1 -0
  162. package/dist/Filter/Pca.d.ts +44 -0
  163. package/dist/Filter/Pca.js +109 -0
  164. package/dist/Filter/Pca.js.map +1 -0
  165. package/dist/Filter/TrainedFeatureFilter.d.ts +11 -0
  166. package/dist/Filter/TrainedFeatureFilter.js +26 -0
  167. package/dist/Filter/TrainedFeatureFilter.js.map +1 -0
  168. package/dist/Instance/CompositeInstance.d.ts +32 -0
  169. package/dist/Instance/CompositeInstance.js +61 -0
  170. package/dist/Instance/CompositeInstance.js.map +1 -0
  171. package/dist/Instance/Instance.d.ts +89 -0
  172. package/dist/Instance/Instance.js +170 -0
  173. package/dist/Instance/Instance.js.map +1 -0
  174. package/dist/InstanceList/InstanceList.d.ts +188 -0
  175. package/dist/InstanceList/InstanceList.js +517 -0
  176. package/dist/InstanceList/InstanceList.js.map +1 -0
  177. package/dist/InstanceList/InstanceListOfSameClass.d.ts +16 -0
  178. package/dist/InstanceList/InstanceListOfSameClass.js +35 -0
  179. package/dist/InstanceList/InstanceListOfSameClass.js.map +1 -0
  180. package/dist/InstanceList/Partition.d.ts +31 -0
  181. package/dist/InstanceList/Partition.js +143 -0
  182. package/dist/InstanceList/Partition.js.map +1 -0
  183. package/dist/Model/DecisionTree/DecisionCondition.d.ts +34 -0
  184. package/dist/Model/DecisionTree/DecisionCondition.js +84 -0
  185. package/dist/Model/DecisionTree/DecisionCondition.js.map +1 -0
  186. package/dist/Model/DecisionTree/DecisionNode.d.ts +82 -0
  187. package/dist/Model/DecisionTree/DecisionNode.js +271 -0
  188. package/dist/Model/DecisionTree/DecisionNode.js.map +1 -0
  189. package/dist/Model/DecisionTree/DecisionTree.d.ts +37 -0
  190. package/dist/Model/DecisionTree/DecisionTree.js +75 -0
  191. package/dist/Model/DecisionTree/DecisionTree.js.map +1 -0
  192. package/dist/Model/DeepNetworkModel.d.ts +42 -0
  193. package/dist/Model/DeepNetworkModel.js +163 -0
  194. package/dist/Model/DeepNetworkModel.js.map +1 -0
  195. package/dist/Model/DummyModel.d.ts +20 -0
  196. package/dist/Model/DummyModel.js +46 -0
  197. package/dist/Model/DummyModel.js.map +1 -0
  198. package/dist/Model/GaussianModel.d.ts +24 -0
  199. package/dist/Model/GaussianModel.js +59 -0
  200. package/dist/Model/GaussianModel.js.map +1 -0
  201. package/dist/Model/KMeansModel.d.ts +27 -0
  202. package/dist/Model/KMeansModel.js +48 -0
  203. package/dist/Model/KMeansModel.js.map +1 -0
  204. package/dist/Model/KnnInstance.d.ts +14 -0
  205. package/dist/Model/KnnInstance.js +33 -0
  206. package/dist/Model/KnnInstance.js.map +1 -0
  207. package/dist/Model/KnnModel.d.ts +36 -0
  208. package/dist/Model/KnnModel.js +83 -0
  209. package/dist/Model/KnnModel.js.map +1 -0
  210. package/dist/Model/LdaModel.d.ts +25 -0
  211. package/dist/Model/LdaModel.js +45 -0
  212. package/dist/Model/LdaModel.js.map +1 -0
  213. package/dist/Model/LinearPerceptronModel.d.ts +21 -0
  214. package/dist/Model/LinearPerceptronModel.js +62 -0
  215. package/dist/Model/LinearPerceptronModel.js.map +1 -0
  216. package/dist/Model/Model.d.ts +12 -0
  217. package/dist/Model/Model.js +31 -0
  218. package/dist/Model/Model.js.map +1 -0
  219. package/dist/Model/MultiLayerPerceptronModel.d.ts +29 -0
  220. package/dist/Model/MultiLayerPerceptronModel.js +101 -0
  221. package/dist/Model/MultiLayerPerceptronModel.js.map +1 -0
  222. package/dist/Model/NaiveBayesModel.d.ts +47 -0
  223. package/dist/Model/NaiveBayesModel.js +95 -0
  224. package/dist/Model/NaiveBayesModel.js.map +1 -0
  225. package/dist/Model/NeuralNetworkModel.d.ts +99 -0
  226. package/dist/Model/NeuralNetworkModel.js +180 -0
  227. package/dist/Model/NeuralNetworkModel.js.map +1 -0
  228. package/dist/Model/QdaModel.d.ts +26 -0
  229. package/dist/Model/QdaModel.js +45 -0
  230. package/dist/Model/QdaModel.js.map +1 -0
  231. package/dist/Model/RandomModel.d.ts +16 -0
  232. package/dist/Model/RandomModel.js +51 -0
  233. package/dist/Model/RandomModel.js.map +1 -0
  234. package/dist/Model/TreeEnsembleModel.d.ts +21 -0
  235. package/dist/Model/TreeEnsembleModel.js +49 -0
  236. package/dist/Model/TreeEnsembleModel.js.map +1 -0
  237. package/dist/Model/ValidatedModel.d.ts +12 -0
  238. package/dist/Model/ValidatedModel.js +35 -0
  239. package/dist/Model/ValidatedModel.js.map +1 -0
  240. package/dist/Parameter/ActivationFunction.d.ts +5 -0
  241. package/dist/Parameter/ActivationFunction.js +20 -0
  242. package/dist/Parameter/ActivationFunction.js.map +1 -0
  243. package/dist/Parameter/BaggingParameter.d.ts +17 -0
  244. package/dist/Parameter/BaggingParameter.js +36 -0
  245. package/dist/Parameter/BaggingParameter.js.map +1 -0
  246. package/dist/Parameter/C45Parameter.d.ts +25 -0
  247. package/dist/Parameter/C45Parameter.js +46 -0
  248. package/dist/Parameter/C45Parameter.js.map +1 -0
  249. package/dist/Parameter/DeepNetworkParameter.d.ts +38 -0
  250. package/dist/Parameter/DeepNetworkParameter.js +60 -0
  251. package/dist/Parameter/DeepNetworkParameter.js.map +1 -0
  252. package/dist/Parameter/KMeansParameter.d.ts +18 -0
  253. package/dist/Parameter/KMeansParameter.js +42 -0
  254. package/dist/Parameter/KMeansParameter.js.map +1 -0
  255. package/dist/Parameter/KnnParameter.d.ts +19 -0
  256. package/dist/Parameter/KnnParameter.js +37 -0
  257. package/dist/Parameter/KnnParameter.js.map +1 -0
  258. package/dist/Parameter/LinearPerceptronParameter.d.ts +41 -0
  259. package/dist/Parameter/LinearPerceptronParameter.js +66 -0
  260. package/dist/Parameter/LinearPerceptronParameter.js.map +1 -0
  261. package/dist/Parameter/MultiLayerPerceptronParameter.d.ts +30 -0
  262. package/dist/Parameter/MultiLayerPerceptronParameter.js +50 -0
  263. package/dist/Parameter/MultiLayerPerceptronParameter.js.map +1 -0
  264. package/dist/Parameter/Parameter.d.ts +15 -0
  265. package/dist/Parameter/Parameter.js +33 -0
  266. package/dist/Parameter/Parameter.js.map +1 -0
  267. package/dist/Parameter/RandomForestParameter.d.ts +18 -0
  268. package/dist/Parameter/RandomForestParameter.js +37 -0
  269. package/dist/Parameter/RandomForestParameter.js.map +1 -0
  270. package/dist/Performance/ClassificationPerformance.d.ts +17 -0
  271. package/dist/Performance/ClassificationPerformance.js +36 -0
  272. package/dist/Performance/ClassificationPerformance.js.map +1 -0
  273. package/dist/Performance/ConfusionMatrix.d.ts +81 -0
  274. package/dist/Performance/ConfusionMatrix.js +178 -0
  275. package/dist/Performance/ConfusionMatrix.js.map +1 -0
  276. package/dist/Performance/DetailedClassificationPerformance.d.ts +17 -0
  277. package/dist/Performance/DetailedClassificationPerformance.js +35 -0
  278. package/dist/Performance/DetailedClassificationPerformance.js.map +1 -0
  279. package/dist/Performance/ExperimentPerformance.d.ts +88 -0
  280. package/dist/Performance/ExperimentPerformance.js +176 -0
  281. package/dist/Performance/ExperimentPerformance.js.map +1 -0
  282. package/dist/Performance/Performance.d.ts +15 -0
  283. package/dist/Performance/Performance.js +33 -0
  284. package/dist/Performance/Performance.js.map +1 -0
  285. package/dist/StatisticalTest/Combined5x2F.d.ts +7 -0
  286. package/dist/StatisticalTest/Combined5x2F.js +43 -0
  287. package/dist/StatisticalTest/Combined5x2F.js.map +1 -0
  288. package/dist/StatisticalTest/Combined5x2t.d.ts +7 -0
  289. package/dist/StatisticalTest/Combined5x2t.js +43 -0
  290. package/dist/StatisticalTest/Combined5x2t.js.map +1 -0
  291. package/dist/StatisticalTest/Paired5x2t.d.ts +7 -0
  292. package/dist/StatisticalTest/Paired5x2t.js +42 -0
  293. package/dist/StatisticalTest/Paired5x2t.js.map +1 -0
  294. package/dist/StatisticalTest/PairedTest.d.ts +6 -0
  295. package/dist/StatisticalTest/PairedTest.js +35 -0
  296. package/dist/StatisticalTest/PairedTest.js.map +1 -0
  297. package/dist/StatisticalTest/Pairedt.d.ts +7 -0
  298. package/dist/StatisticalTest/Pairedt.js +40 -0
  299. package/dist/StatisticalTest/Pairedt.js.map +1 -0
  300. package/dist/StatisticalTest/Sign.d.ts +8 -0
  301. package/dist/StatisticalTest/Sign.js +52 -0
  302. package/dist/StatisticalTest/Sign.js.map +1 -0
  303. package/dist/StatisticalTest/StatisticalTestResult.d.ts +9 -0
  304. package/dist/StatisticalTest/StatisticalTestResult.js +53 -0
  305. package/dist/StatisticalTest/StatisticalTestResult.js.map +1 -0
  306. package/dist/StatisticalTest/StatisticalTestResultType.d.ts +7 -0
  307. package/dist/StatisticalTest/StatisticalTestResultType.js +22 -0
  308. package/dist/StatisticalTest/StatisticalTestResultType.js.map +1 -0
  309. package/index.js +100 -0
  310. package/package.json +30 -0
  311. package/source/Attribute/Attribute.ts +6 -0
  312. package/source/Attribute/AttributeType.ts +18 -0
  313. package/source/Attribute/BinaryAttribute.ts +14 -0
  314. package/source/Attribute/ContinuousAttribute.ts +53 -0
  315. package/source/Attribute/DiscreteAttribute.ts +46 -0
  316. package/source/Attribute/DiscreteIndexedAttribute.ts +54 -0
  317. package/source/Classifier/Bagging.ts +32 -0
  318. package/source/Classifier/C45.ts +30 -0
  319. package/source/Classifier/C45Stump.ts +19 -0
  320. package/source/Classifier/Classifier.ts +71 -0
  321. package/source/Classifier/DeepNetwork.ts +22 -0
  322. package/source/Classifier/Dummy.ts +19 -0
  323. package/source/Classifier/KMeans.ts +26 -0
  324. package/source/Classifier/Knn.ts +21 -0
  325. package/source/Classifier/Lda.ts +43 -0
  326. package/source/Classifier/LinearPerceptron.ts +23 -0
  327. package/source/Classifier/MultiLayerPerceptron.ts +23 -0
  328. package/source/Classifier/NaiveBayes.ts +62 -0
  329. package/source/Classifier/Qda.ts +42 -0
  330. package/source/Classifier/RandomClassifier.ts +22 -0
  331. package/source/Classifier/RandomForest.ts +29 -0
  332. package/source/DataSet/DataDefinition.ts +106 -0
  333. package/source/DataSet/DataSet.ts +279 -0
  334. package/source/DistanceMetric/DistanceMetric.ts +6 -0
  335. package/source/DistanceMetric/EuclidianDistance.ts +32 -0
  336. package/source/DistanceMetric/MahalanobisDistance.ts +33 -0
  337. package/source/Experiment/BootstrapRun.ts +37 -0
  338. package/source/Experiment/Experiment.ts +57 -0
  339. package/source/Experiment/KFoldRun.ts +44 -0
  340. package/source/Experiment/KFoldRunSeparateTest.ts +50 -0
  341. package/source/Experiment/MultipleRun.ts +7 -0
  342. package/source/Experiment/MxKFoldRun.ts +37 -0
  343. package/source/Experiment/MxKFoldRunSeparateTest.ts +40 -0
  344. package/source/Experiment/SingleRun.ts +7 -0
  345. package/source/Experiment/SingleRunWithK.ts +39 -0
  346. package/source/Experiment/StratifiedKFoldRun.ts +30 -0
  347. package/source/Experiment/StratifiedKFoldRunSeparateTest.ts +33 -0
  348. package/source/Experiment/StratifiedMxKFoldRun.ts +34 -0
  349. package/source/Experiment/StratifiedMxKFoldRunSeparateTest.ts +40 -0
  350. package/source/Experiment/StratifiedSingleRunWithK.ts +33 -0
  351. package/source/FeatureSelection/BackwardSelection.ts +28 -0
  352. package/source/FeatureSelection/FeatureSubSet.ts +82 -0
  353. package/source/FeatureSelection/FloatingSelection.ts +27 -0
  354. package/source/FeatureSelection/ForwardSelection.ts +27 -0
  355. package/source/FeatureSelection/SubSetSelection.ts +88 -0
  356. package/source/Filter/DiscreteToContinuous.ts +59 -0
  357. package/source/Filter/DiscreteToIndexed.ts +48 -0
  358. package/source/Filter/FeatureFilter.ts +31 -0
  359. package/source/Filter/LaryFilter.ts +54 -0
  360. package/source/Filter/LaryToBinary.ts +57 -0
  361. package/source/Filter/Normalize.ts +42 -0
  362. package/source/Filter/Pca.ts +104 -0
  363. package/source/Filter/TrainedFeatureFilter.ts +17 -0
  364. package/source/Instance/CompositeInstance.ts +53 -0
  365. package/source/Instance/Instance.ts +170 -0
  366. package/source/InstanceList/InstanceList.ts +519 -0
  367. package/source/InstanceList/InstanceListOfSameClass.ts +25 -0
  368. package/source/InstanceList/Partition.ts +131 -0
  369. package/source/Model/DecisionTree/DecisionCondition.ts +74 -0
  370. package/source/Model/DecisionTree/DecisionNode.ts +257 -0
  371. package/source/Model/DecisionTree/DecisionTree.ts +71 -0
  372. package/source/Model/DeepNetworkModel.ts +156 -0
  373. package/source/Model/DummyModel.ts +40 -0
  374. package/source/Model/GaussianModel.ts +58 -0
  375. package/source/Model/KMeansModel.ts +44 -0
  376. package/source/Model/KnnInstance.ts +27 -0
  377. package/source/Model/KnnModel.ts +78 -0
  378. package/source/Model/LdaModel.ts +39 -0
  379. package/source/Model/LinearPerceptronModel.ts +55 -0
  380. package/source/Model/Model.ts +22 -0
  381. package/source/Model/MultiLayerPerceptronModel.ts +95 -0
  382. package/source/Model/NaiveBayesModel.ts +89 -0
  383. package/source/Model/NeuralNetworkModel.ts +187 -0
  384. package/source/Model/QdaModel.ts +39 -0
  385. package/source/Model/RandomModel.ts +44 -0
  386. package/source/Model/TreeEnsembleModel.ts +43 -0
  387. package/source/Model/ValidatedModel.ts +23 -0
  388. package/source/Parameter/ActivationFunction.ts +3 -0
  389. package/source/Parameter/BaggingParameter.ts +26 -0
  390. package/source/Parameter/C45Parameter.ts +38 -0
  391. package/source/Parameter/DeepNetworkParameter.ts +59 -0
  392. package/source/Parameter/KMeansParameter.ts +33 -0
  393. package/source/Parameter/KnnParameter.ts +28 -0
  394. package/source/Parameter/LinearPerceptronParameter.ts +66 -0
  395. package/source/Parameter/MultiLayerPerceptronParameter.ts +49 -0
  396. package/source/Parameter/Parameter.ts +22 -0
  397. package/source/Parameter/RandomForestParameter.ts +27 -0
  398. package/source/Performance/ClassificationPerformance.ts +26 -0
  399. package/source/Performance/ConfusionMatrix.ts +175 -0
  400. package/source/Performance/DetailedClassificationPerformance.ts +26 -0
  401. package/source/Performance/ExperimentPerformance.ts +175 -0
  402. package/source/Performance/Performance.ts +22 -0
  403. package/source/StatisticalTest/Combined5x2F.ts +33 -0
  404. package/source/StatisticalTest/Combined5x2t.ts +33 -0
  405. package/source/StatisticalTest/Paired5x2t.ts +32 -0
  406. package/source/StatisticalTest/PairedTest.ts +24 -0
  407. package/source/StatisticalTest/Pairedt.ts +30 -0
  408. package/source/StatisticalTest/Sign.ts +41 -0
  409. package/source/StatisticalTest/StatisticalTestResult.ts +42 -0
  410. package/source/StatisticalTest/StatisticalTestResultType.ts +6 -0
  411. package/source/tsconfig.json +13 -0
  412. package/tsconfig.json +15 -0
@@ -0,0 +1,72 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "../Attribute/DiscreteAttribute", "../Attribute/DiscreteIndexedAttribute", "../Performance/ConfusionMatrix", "../Performance/DetailedClassificationPerformance"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.Classifier = void 0;
13
+ const DiscreteAttribute_1 = require("../Attribute/DiscreteAttribute");
14
+ const DiscreteIndexedAttribute_1 = require("../Attribute/DiscreteIndexedAttribute");
15
+ const ConfusionMatrix_1 = require("../Performance/ConfusionMatrix");
16
+ const DetailedClassificationPerformance_1 = require("../Performance/DetailedClassificationPerformance");
17
+ class Classifier {
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) {
25
+ for (let i = 0; i < instance.attributeSize(); i++) {
26
+ if (instance.getAttribute(i) instanceof DiscreteAttribute_1.DiscreteAttribute &&
27
+ !(instance.getAttribute(i) instanceof DiscreteIndexedAttribute_1.DiscreteIndexedAttribute)) {
28
+ return false;
29
+ }
30
+ }
31
+ return true;
32
+ }
33
+ /**
34
+ * TestClassification an instance list with the current model.
35
+ *
36
+ * @param testSet Test data (list of instances) to be tested.
37
+ * @return The accuracy (and error) of the model as an instance of Performance class.
38
+ */
39
+ test(testSet) {
40
+ let classLabels = testSet.getUnionOfPossibleClassLabels();
41
+ let confusion = new ConfusionMatrix_1.ConfusionMatrix(classLabels);
42
+ for (let i = 0; i < testSet.size(); i++) {
43
+ let instance = testSet.get(i);
44
+ confusion.classify(instance.getClassLabel(), this.model.predict(instance));
45
+ }
46
+ return new DetailedClassificationPerformance_1.DetailedClassificationPerformance(confusion);
47
+ }
48
+ /**
49
+ * Runs current classifier with the given train and test data.
50
+ *
51
+ * @param parameter Parameter of the classifier to be trained.
52
+ * @param trainSet Training data to be used in training the classifier.
53
+ * @param testSet Test data to be tested after training the model.
54
+ * @return The accuracy (and error) of the trained model as an instance of Performance class.
55
+ * @throws DiscreteFeaturesNotAllowed Exception for discrete features.
56
+ */
57
+ singleRun(parameter, trainSet, testSet) {
58
+ this.train(trainSet, parameter);
59
+ return this.test(testSet);
60
+ }
61
+ /**
62
+ * Accessor for the model.
63
+ *
64
+ * @return Model.
65
+ */
66
+ getModel() {
67
+ return this.model;
68
+ }
69
+ }
70
+ exports.Classifier = Classifier;
71
+ });
72
+ //# sourceMappingURL=Classifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Classifier.js","sourceRoot":"","sources":["../../source/Classifier/Classifier.ts"],"names":[],"mappings":";;;;;;;;;;;;IAIA,sEAAiE;IACjE,oFAA+E;IAC/E,oEAA+D;IAE/D,wGAAmG;IAEnG,MAAsB,UAAU;QAM5B;;;;;WAKG;QACH,aAAa,CAAC,QAAkB;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;gBAC/C,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,qCAAiB;oBACrD,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,mDAAwB,CAAC,EAAE;oBACjE,OAAO,KAAK,CAAC;iBAChB;aACJ;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED;;;;;WAKG;QACH,IAAI,CAAC,OAAqB;YACtB,IAAI,WAAW,GAAG,OAAO,CAAC,6BAA6B,EAAE,CAAC;YAC1D,IAAI,SAAS,GAAG,IAAI,iCAAe,CAAC,WAAW,CAAC,CAAC;YACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;gBACrC,IAAI,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC9B,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC9E;YACD,OAAO,IAAI,qEAAiC,CAAC,SAAS,CAAC,CAAC;QAC5D,CAAC;QAED;;;;;;;;WAQG;QACH,SAAS,CAAC,SAAoB,EAAE,QAAsB,EAAE,OAAqB;YACzE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;QAED;;;;WAIG;QACH,QAAQ;YACJ,OAAO,IAAI,CAAC,KAAK,CAAA;QACrB,CAAC;KACJ;IA5DD,gCA4DC"}
@@ -0,0 +1,13 @@
1
+ import { Classifier } from "./Classifier";
2
+ import { InstanceList } from "../InstanceList/InstanceList";
3
+ import { Parameter } from "../Parameter/Parameter";
4
+ export declare class DeepNetwork extends Classifier {
5
+ /**
6
+ * Training algorithm for deep network classifier.
7
+ *
8
+ * @param trainSet Training data given to the algorithm.
9
+ * @param parameters Parameters of the deep network algorithm. crossValidationRatio and seed are used as parameters.
10
+ * @throws DiscreteFeaturesNotAllowed Exception for discrete features.
11
+ */
12
+ train(trainSet: InstanceList, parameters: Parameter): void;
13
+ }
@@ -0,0 +1,31 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "./Classifier", "../InstanceList/Partition", "../Model/DeepNetworkModel"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.DeepNetwork = void 0;
13
+ const Classifier_1 = require("./Classifier");
14
+ const Partition_1 = require("../InstanceList/Partition");
15
+ const DeepNetworkModel_1 = require("../Model/DeepNetworkModel");
16
+ class DeepNetwork extends Classifier_1.Classifier {
17
+ /**
18
+ * Training algorithm for deep network classifier.
19
+ *
20
+ * @param trainSet Training data given to the algorithm.
21
+ * @param parameters Parameters of the deep network algorithm. crossValidationRatio and seed are used as parameters.
22
+ * @throws DiscreteFeaturesNotAllowed Exception for discrete features.
23
+ */
24
+ train(trainSet, parameters) {
25
+ let partition = new Partition_1.Partition(trainSet, parameters.getCrossValidationRatio(), true);
26
+ this.model = new DeepNetworkModel_1.DeepNetworkModel(partition.get(1), partition.get(0), parameters);
27
+ }
28
+ }
29
+ exports.DeepNetwork = DeepNetwork;
30
+ });
31
+ //# sourceMappingURL=DeepNetwork.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeepNetwork.js","sourceRoot":"","sources":["../../source/Classifier/DeepNetwork.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,6CAAwC;IAGxC,yDAAoD;IAEpD,gEAA2D;IAE3D,MAAa,WAAY,SAAQ,uBAAU;QAEvC;;;;;;WAMG;QACH,KAAK,CAAC,QAAsB,EAAE,UAAqB;YAC/C,IAAI,SAAS,GAAG,IAAI,qBAAS,CAAC,QAAQ,EAA0B,UAAW,CAAC,uBAAuB,EAAE,EAAE,IAAI,CAAC,CAAC;YAC7G,IAAI,CAAC,KAAK,GAAG,IAAI,mCAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAyB,UAAU,CAAC,CAAC;QAC7G,CAAC;KAEJ;IAdD,kCAcC"}
@@ -0,0 +1,13 @@
1
+ import { Classifier } from "./Classifier";
2
+ import { InstanceList } from "../InstanceList/InstanceList";
3
+ import { Parameter } from "../Parameter/Parameter";
4
+ export declare class Dummy extends Classifier {
5
+ /**
6
+ * Training algorithm for the dummy classifier. Actually dummy classifier returns the maximum occurring class in
7
+ * the training data, there is no training.
8
+ *
9
+ * @param trainSet Training data given to the algorithm.
10
+ * @param parameters -
11
+ */
12
+ train(trainSet: InstanceList, parameters: Parameter): void;
13
+ }
@@ -0,0 +1,29 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "./Classifier", "../Model/DummyModel"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.Dummy = void 0;
13
+ const Classifier_1 = require("./Classifier");
14
+ const DummyModel_1 = require("../Model/DummyModel");
15
+ class Dummy extends Classifier_1.Classifier {
16
+ /**
17
+ * Training algorithm for the dummy classifier. Actually dummy classifier returns the maximum occurring class in
18
+ * the training data, there is no training.
19
+ *
20
+ * @param trainSet Training data given to the algorithm.
21
+ * @param parameters -
22
+ */
23
+ train(trainSet, parameters) {
24
+ this.model = new DummyModel_1.DummyModel(trainSet);
25
+ }
26
+ }
27
+ exports.Dummy = Dummy;
28
+ });
29
+ //# sourceMappingURL=Dummy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dummy.js","sourceRoot":"","sources":["../../source/Classifier/Dummy.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,6CAAwC;IAGxC,oDAA+C;IAE/C,MAAa,KAAM,SAAQ,uBAAU;QAEjC;;;;;;WAMG;QACH,KAAK,CAAC,QAAsB,EAAE,UAAqB;YAC/C,IAAI,CAAC,KAAK,GAAG,IAAI,uBAAU,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;KAEJ;IAbD,sBAaC"}
@@ -0,0 +1,12 @@
1
+ import { Classifier } from "./Classifier";
2
+ import { InstanceList } from "../InstanceList/InstanceList";
3
+ import { Parameter } from "../Parameter/Parameter";
4
+ export declare class KMeans extends Classifier {
5
+ /**
6
+ * Training algorithm for K-Means classifier. K-Means finds the mean of each class for training.
7
+ *
8
+ * @param trainSet Training data given to the algorithm.
9
+ * @param parameters distanceMetric: distance metric used to calculate the distance between two instances.
10
+ */
11
+ train(trainSet: InstanceList, parameters: Parameter): void;
12
+ }
@@ -0,0 +1,36 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "./Classifier", "../InstanceList/InstanceList", "../InstanceList/Partition", "../Model/KMeansModel"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.KMeans = void 0;
13
+ const Classifier_1 = require("./Classifier");
14
+ const InstanceList_1 = require("../InstanceList/InstanceList");
15
+ const Partition_1 = require("../InstanceList/Partition");
16
+ const KMeansModel_1 = require("../Model/KMeansModel");
17
+ class KMeans extends Classifier_1.Classifier {
18
+ /**
19
+ * Training algorithm for K-Means classifier. K-Means finds the mean of each class for training.
20
+ *
21
+ * @param trainSet Training data given to the algorithm.
22
+ * @param parameters distanceMetric: distance metric used to calculate the distance between two instances.
23
+ */
24
+ train(trainSet, parameters) {
25
+ let priorDistribution = trainSet.classDistribution();
26
+ let classMeans = new InstanceList_1.InstanceList();
27
+ let classLists = new Partition_1.Partition(trainSet);
28
+ for (let i = 0; i < classLists.size(); i++) {
29
+ classMeans.add(classLists.get(i).average());
30
+ }
31
+ this.model = new KMeansModel_1.KMeansModel(priorDistribution, classMeans, parameters.getDistanceMetric());
32
+ }
33
+ }
34
+ exports.KMeans = KMeans;
35
+ });
36
+ //# sourceMappingURL=KMeans.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KMeans.js","sourceRoot":"","sources":["../../source/Classifier/KMeans.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,6CAAwC;IACxC,+DAA0D;IAE1D,yDAAoD;IACpD,sDAAiD;IAGjD,MAAa,MAAO,SAAQ,uBAAU;QAElC;;;;;WAKG;QACH,KAAK,CAAC,QAAsB,EAAE,UAAqB;YAC/C,IAAI,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YACrD,IAAI,UAAU,GAAG,IAAI,2BAAY,EAAE,CAAC;YACpC,IAAI,UAAU,GAAG,IAAI,qBAAS,CAAC,QAAQ,CAAC,CAAC;YACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;gBACxC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;aAC/C;YACD,IAAI,CAAC,KAAK,GAAG,IAAI,yBAAW,CAAC,iBAAiB,EAAE,UAAU,EAAqB,UAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACpH,CAAC;KAEJ;IAlBD,wBAkBC"}
@@ -0,0 +1,13 @@
1
+ import { Classifier } from "./Classifier";
2
+ import { InstanceList } from "../InstanceList/InstanceList";
3
+ import { Parameter } from "../Parameter/Parameter";
4
+ export declare class Knn extends Classifier {
5
+ /**
6
+ * Training algorithm for K-nearest neighbor classifier.
7
+ *
8
+ * @param trainSet Training data given to the algorithm.
9
+ * @param parameters K: k parameter of the K-nearest neighbor algorithm
10
+ * distanceMetric: distance metric used to calculate the distance between two instances.
11
+ */
12
+ train(trainSet: InstanceList, parameters: Parameter): void;
13
+ }
@@ -0,0 +1,29 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "./Classifier", "../Model/KnnModel"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.Knn = void 0;
13
+ const Classifier_1 = require("./Classifier");
14
+ const KnnModel_1 = require("../Model/KnnModel");
15
+ class Knn extends Classifier_1.Classifier {
16
+ /**
17
+ * Training algorithm for K-nearest neighbor classifier.
18
+ *
19
+ * @param trainSet Training data given to the algorithm.
20
+ * @param parameters K: k parameter of the K-nearest neighbor algorithm
21
+ * distanceMetric: distance metric used to calculate the distance between two instances.
22
+ */
23
+ train(trainSet, parameters) {
24
+ this.model = new KnnModel_1.KnnModel(trainSet, parameters.getK(), parameters.getDistanceMetric());
25
+ }
26
+ }
27
+ exports.Knn = Knn;
28
+ });
29
+ //# sourceMappingURL=Knn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Knn.js","sourceRoot":"","sources":["../../source/Classifier/Knn.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,6CAAwC;IAGxC,gDAA2C;IAG3C,MAAa,GAAI,SAAQ,uBAAU;QAG/B;;;;;;WAMG;QACH,KAAK,CAAC,QAAsB,EAAE,UAAqB;YAC/C,IAAI,CAAC,KAAK,GAAG,IAAI,mBAAQ,CAAC,QAAQ,EAAkB,UAAW,CAAC,IAAI,EAAE,EAAkB,UAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAC7H,CAAC;KAEJ;IAdD,kBAcC"}
@@ -0,0 +1,12 @@
1
+ import { Classifier } from "./Classifier";
2
+ import { InstanceList } from "../InstanceList/InstanceList";
3
+ import { Parameter } from "../Parameter/Parameter";
4
+ export declare class Lda extends Classifier {
5
+ /**
6
+ * Training algorithm for the linear discriminant analysis classifier (Introduction to Machine Learning, Alpaydin, 2015).
7
+ *
8
+ * @param trainSet Training data given to the algorithm.
9
+ * @param parameters -
10
+ */
11
+ train(trainSet: InstanceList, parameters: Parameter): void;
12
+ }
@@ -0,0 +1,52 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "./Classifier", "nlptoolkit-math/dist/Vector", "../InstanceList/Partition", "nlptoolkit-math/dist/Matrix", "../Model/LdaModel"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.Lda = void 0;
13
+ const Classifier_1 = require("./Classifier");
14
+ const Vector_1 = require("nlptoolkit-math/dist/Vector");
15
+ const Partition_1 = require("../InstanceList/Partition");
16
+ const Matrix_1 = require("nlptoolkit-math/dist/Matrix");
17
+ const LdaModel_1 = require("../Model/LdaModel");
18
+ class Lda extends Classifier_1.Classifier {
19
+ /**
20
+ * Training algorithm for the linear discriminant analysis classifier (Introduction to Machine Learning, Alpaydin, 2015).
21
+ *
22
+ * @param trainSet Training data given to the algorithm.
23
+ * @param parameters -
24
+ */
25
+ train(trainSet, parameters) {
26
+ let w0 = new Map();
27
+ let w = new Map();
28
+ let priorDistribution = trainSet.classDistribution();
29
+ let classLists = new Partition_1.Partition(trainSet);
30
+ let covariance = new Matrix_1.Matrix(trainSet.get(0).continuousAttributeSize(), trainSet.get(0).continuousAttributeSize());
31
+ for (let i = 0; i < classLists.size(); i++) {
32
+ let averageVector = new Vector_1.Vector(classLists.get(i).continuousAttributeAverage());
33
+ let classCovariance = classLists.get(i).covariance(averageVector);
34
+ classCovariance.multiplyWithConstant(classLists.get(i).size() - 1);
35
+ covariance.add(classCovariance);
36
+ }
37
+ covariance.divideByConstant(trainSet.size() - classLists.size());
38
+ covariance.inverse();
39
+ for (let i = 0; i < classLists.size(); i++) {
40
+ let Ci = classLists.get(i).getClassLabel();
41
+ let averageVector = new Vector_1.Vector(classLists.get(i).continuousAttributeAverage());
42
+ let wi = covariance.multiplyWithVectorFromRight(averageVector);
43
+ w.set(Ci, wi);
44
+ let w0i = -0.5 * wi.dotProduct(averageVector) + Math.log(priorDistribution.getProbability(Ci));
45
+ w0.set(Ci, w0i);
46
+ }
47
+ this.model = new LdaModel_1.LdaModel(priorDistribution, w, w0);
48
+ }
49
+ }
50
+ exports.Lda = Lda;
51
+ });
52
+ //# sourceMappingURL=Lda.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Lda.js","sourceRoot":"","sources":["../../source/Classifier/Lda.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,6CAAwC;IAGxC,wDAAmD;IACnD,yDAAoD;IACpD,wDAAmD;IAEnD,gDAA2C;IAE3C,MAAa,GAAI,SAAQ,uBAAU;QAE/B;;;;;WAKG;QACH,KAAK,CAAC,QAAsB,EAAE,UAAqB;YAC/C,IAAI,EAAE,GAAG,IAAI,GAAG,EAAkB,CAAC;YACnC,IAAI,CAAC,GAAG,IAAI,GAAG,EAAkB,CAAC;YAClC,IAAI,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YACrD,IAAI,UAAU,GAAG,IAAI,qBAAS,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,UAAU,GAAG,IAAI,eAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB,EAAE,CAAC,CAAC;YAClH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;gBACxC,IAAI,aAAa,GAAG,IAAI,eAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,0BAA0B,EAAE,CAAC,CAAC;gBAC/E,IAAI,eAAe,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;gBAClE,eAAe,CAAC,oBAAoB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBACnE,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;aACnC;YACD,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;YACjE,UAAU,CAAC,OAAO,EAAE,CAAC;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;gBACxC,IAAI,EAAE,GAA8B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,aAAa,EAAE,CAAC;gBACvE,IAAI,aAAa,GAAG,IAAI,eAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,0BAA0B,EAAE,CAAC,CAAC;gBAC/E,IAAI,EAAE,GAAG,UAAU,CAAC,2BAA2B,CAAC,aAAa,CAAC,CAAC;gBAC/D,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACd,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/F,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;aACnB;YACD,IAAI,CAAC,KAAK,GAAG,IAAI,mBAAQ,CAAC,iBAAiB,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACxD,CAAC;KAEJ;IAjCD,kBAiCC"}
@@ -0,0 +1,14 @@
1
+ import { Classifier } from "./Classifier";
2
+ import { InstanceList } from "../InstanceList/InstanceList";
3
+ import { Parameter } from "../Parameter/Parameter";
4
+ export declare class LinearPerceptron extends Classifier {
5
+ /**
6
+ * Training algorithm for the linear perceptron algorithm. 20 percent of the data is separated as cross-validation
7
+ * data used for selecting the best weights. 80 percent of the data is used for training the linear perceptron with
8
+ * gradient descent.
9
+ *
10
+ * @param trainSet Training data given to the algorithm
11
+ * @param parameters Parameters of the linear perceptron.
12
+ */
13
+ train(trainSet: InstanceList, parameters: Parameter): void;
14
+ }
@@ -0,0 +1,32 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "./Classifier", "../InstanceList/Partition", "../Model/LinearPerceptronModel"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.LinearPerceptron = void 0;
13
+ const Classifier_1 = require("./Classifier");
14
+ const Partition_1 = require("../InstanceList/Partition");
15
+ const LinearPerceptronModel_1 = require("../Model/LinearPerceptronModel");
16
+ class LinearPerceptron extends Classifier_1.Classifier {
17
+ /**
18
+ * Training algorithm for the linear perceptron algorithm. 20 percent of the data is separated as cross-validation
19
+ * data used for selecting the best weights. 80 percent of the data is used for training the linear perceptron with
20
+ * gradient descent.
21
+ *
22
+ * @param trainSet Training data given to the algorithm
23
+ * @param parameters Parameters of the linear perceptron.
24
+ */
25
+ train(trainSet, parameters) {
26
+ let partition = new Partition_1.Partition(trainSet, parameters.getCrossValidationRatio(), true);
27
+ this.model = new LinearPerceptronModel_1.LinearPerceptronModel(partition.get(1), partition.get(0), parameters);
28
+ }
29
+ }
30
+ exports.LinearPerceptron = LinearPerceptron;
31
+ });
32
+ //# sourceMappingURL=LinearPerceptron.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinearPerceptron.js","sourceRoot":"","sources":["../../source/Classifier/LinearPerceptron.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,6CAAwC;IAGxC,yDAAoD;IAEpD,0EAAqE;IAErE,MAAa,gBAAiB,SAAQ,uBAAU;QAE5C;;;;;;;WAOG;QACH,KAAK,CAAC,QAAsB,EAAE,UAAqB;YAC/C,IAAI,SAAS,GAAG,IAAI,qBAAS,CAAC,QAAQ,EAA+B,UAAW,CAAC,uBAAuB,EAAE,EAAE,IAAI,CAAC,CAAC;YAClH,IAAI,CAAC,KAAK,GAAG,IAAI,6CAAqB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAA8B,UAAU,CAAC,CAAC;QACvH,CAAC;KAEJ;IAfD,4CAeC"}
@@ -0,0 +1,14 @@
1
+ import { Classifier } from "./Classifier";
2
+ import { InstanceList } from "../InstanceList/InstanceList";
3
+ import { Parameter } from "../Parameter/Parameter";
4
+ export declare class MultiLayerPerceptron extends Classifier {
5
+ /**
6
+ * Training algorithm for the multilayer perceptron algorithm. 20 percent of the data is separated as cross-validation
7
+ * data used for selecting the best weights. 80 percent of the data is used for training the multilayer perceptron with
8
+ * gradient descent.
9
+ *
10
+ * @param trainSet Training data given to the algorithm
11
+ * @param parameters Parameters of the multilayer perceptron.
12
+ */
13
+ train(trainSet: InstanceList, parameters: Parameter): void;
14
+ }
@@ -0,0 +1,32 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "./Classifier", "../InstanceList/Partition", "../Model/MultiLayerPerceptronModel"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MultiLayerPerceptron = void 0;
13
+ const Classifier_1 = require("./Classifier");
14
+ const Partition_1 = require("../InstanceList/Partition");
15
+ const MultiLayerPerceptronModel_1 = require("../Model/MultiLayerPerceptronModel");
16
+ class MultiLayerPerceptron extends Classifier_1.Classifier {
17
+ /**
18
+ * Training algorithm for the multilayer perceptron algorithm. 20 percent of the data is separated as cross-validation
19
+ * data used for selecting the best weights. 80 percent of the data is used for training the multilayer perceptron with
20
+ * gradient descent.
21
+ *
22
+ * @param trainSet Training data given to the algorithm
23
+ * @param parameters Parameters of the multilayer perceptron.
24
+ */
25
+ train(trainSet, parameters) {
26
+ let partition = new Partition_1.Partition(trainSet, parameters.getCrossValidationRatio(), true);
27
+ this.model = new MultiLayerPerceptronModel_1.MultiLayerPerceptronModel(partition.get(1), partition.get(0), parameters);
28
+ }
29
+ }
30
+ exports.MultiLayerPerceptron = MultiLayerPerceptron;
31
+ });
32
+ //# sourceMappingURL=MultiLayerPerceptron.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiLayerPerceptron.js","sourceRoot":"","sources":["../../source/Classifier/MultiLayerPerceptron.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,6CAAwC;IAGxC,yDAAoD;IAEpD,kFAA6E;IAE7E,MAAa,oBAAqB,SAAQ,uBAAU;QAEhD;;;;;;;WAOG;QACH,KAAK,CAAC,QAAsB,EAAE,UAAqB;YAC/C,IAAI,SAAS,GAAG,IAAI,qBAAS,CAAC,QAAQ,EAAmC,UAAW,CAAC,uBAAuB,EAAE,EAAE,IAAI,CAAC,CAAC;YACtH,IAAI,CAAC,KAAK,GAAG,IAAI,qDAAyB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAkC,UAAU,CAAC,CAAC;QAC/H,CAAC;KAEJ;IAfD,oDAeC"}
@@ -0,0 +1,25 @@
1
+ import { Classifier } from "./Classifier";
2
+ import { InstanceList } from "../InstanceList/InstanceList";
3
+ import { Parameter } from "../Parameter/Parameter";
4
+ export declare class NaiveBayes extends Classifier {
5
+ /**
6
+ * Training algorithm for Naive Bayes algorithm with a continuous data set.
7
+ *
8
+ * @param priorDistribution Probability distribution of classes P(C_i)
9
+ * @param classLists Instances are divided into K lists, where each list contains only instances from a single class
10
+ */
11
+ private trainContinuousVersion;
12
+ /**
13
+ * Training algorithm for Naive Bayes algorithm with a discrete data set.
14
+ * @param priorDistribution Probability distribution of classes P(C_i)
15
+ * @param classLists Instances are divided into K lists, where each list contains only instances from a single class
16
+ */
17
+ private trainDiscreteVersion;
18
+ /**
19
+ * Training algorithm for Naive Bayes algorithm. It basically calls trainContinuousVersion for continuous data sets,
20
+ * trainDiscreteVersion for discrete data sets.
21
+ * @param trainSet Training data given to the algorithm
22
+ * @param parameters -
23
+ */
24
+ train(trainSet: InstanceList, parameters: Parameter): void;
25
+ }
@@ -0,0 +1,67 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "./Classifier", "../InstanceList/Partition", "../Model/NaiveBayesModel", "../Attribute/DiscreteAttribute"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.NaiveBayes = void 0;
13
+ const Classifier_1 = require("./Classifier");
14
+ const Partition_1 = require("../InstanceList/Partition");
15
+ const NaiveBayesModel_1 = require("../Model/NaiveBayesModel");
16
+ const DiscreteAttribute_1 = require("../Attribute/DiscreteAttribute");
17
+ class NaiveBayes extends Classifier_1.Classifier {
18
+ /**
19
+ * Training algorithm for Naive Bayes algorithm with a continuous data set.
20
+ *
21
+ * @param priorDistribution Probability distribution of classes P(C_i)
22
+ * @param classLists Instances are divided into K lists, where each list contains only instances from a single class
23
+ */
24
+ trainContinuousVersion(priorDistribution, classLists) {
25
+ let classMeans = new Map();
26
+ let classDeviations = new Map();
27
+ for (let i = 0; i < classLists.size(); i++) {
28
+ let classLabel = classLists.get(i).getClassLabel();
29
+ let averageVector = classLists.get(i).average().toVector();
30
+ classMeans.set(classLabel, averageVector);
31
+ let standardDeviationVector = classLists.get(i).standardDeviation().toVector();
32
+ classDeviations.set(classLabel, standardDeviationVector);
33
+ }
34
+ this.model = new NaiveBayesModel_1.NaiveBayesModel(priorDistribution, classMeans, classDeviations);
35
+ }
36
+ /**
37
+ * Training algorithm for Naive Bayes algorithm with a discrete data set.
38
+ * @param priorDistribution Probability distribution of classes P(C_i)
39
+ * @param classLists Instances are divided into K lists, where each list contains only instances from a single class
40
+ */
41
+ trainDiscreteVersion(priorDistribution, classLists) {
42
+ let classAttributeDistributions = new Map();
43
+ for (let i = 0; i < classLists.size(); i++) {
44
+ classAttributeDistributions.set(classLists.get(i).getClassLabel(), classLists.get(i).allAttributesDistribution());
45
+ }
46
+ this.model = new NaiveBayesModel_1.NaiveBayesModel(priorDistribution, classAttributeDistributions);
47
+ }
48
+ /**
49
+ * Training algorithm for Naive Bayes algorithm. It basically calls trainContinuousVersion for continuous data sets,
50
+ * trainDiscreteVersion for discrete data sets.
51
+ * @param trainSet Training data given to the algorithm
52
+ * @param parameters -
53
+ */
54
+ train(trainSet, parameters) {
55
+ let priorDistribution = trainSet.classDistribution();
56
+ let classLists = new Partition_1.Partition(trainSet);
57
+ if (classLists.get(0).get(0).getAttribute(0) instanceof DiscreteAttribute_1.DiscreteAttribute) {
58
+ this.trainDiscreteVersion(priorDistribution, classLists);
59
+ }
60
+ else {
61
+ this.trainContinuousVersion(priorDistribution, classLists);
62
+ }
63
+ }
64
+ }
65
+ exports.NaiveBayes = NaiveBayes;
66
+ });
67
+ //# sourceMappingURL=NaiveBayes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NaiveBayes.js","sourceRoot":"","sources":["../../source/Classifier/NaiveBayes.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,6CAAwC;IAIxC,yDAAoD;IAGpD,8DAAyD;IACzD,sEAAiE;IAEjE,MAAa,UAAW,SAAQ,uBAAU;QAEtC;;;;;WAKG;QACK,sBAAsB,CAAC,iBAAuC,EAAE,UAAqB;YACzF,IAAI,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;YAC3C,IAAI,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;YAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAC;gBACvC,IAAI,UAAU,GAA8B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,aAAa,EAAE,CAAC;gBAC/E,IAAI,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC3D,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;gBAC1C,IAAI,uBAAuB,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC/E,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;aAC5D;YACD,IAAI,CAAC,KAAK,GAAG,IAAI,iCAAe,CAAC,iBAAiB,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;QACrF,CAAC;QAED;;;;WAIG;QACK,oBAAoB,CAAC,iBAAuC,EAAE,UAAqB;YACvF,IAAI,2BAA2B,GAAG,IAAI,GAAG,EAAuC,CAAC;YACjF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAC;gBACvC,2BAA2B,CAAC,GAAG,CAA4B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,aAAa,EAAE,EACzF,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,yBAAyB,EAAE,CAAC,CAAC;aACtD;YACD,IAAI,CAAC,KAAK,GAAG,IAAI,iCAAe,CAAC,iBAAiB,EAAE,2BAA2B,CAAC,CAAC;QACrF,CAAC;QAED;;;;;WAKG;QACH,KAAK,CAAC,QAAsB,EAAE,UAAqB;YAC/C,IAAI,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YACrD,IAAI,UAAU,GAAG,IAAI,qBAAS,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,qCAAiB,EAAC;gBACtE,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;aAC5D;iBAAM;gBACH,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;aAC9D;QACL,CAAC;KAEJ;IAnDD,gCAmDC"}
@@ -0,0 +1,12 @@
1
+ import { Classifier } from "./Classifier";
2
+ import { Parameter } from "../Parameter/Parameter";
3
+ import { InstanceList } from "../InstanceList/InstanceList";
4
+ export declare class Qda extends Classifier {
5
+ /**
6
+ * Training algorithm for the quadratic discriminant analysis classifier (Introduction to Machine Learning, Alpaydin, 2015).
7
+ *
8
+ * @param trainSet Training data given to the algorithm.
9
+ * @param parameters -
10
+ */
11
+ train(trainSet: InstanceList, parameters: Parameter): void;
12
+ }
@@ -0,0 +1,50 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "./Classifier", "nlptoolkit-math/dist/Vector", "../InstanceList/Partition", "../Model/QdaModel"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.Qda = void 0;
13
+ const Classifier_1 = require("./Classifier");
14
+ const Vector_1 = require("nlptoolkit-math/dist/Vector");
15
+ const Partition_1 = require("../InstanceList/Partition");
16
+ const QdaModel_1 = require("../Model/QdaModel");
17
+ class Qda extends Classifier_1.Classifier {
18
+ /**
19
+ * Training algorithm for the quadratic discriminant analysis classifier (Introduction to Machine Learning, Alpaydin, 2015).
20
+ *
21
+ * @param trainSet Training data given to the algorithm.
22
+ * @param parameters -
23
+ */
24
+ train(trainSet, parameters) {
25
+ let determinant = 0;
26
+ let w0 = new Map();
27
+ let w = new Map();
28
+ let W = new Map();
29
+ let classLists = new Partition_1.Partition(trainSet);
30
+ let priorDistribution = trainSet.classDistribution();
31
+ for (let i = 0; i < classLists.size(); i++) {
32
+ let Ci = classLists.get(i).getClassLabel();
33
+ let averageVector = new Vector_1.Vector(classLists.get(i).continuousAttributeAverage());
34
+ let classCovariance = classLists.get(i).covariance(averageVector);
35
+ determinant = classCovariance.determinant();
36
+ classCovariance.inverse();
37
+ let Wi = classCovariance.clone();
38
+ Wi.multiplyWithConstant(-0.5);
39
+ W.set(Ci, Wi);
40
+ let wi = classCovariance.multiplyWithVectorFromLeft(averageVector);
41
+ w.set(Ci, wi);
42
+ let w0i = -0.5 * (wi.dotProduct(averageVector) + Math.log(determinant)) + Math.log(priorDistribution.getProbability(Ci));
43
+ w0.set(Ci, w0i);
44
+ }
45
+ this.model = new QdaModel_1.QdaModel(priorDistribution, W, w, w0);
46
+ }
47
+ }
48
+ exports.Qda = Qda;
49
+ });
50
+ //# sourceMappingURL=Qda.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Qda.js","sourceRoot":"","sources":["../../source/Classifier/Qda.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,6CAAwC;IAGxC,wDAAmD;IAEnD,yDAAoD;IAEpD,gDAA2C;IAE3C,MAAa,GAAI,SAAQ,uBAAU;QAE/B;;;;;WAKG;QACH,KAAK,CAAC,QAAsB,EAAE,UAAqB;YAC/C,IAAI,WAAW,GAAG,CAAC,CAAA;YACnB,IAAI,EAAE,GAAG,IAAI,GAAG,EAAkB,CAAC;YACnC,IAAI,CAAC,GAAG,IAAI,GAAG,EAAkB,CAAC;YAClC,IAAI,CAAC,GAAG,IAAI,GAAG,EAAkB,CAAC;YAClC,IAAI,UAAU,GAAG,IAAI,qBAAS,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;gBACxC,IAAI,EAAE,GAA8B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,aAAa,EAAE,CAAC;gBACvE,IAAI,aAAa,GAAG,IAAI,eAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,0BAA0B,EAAE,CAAC,CAAC;gBAC/E,IAAI,eAAe,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;gBAClE,WAAW,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC;gBAC5C,eAAe,CAAC,OAAO,EAAE,CAAC;gBAC1B,IAAI,EAAE,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC;gBACjC,EAAE,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC9B,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACd,IAAI,EAAE,GAAG,eAAe,CAAC,0BAA0B,CAAC,aAAa,CAAC,CAAC;gBACnE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACd,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzH,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;aACnB;YACD,IAAI,CAAC,KAAK,GAAG,IAAI,mBAAQ,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3D,CAAC;KAEJ;IAhCD,kBAgCC"}