agentdb 2.0.0-alpha.2 → 2.0.0-alpha.2.2

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 (317) hide show
  1. package/dist/agentdb.min.js +4 -4
  2. package/dist/simulation/cli.js +0 -0
  3. package/dist/src/cli/agentdb-cli.d.ts.map +1 -1
  4. package/dist/src/cli/agentdb-cli.js +78 -0
  5. package/dist/src/cli/agentdb-cli.js.map +1 -1
  6. package/dist/src/cli/commands/init.js +3 -3
  7. package/dist/src/cli/commands/init.js.map +1 -1
  8. package/package.json +3 -3
  9. package/src/cli/agentdb-cli.ts +78 -0
  10. package/src/cli/commands/init.ts +3 -3
  11. package/dist/agentdb-advanced.js +0 -2110
  12. package/dist/agentdb-advanced.min.js +0 -1
  13. package/dist/backends/GraphBackend.d.ts +0 -196
  14. package/dist/backends/GraphBackend.d.ts.map +0 -1
  15. package/dist/backends/GraphBackend.js +0 -33
  16. package/dist/backends/GraphBackend.js.map +0 -1
  17. package/dist/backends/LearningBackend.d.ts +0 -148
  18. package/dist/backends/LearningBackend.d.ts.map +0 -1
  19. package/dist/backends/LearningBackend.js +0 -27
  20. package/dist/backends/LearningBackend.js.map +0 -1
  21. package/dist/backends/VectorBackend.d.ts +0 -119
  22. package/dist/backends/VectorBackend.d.ts.map +0 -1
  23. package/dist/backends/VectorBackend.js +0 -14
  24. package/dist/backends/VectorBackend.js.map +0 -1
  25. package/dist/backends/detector.d.ts +0 -81
  26. package/dist/backends/detector.d.ts.map +0 -1
  27. package/dist/backends/detector.js +0 -192
  28. package/dist/backends/detector.js.map +0 -1
  29. package/dist/backends/factory.d.ts +0 -50
  30. package/dist/backends/factory.d.ts.map +0 -1
  31. package/dist/backends/factory.js +0 -161
  32. package/dist/backends/factory.js.map +0 -1
  33. package/dist/backends/graph/GraphDatabaseAdapter.d.ts +0 -139
  34. package/dist/backends/graph/GraphDatabaseAdapter.d.ts.map +0 -1
  35. package/dist/backends/graph/GraphDatabaseAdapter.js +0 -194
  36. package/dist/backends/graph/GraphDatabaseAdapter.js.map +0 -1
  37. package/dist/backends/hnswlib/HNSWLibBackend.d.ts +0 -92
  38. package/dist/backends/hnswlib/HNSWLibBackend.d.ts.map +0 -1
  39. package/dist/backends/hnswlib/HNSWLibBackend.js +0 -316
  40. package/dist/backends/hnswlib/HNSWLibBackend.js.map +0 -1
  41. package/dist/backends/hnswlib/index.d.ts +0 -7
  42. package/dist/backends/hnswlib/index.d.ts.map +0 -1
  43. package/dist/backends/hnswlib/index.js +0 -7
  44. package/dist/backends/hnswlib/index.js.map +0 -1
  45. package/dist/backends/index.d.ts +0 -14
  46. package/dist/backends/index.d.ts.map +0 -1
  47. package/dist/backends/index.js +0 -13
  48. package/dist/backends/index.js.map +0 -1
  49. package/dist/backends/ruvector/RuVectorBackend.d.ts +0 -75
  50. package/dist/backends/ruvector/RuVectorBackend.d.ts.map +0 -1
  51. package/dist/backends/ruvector/RuVectorBackend.js +0 -198
  52. package/dist/backends/ruvector/RuVectorBackend.js.map +0 -1
  53. package/dist/backends/ruvector/RuVectorLearning.d.ts +0 -104
  54. package/dist/backends/ruvector/RuVectorLearning.d.ts.map +0 -1
  55. package/dist/backends/ruvector/RuVectorLearning.js +0 -177
  56. package/dist/backends/ruvector/RuVectorLearning.js.map +0 -1
  57. package/dist/backends/ruvector/index.d.ts +0 -9
  58. package/dist/backends/ruvector/index.d.ts.map +0 -1
  59. package/dist/backends/ruvector/index.js +0 -8
  60. package/dist/backends/ruvector/index.js.map +0 -1
  61. package/dist/benchmarks/wasm-vector-benchmark.d.ts +0 -10
  62. package/dist/benchmarks/wasm-vector-benchmark.d.ts.map +0 -1
  63. package/dist/benchmarks/wasm-vector-benchmark.js +0 -196
  64. package/dist/benchmarks/wasm-vector-benchmark.js.map +0 -1
  65. package/dist/browser/AdvancedFeatures.d.ts +0 -144
  66. package/dist/browser/AdvancedFeatures.d.ts.map +0 -1
  67. package/dist/browser/AdvancedFeatures.js +0 -430
  68. package/dist/browser/AdvancedFeatures.js.map +0 -1
  69. package/dist/browser/HNSWIndex.d.ts +0 -117
  70. package/dist/browser/HNSWIndex.d.ts.map +0 -1
  71. package/dist/browser/HNSWIndex.js +0 -402
  72. package/dist/browser/HNSWIndex.js.map +0 -1
  73. package/dist/browser/ProductQuantization.d.ts +0 -107
  74. package/dist/browser/ProductQuantization.d.ts.map +0 -1
  75. package/dist/browser/ProductQuantization.js +0 -337
  76. package/dist/browser/ProductQuantization.js.map +0 -1
  77. package/dist/browser/browser/AdvancedFeatures.d.ts +0 -144
  78. package/dist/browser/browser/AdvancedFeatures.d.ts.map +0 -1
  79. package/dist/browser/browser/AdvancedFeatures.js +0 -427
  80. package/dist/browser/browser/HNSWIndex.d.ts +0 -117
  81. package/dist/browser/browser/HNSWIndex.d.ts.map +0 -1
  82. package/dist/browser/browser/HNSWIndex.js +0 -402
  83. package/dist/browser/browser/ProductQuantization.d.ts +0 -107
  84. package/dist/browser/browser/ProductQuantization.d.ts.map +0 -1
  85. package/dist/browser/browser/ProductQuantization.js +0 -348
  86. package/dist/browser/browser/index.d.ts +0 -223
  87. package/dist/browser/browser/index.d.ts.map +0 -1
  88. package/dist/browser/browser/index.js +0 -233
  89. package/dist/browser/index.d.ts +0 -223
  90. package/dist/browser/index.d.ts.map +0 -1
  91. package/dist/browser/index.js +0 -225
  92. package/dist/browser/index.js.map +0 -1
  93. package/dist/cli/agentdb-cli.d.ts +0 -154
  94. package/dist/cli/agentdb-cli.d.ts.map +0 -1
  95. package/dist/cli/agentdb-cli.js +0 -2273
  96. package/dist/cli/agentdb-cli.js.map +0 -1
  97. package/dist/cli/agentdb.db +0 -0
  98. package/dist/cli/commands/init.d.ts +0 -12
  99. package/dist/cli/commands/init.d.ts.map +0 -1
  100. package/dist/cli/commands/init.js +0 -115
  101. package/dist/cli/commands/init.js.map +0 -1
  102. package/dist/cli/commands/install-embeddings.d.ts +0 -10
  103. package/dist/cli/commands/install-embeddings.d.ts.map +0 -1
  104. package/dist/cli/commands/install-embeddings.js +0 -68
  105. package/dist/cli/commands/install-embeddings.js.map +0 -1
  106. package/dist/cli/commands/migrate.d.ts +0 -15
  107. package/dist/cli/commands/migrate.d.ts.map +0 -1
  108. package/dist/cli/commands/migrate.js +0 -425
  109. package/dist/cli/commands/migrate.js.map +0 -1
  110. package/dist/cli/commands/status.d.ts +0 -10
  111. package/dist/cli/commands/status.d.ts.map +0 -1
  112. package/dist/cli/commands/status.js +0 -129
  113. package/dist/cli/commands/status.js.map +0 -1
  114. package/dist/controllers/CausalMemoryGraph.d.ts +0 -126
  115. package/dist/controllers/CausalMemoryGraph.d.ts.map +0 -1
  116. package/dist/controllers/CausalMemoryGraph.js +0 -323
  117. package/dist/controllers/CausalMemoryGraph.js.map +0 -1
  118. package/dist/controllers/CausalRecall.d.ts +0 -139
  119. package/dist/controllers/CausalRecall.d.ts.map +0 -1
  120. package/dist/controllers/CausalRecall.js +0 -356
  121. package/dist/controllers/CausalRecall.js.map +0 -1
  122. package/dist/controllers/ContextSynthesizer.d.ts +0 -65
  123. package/dist/controllers/ContextSynthesizer.d.ts.map +0 -1
  124. package/dist/controllers/ContextSynthesizer.js +0 -208
  125. package/dist/controllers/ContextSynthesizer.js.map +0 -1
  126. package/dist/controllers/EmbeddingService.d.ts +0 -37
  127. package/dist/controllers/EmbeddingService.d.ts.map +0 -1
  128. package/dist/controllers/EmbeddingService.js +0 -136
  129. package/dist/controllers/EmbeddingService.js.map +0 -1
  130. package/dist/controllers/EnhancedEmbeddingService.d.ts +0 -50
  131. package/dist/controllers/EnhancedEmbeddingService.d.ts.map +0 -1
  132. package/dist/controllers/EnhancedEmbeddingService.js +0 -119
  133. package/dist/controllers/EnhancedEmbeddingService.js.map +0 -1
  134. package/dist/controllers/ExplainableRecall.d.ts +0 -163
  135. package/dist/controllers/ExplainableRecall.d.ts.map +0 -1
  136. package/dist/controllers/ExplainableRecall.js +0 -485
  137. package/dist/controllers/ExplainableRecall.js.map +0 -1
  138. package/dist/controllers/HNSWIndex.d.ts +0 -128
  139. package/dist/controllers/HNSWIndex.d.ts.map +0 -1
  140. package/dist/controllers/HNSWIndex.js +0 -361
  141. package/dist/controllers/HNSWIndex.js.map +0 -1
  142. package/dist/controllers/LearningSystem.d.ts +0 -195
  143. package/dist/controllers/LearningSystem.d.ts.map +0 -1
  144. package/dist/controllers/LearningSystem.js +0 -929
  145. package/dist/controllers/LearningSystem.js.map +0 -1
  146. package/dist/controllers/MMRDiversityRanker.d.ts +0 -50
  147. package/dist/controllers/MMRDiversityRanker.d.ts.map +0 -1
  148. package/dist/controllers/MMRDiversityRanker.js +0 -130
  149. package/dist/controllers/MMRDiversityRanker.js.map +0 -1
  150. package/dist/controllers/MetadataFilter.d.ts +0 -70
  151. package/dist/controllers/MetadataFilter.d.ts.map +0 -1
  152. package/dist/controllers/MetadataFilter.js +0 -243
  153. package/dist/controllers/MetadataFilter.js.map +0 -1
  154. package/dist/controllers/NightlyLearner.d.ts +0 -114
  155. package/dist/controllers/NightlyLearner.d.ts.map +0 -1
  156. package/dist/controllers/NightlyLearner.js +0 -394
  157. package/dist/controllers/NightlyLearner.js.map +0 -1
  158. package/dist/controllers/QUICClient.d.ts +0 -109
  159. package/dist/controllers/QUICClient.d.ts.map +0 -1
  160. package/dist/controllers/QUICClient.js +0 -299
  161. package/dist/controllers/QUICClient.js.map +0 -1
  162. package/dist/controllers/QUICServer.d.ts +0 -121
  163. package/dist/controllers/QUICServer.d.ts.map +0 -1
  164. package/dist/controllers/QUICServer.js +0 -383
  165. package/dist/controllers/QUICServer.js.map +0 -1
  166. package/dist/controllers/ReasoningBank.d.ts +0 -196
  167. package/dist/controllers/ReasoningBank.d.ts.map +0 -1
  168. package/dist/controllers/ReasoningBank.js +0 -494
  169. package/dist/controllers/ReasoningBank.js.map +0 -1
  170. package/dist/controllers/ReflexionMemory.d.ts +0 -125
  171. package/dist/controllers/ReflexionMemory.d.ts.map +0 -1
  172. package/dist/controllers/ReflexionMemory.js +0 -521
  173. package/dist/controllers/ReflexionMemory.js.map +0 -1
  174. package/dist/controllers/SkillLibrary.d.ts +0 -149
  175. package/dist/controllers/SkillLibrary.d.ts.map +0 -1
  176. package/dist/controllers/SkillLibrary.js +0 -547
  177. package/dist/controllers/SkillLibrary.js.map +0 -1
  178. package/dist/controllers/SyncCoordinator.d.ts +0 -120
  179. package/dist/controllers/SyncCoordinator.d.ts.map +0 -1
  180. package/dist/controllers/SyncCoordinator.js +0 -441
  181. package/dist/controllers/SyncCoordinator.js.map +0 -1
  182. package/dist/controllers/WASMVectorSearch.d.ts +0 -89
  183. package/dist/controllers/WASMVectorSearch.d.ts.map +0 -1
  184. package/dist/controllers/WASMVectorSearch.js +0 -234
  185. package/dist/controllers/WASMVectorSearch.js.map +0 -1
  186. package/dist/controllers/frontier-index.d.ts +0 -14
  187. package/dist/controllers/frontier-index.d.ts.map +0 -1
  188. package/dist/controllers/frontier-index.js +0 -10
  189. package/dist/controllers/frontier-index.js.map +0 -1
  190. package/dist/controllers/index.d.ts +0 -30
  191. package/dist/controllers/index.d.ts.map +0 -1
  192. package/dist/controllers/index.js +0 -18
  193. package/dist/controllers/index.js.map +0 -1
  194. package/dist/db-fallback.d.ts +0 -26
  195. package/dist/db-fallback.d.ts.map +0 -1
  196. package/dist/db-fallback.js +0 -264
  197. package/dist/db-fallback.js.map +0 -1
  198. package/dist/db-test.d.ts +0 -13
  199. package/dist/db-test.d.ts.map +0 -1
  200. package/dist/db-test.js +0 -55
  201. package/dist/db-test.js.map +0 -1
  202. package/dist/db-unified.d.ts +0 -76
  203. package/dist/db-unified.d.ts.map +0 -1
  204. package/dist/db-unified.js +0 -278
  205. package/dist/db-unified.js.map +0 -1
  206. package/dist/examples/quic-sync-example.d.ts +0 -9
  207. package/dist/examples/quic-sync-example.d.ts.map +0 -1
  208. package/dist/examples/quic-sync-example.js +0 -169
  209. package/dist/examples/quic-sync-example.js.map +0 -1
  210. package/dist/examples/wasm-vector-usage.d.ts +0 -12
  211. package/dist/examples/wasm-vector-usage.d.ts.map +0 -1
  212. package/dist/examples/wasm-vector-usage.js +0 -190
  213. package/dist/examples/wasm-vector-usage.js.map +0 -1
  214. package/dist/index.d.ts +0 -28
  215. package/dist/index.d.ts.map +0 -1
  216. package/dist/index.js +0 -35
  217. package/dist/index.js.map +0 -1
  218. package/dist/malp/core/ccc.d.ts +0 -99
  219. package/dist/malp/core/ccc.d.ts.map +0 -1
  220. package/dist/malp/core/ccc.js +0 -181
  221. package/dist/malp/core/ccc.js.map +0 -1
  222. package/dist/malp/core/index.d.ts +0 -9
  223. package/dist/malp/core/index.d.ts.map +0 -1
  224. package/dist/malp/core/index.js +0 -9
  225. package/dist/malp/core/index.js.map +0 -1
  226. package/dist/malp/core/linalg.d.ts +0 -101
  227. package/dist/malp/core/linalg.d.ts.map +0 -1
  228. package/dist/malp/core/linalg.js +0 -278
  229. package/dist/malp/core/linalg.js.map +0 -1
  230. package/dist/malp/core/optimizer.d.ts +0 -68
  231. package/dist/malp/core/optimizer.d.ts.map +0 -1
  232. package/dist/malp/core/optimizer.js +0 -160
  233. package/dist/malp/core/optimizer.js.map +0 -1
  234. package/dist/malp/index.d.ts +0 -33
  235. package/dist/malp/index.d.ts.map +0 -1
  236. package/dist/malp/index.js +0 -37
  237. package/dist/malp/index.js.map +0 -1
  238. package/dist/malp/metrics/agreement.d.ts +0 -106
  239. package/dist/malp/metrics/agreement.d.ts.map +0 -1
  240. package/dist/malp/metrics/agreement.js +0 -199
  241. package/dist/malp/metrics/agreement.js.map +0 -1
  242. package/dist/malp/metrics/comparison.d.ts +0 -93
  243. package/dist/malp/metrics/comparison.d.ts.map +0 -1
  244. package/dist/malp/metrics/comparison.js +0 -256
  245. package/dist/malp/metrics/comparison.js.map +0 -1
  246. package/dist/malp/metrics/index.d.ts +0 -8
  247. package/dist/malp/metrics/index.d.ts.map +0 -1
  248. package/dist/malp/metrics/index.js +0 -8
  249. package/dist/malp/metrics/index.js.map +0 -1
  250. package/dist/malp/metrics/performance.d.ts +0 -61
  251. package/dist/malp/metrics/performance.d.ts.map +0 -1
  252. package/dist/malp/metrics/performance.js +0 -190
  253. package/dist/malp/metrics/performance.js.map +0 -1
  254. package/dist/malp/models/index.d.ts +0 -7
  255. package/dist/malp/models/index.d.ts.map +0 -1
  256. package/dist/malp/models/index.js +0 -7
  257. package/dist/malp/models/index.js.map +0 -1
  258. package/dist/malp/models/malp.d.ts +0 -116
  259. package/dist/malp/models/malp.d.ts.map +0 -1
  260. package/dist/malp/models/malp.js +0 -206
  261. package/dist/malp/models/malp.js.map +0 -1
  262. package/dist/malp/models/regressor.d.ts +0 -80
  263. package/dist/malp/models/regressor.d.ts.map +0 -1
  264. package/dist/malp/models/regressor.js +0 -229
  265. package/dist/malp/models/regressor.js.map +0 -1
  266. package/dist/malp/reasoningbank_validator.d.ts +0 -187
  267. package/dist/malp/reasoningbank_validator.d.ts.map +0 -1
  268. package/dist/malp/reasoningbank_validator.js +0 -246
  269. package/dist/malp/reasoningbank_validator.js.map +0 -1
  270. package/dist/malp/wasm_bindings.d.ts +0 -344
  271. package/dist/malp/wasm_bindings.d.ts.map +0 -1
  272. package/dist/malp/wasm_bindings.js +0 -9
  273. package/dist/malp/wasm_bindings.js.map +0 -1
  274. package/dist/mcp/agentdb-mcp-server.d.ts +0 -8
  275. package/dist/mcp/agentdb-mcp-server.d.ts.map +0 -1
  276. package/dist/mcp/agentdb-mcp-server.js +0 -2116
  277. package/dist/mcp/agentdb-mcp-server.js.map +0 -1
  278. package/dist/mcp/learning-tools-handlers.d.ts +0 -16
  279. package/dist/mcp/learning-tools-handlers.d.ts.map +0 -1
  280. package/dist/mcp/learning-tools-handlers.js +0 -105
  281. package/dist/mcp/learning-tools-handlers.js.map +0 -1
  282. package/dist/optimizations/BatchOperations.d.ts +0 -109
  283. package/dist/optimizations/BatchOperations.d.ts.map +0 -1
  284. package/dist/optimizations/BatchOperations.js +0 -407
  285. package/dist/optimizations/BatchOperations.js.map +0 -1
  286. package/dist/optimizations/QueryOptimizer.d.ts +0 -83
  287. package/dist/optimizations/QueryOptimizer.d.ts.map +0 -1
  288. package/dist/optimizations/QueryOptimizer.js +0 -228
  289. package/dist/optimizations/QueryOptimizer.js.map +0 -1
  290. package/dist/optimizations/ToolCache.d.ts +0 -137
  291. package/dist/optimizations/ToolCache.d.ts.map +0 -1
  292. package/dist/optimizations/ToolCache.js +0 -281
  293. package/dist/optimizations/ToolCache.js.map +0 -1
  294. package/dist/optimizations/index.d.ts +0 -10
  295. package/dist/optimizations/index.d.ts.map +0 -1
  296. package/dist/optimizations/index.js +0 -8
  297. package/dist/optimizations/index.js.map +0 -1
  298. package/dist/security/input-validation.d.ts +0 -109
  299. package/dist/security/input-validation.d.ts.map +0 -1
  300. package/dist/security/input-validation.js +0 -398
  301. package/dist/security/input-validation.js.map +0 -1
  302. package/dist/security/limits.d.ts +0 -150
  303. package/dist/security/limits.d.ts.map +0 -1
  304. package/dist/security/limits.js +0 -288
  305. package/dist/security/limits.js.map +0 -1
  306. package/dist/security/path-security.d.ts +0 -100
  307. package/dist/security/path-security.d.ts.map +0 -1
  308. package/dist/security/path-security.js +0 -337
  309. package/dist/security/path-security.js.map +0 -1
  310. package/dist/security/validation.d.ts +0 -95
  311. package/dist/security/validation.d.ts.map +0 -1
  312. package/dist/security/validation.js +0 -315
  313. package/dist/security/validation.js.map +0 -1
  314. package/dist/types/quic.d.ts +0 -518
  315. package/dist/types/quic.d.ts.map +0 -1
  316. package/dist/types/quic.js +0 -272
  317. package/dist/types/quic.js.map +0 -1
@@ -1,116 +0,0 @@
1
- /**
2
- * MALP Regressor - Maximum Agreement Linear Predictor
3
- *
4
- * A linear regression model that maximizes the Concordance Correlation Coefficient (CCC)
5
- * instead of minimizing squared error. Provides better agreement between predictions
6
- * and observations, especially for measurement validation and method comparison.
7
- */
8
- import { Vector, Matrix } from '../core/linalg.js';
9
- import { OptimizerConfig, OptimizationResult } from '../core/optimizer.js';
10
- /**
11
- * MALP model configuration
12
- */
13
- export interface MALPConfig {
14
- /** Whether to fit an intercept term */
15
- fitIntercept: boolean;
16
- /** Optimizer configuration */
17
- optimizer: Partial<OptimizerConfig>;
18
- /** Initialize with least squares solution */
19
- useLeastSquaresInit: boolean;
20
- }
21
- /**
22
- * Default MALP configuration
23
- */
24
- export declare const DEFAULT_MALP_CONFIG: MALPConfig;
25
- /**
26
- * MALP Regressor Model
27
- *
28
- * Fits a linear model by maximizing the Concordance Correlation Coefficient.
29
- *
30
- * Usage:
31
- * ```typescript
32
- * const model = new MALPRegressor();
33
- * model.fit(X, y);
34
- * const predictions = model.predict(X);
35
- * const score = model.score(X, y);
36
- * ```
37
- */
38
- export declare class MALPRegressor {
39
- private config;
40
- private coefficients;
41
- private intercept;
42
- private isFitted;
43
- private optimizationResult;
44
- constructor(config?: Partial<MALPConfig>);
45
- /**
46
- * Fit the MALP model to training data
47
- *
48
- * @param X - Feature matrix (n_samples × n_features)
49
- * @param y - Target values (n_samples)
50
- * @returns this (for method chaining)
51
- */
52
- fit(X: number[][] | Matrix, y: number[] | Vector): this;
53
- /**
54
- * Make predictions using the fitted model
55
- *
56
- * @param X - Feature matrix (n_samples × n_features)
57
- * @returns Predicted values (n_samples)
58
- */
59
- predict(X: number[][] | Matrix): number[];
60
- /**
61
- * Compute CCC score on test data
62
- *
63
- * @param X - Feature matrix (n_samples × n_features)
64
- * @param y - True target values (n_samples)
65
- * @returns CCC score (higher is better, range [-1, 1])
66
- */
67
- score(X: number[][] | Matrix, y: number[] | Vector): number;
68
- /**
69
- * Get model coefficients (excluding intercept)
70
- */
71
- getCoefficients(): number[] | null;
72
- /**
73
- * Get model intercept
74
- */
75
- getIntercept(): number;
76
- /**
77
- * Check if model is fitted
78
- */
79
- isTrained(): boolean;
80
- /**
81
- * Get optimization result details
82
- */
83
- getOptimizationResult(): OptimizationResult | null;
84
- /**
85
- * Get model summary statistics
86
- */
87
- summary(): {
88
- coefficients: number[] | null;
89
- intercept: number;
90
- isFitted: boolean;
91
- finalCCC: number | null;
92
- iterations: number | null;
93
- converged: boolean | null;
94
- };
95
- /**
96
- * Reset the model to unfitted state
97
- */
98
- reset(): void;
99
- /**
100
- * Clone the model configuration (not the fitted state)
101
- */
102
- clone(): MALPRegressor;
103
- /**
104
- * Set model parameters directly (for advanced use cases)
105
- */
106
- setParams(coefficients: number[], intercept?: number): void;
107
- /**
108
- * Get feature importance based on coefficient magnitudes
109
- */
110
- getFeatureImportance(): number[] | null;
111
- }
112
- /**
113
- * Convenience function for fitting MALP model
114
- */
115
- export declare function fitMALP(X: number[][] | Matrix, y: number[] | Vector, config?: Partial<MALPConfig>): MALPRegressor;
116
- //# sourceMappingURL=malp.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"malp.d.ts","sourceRoot":"","sources":["../../../src/malp/models/malp.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,EAA0E,MAAM,mBAAmB,CAAC;AAE3H,OAAO,EAA2B,eAAe,EAAE,kBAAkB,EAA4B,MAAM,sBAAsB,CAAC;AAE9H;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,uCAAuC;IACvC,YAAY,EAAE,OAAO,CAAC;IACtB,8BAA8B;IAC9B,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACpC,6CAA6C;IAC7C,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,UAIjC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,kBAAkB,CAAmC;gBAEjD,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM;IAQ5C;;;;;;OAMG;IACH,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI;IA2CvD;;;;;OAKG;IACH,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE;IAuBzC;;;;;;OAMG;IACH,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM;IAS3D;;OAEG;IACH,eAAe,IAAI,MAAM,EAAE,GAAG,IAAI;IAIlC;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,qBAAqB,IAAI,kBAAkB,GAAG,IAAI;IAIlD;;OAEG;IACH,OAAO,IAAI;QACT,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC9B,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,OAAO,CAAC;QAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;KAC3B;IAWD;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;OAEG;IACH,KAAK,IAAI,aAAa;IAItB;;OAEG;IACH,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,SAAS,GAAE,MAAU,GAAG,IAAI;IAM9D;;OAEG;IACH,oBAAoB,IAAI,MAAM,EAAE,GAAG,IAAI;CAaxC;AAED;;GAEG;AACH,wBAAgB,OAAO,CACrB,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EACtB,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EACpB,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAC3B,aAAa,CAIf"}
@@ -1,206 +0,0 @@
1
- /**
2
- * MALP Regressor - Maximum Agreement Linear Predictor
3
- *
4
- * A linear regression model that maximizes the Concordance Correlation Coefficient (CCC)
5
- * instead of minimizing squared error. Provides better agreement between predictions
6
- * and observations, especially for measurement validation and method comparison.
7
- */
8
- import { createVector, createMatrix, addIntercept, matVecMultiply, leastSquares } from '../core/linalg.js';
9
- import { computeCCC } from '../core/ccc.js';
10
- import { GradientAscentOptimizer, DEFAULT_OPTIMIZER_CONFIG } from '../core/optimizer.js';
11
- /**
12
- * Default MALP configuration
13
- */
14
- export const DEFAULT_MALP_CONFIG = {
15
- fitIntercept: true,
16
- optimizer: DEFAULT_OPTIMIZER_CONFIG,
17
- useLeastSquaresInit: true
18
- };
19
- /**
20
- * MALP Regressor Model
21
- *
22
- * Fits a linear model by maximizing the Concordance Correlation Coefficient.
23
- *
24
- * Usage:
25
- * ```typescript
26
- * const model = new MALPRegressor();
27
- * model.fit(X, y);
28
- * const predictions = model.predict(X);
29
- * const score = model.score(X, y);
30
- * ```
31
- */
32
- export class MALPRegressor {
33
- config;
34
- coefficients = null;
35
- intercept = 0;
36
- isFitted = false;
37
- optimizationResult = null;
38
- constructor(config = {}) {
39
- this.config = {
40
- ...DEFAULT_MALP_CONFIG,
41
- ...config,
42
- optimizer: { ...DEFAULT_OPTIMIZER_CONFIG, ...(config.optimizer || {}) }
43
- };
44
- }
45
- /**
46
- * Fit the MALP model to training data
47
- *
48
- * @param X - Feature matrix (n_samples × n_features)
49
- * @param y - Target values (n_samples)
50
- * @returns this (for method chaining)
51
- */
52
- fit(X, y) {
53
- // Convert inputs to standard format
54
- const XMatrix = Array.isArray(X) ? createMatrix(X) : X;
55
- const yVector = Array.isArray(y) ? createVector(y) : y;
56
- if (XMatrix.rows !== yVector.length) {
57
- throw new Error(`Sample size mismatch: ${XMatrix.rows} !== ${yVector.length}`);
58
- }
59
- // Add intercept column if needed
60
- const XWithIntercept = this.config.fitIntercept ? addIntercept(XMatrix) : XMatrix;
61
- // Initialize parameters
62
- let initialParams;
63
- if (this.config.useLeastSquaresInit) {
64
- // Initialize with least squares solution
65
- initialParams = leastSquares(XWithIntercept, yVector);
66
- }
67
- else {
68
- // Initialize with zeros
69
- initialParams = createVector(new Array(XWithIntercept.cols).fill(0));
70
- }
71
- // Optimize parameters to maximize CCC
72
- const optimizer = new GradientAscentOptimizer(this.config.optimizer);
73
- this.optimizationResult = optimizer.optimize(XWithIntercept, yVector, initialParams);
74
- // Extract coefficients and intercept
75
- const params = this.optimizationResult.parameters;
76
- if (this.config.fitIntercept) {
77
- this.intercept = params.data[0];
78
- this.coefficients = createVector(params.data.slice(1));
79
- }
80
- else {
81
- this.intercept = 0;
82
- this.coefficients = params;
83
- }
84
- this.isFitted = true;
85
- return this;
86
- }
87
- /**
88
- * Make predictions using the fitted model
89
- *
90
- * @param X - Feature matrix (n_samples × n_features)
91
- * @returns Predicted values (n_samples)
92
- */
93
- predict(X) {
94
- if (!this.isFitted || !this.coefficients) {
95
- throw new Error('Model must be fitted before making predictions');
96
- }
97
- const XMatrix = Array.isArray(X) ? createMatrix(X) : X;
98
- if (XMatrix.cols !== this.coefficients.length) {
99
- throw new Error(`Feature dimension mismatch: ${XMatrix.cols} !== ${this.coefficients.length}`);
100
- }
101
- // Compute predictions: y_pred = X * β + intercept
102
- const predictions = matVecMultiply(XMatrix, this.coefficients);
103
- if (this.config.fitIntercept) {
104
- for (let i = 0; i < predictions.length; i++) {
105
- predictions.data[i] += this.intercept;
106
- }
107
- }
108
- return predictions.data;
109
- }
110
- /**
111
- * Compute CCC score on test data
112
- *
113
- * @param X - Feature matrix (n_samples × n_features)
114
- * @param y - True target values (n_samples)
115
- * @returns CCC score (higher is better, range [-1, 1])
116
- */
117
- score(X, y) {
118
- const predictions = this.predict(X);
119
- const yVector = Array.isArray(y) ? createVector(y) : y;
120
- const predVector = createVector(predictions);
121
- const { ccc } = computeCCC(yVector, predVector);
122
- return ccc;
123
- }
124
- /**
125
- * Get model coefficients (excluding intercept)
126
- */
127
- getCoefficients() {
128
- return this.coefficients ? [...this.coefficients.data] : null;
129
- }
130
- /**
131
- * Get model intercept
132
- */
133
- getIntercept() {
134
- return this.intercept;
135
- }
136
- /**
137
- * Check if model is fitted
138
- */
139
- isTrained() {
140
- return this.isFitted;
141
- }
142
- /**
143
- * Get optimization result details
144
- */
145
- getOptimizationResult() {
146
- return this.optimizationResult ? { ...this.optimizationResult } : null;
147
- }
148
- /**
149
- * Get model summary statistics
150
- */
151
- summary() {
152
- return {
153
- coefficients: this.getCoefficients(),
154
- intercept: this.intercept,
155
- isFitted: this.isFitted,
156
- finalCCC: this.optimizationResult?.finalCCC ?? null,
157
- iterations: this.optimizationResult?.iterations ?? null,
158
- converged: this.optimizationResult?.converged ?? null
159
- };
160
- }
161
- /**
162
- * Reset the model to unfitted state
163
- */
164
- reset() {
165
- this.coefficients = null;
166
- this.intercept = 0;
167
- this.isFitted = false;
168
- this.optimizationResult = null;
169
- }
170
- /**
171
- * Clone the model configuration (not the fitted state)
172
- */
173
- clone() {
174
- return new MALPRegressor(this.config);
175
- }
176
- /**
177
- * Set model parameters directly (for advanced use cases)
178
- */
179
- setParams(coefficients, intercept = 0) {
180
- this.coefficients = createVector(coefficients);
181
- this.intercept = intercept;
182
- this.isFitted = true;
183
- }
184
- /**
185
- * Get feature importance based on coefficient magnitudes
186
- */
187
- getFeatureImportance() {
188
- if (!this.coefficients) {
189
- return null;
190
- }
191
- // Compute absolute values for importance
192
- const importance = this.coefficients.data.map(Math.abs);
193
- // Normalize to sum to 1
194
- const total = importance.reduce((sum, val) => sum + val, 0);
195
- return total > 0 ? importance.map(val => val / total) : importance;
196
- }
197
- }
198
- /**
199
- * Convenience function for fitting MALP model
200
- */
201
- export function fitMALP(X, y, config) {
202
- const model = new MALPRegressor(config);
203
- model.fit(X, y);
204
- return model;
205
- }
206
- //# sourceMappingURL=malp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"malp.js","sourceRoot":"","sources":["../../../src/malp/models/malp.ts"],"names":[],"mappings":"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"}
@@ -1,80 +0,0 @@
1
- /**
2
- * MALP Regressor - Maximum Agreement Linear Program
3
- *
4
- * Linear regression that maximizes concordance correlation coefficient
5
- * instead of minimizing squared error.
6
- */
7
- import { OptimizerConfig } from '../core/optimizer';
8
- export interface MALPRegressorConfig extends Partial<OptimizerConfig> {
9
- fitIntercept?: boolean;
10
- normalize?: boolean;
11
- regularization?: number;
12
- }
13
- export type MALPConfig = MALPRegressorConfig;
14
- export declare const DEFAULT_MALP_CONFIG: Required<MALPRegressorConfig>;
15
- export interface FitResult {
16
- weights: number[];
17
- intercept: number;
18
- ccc: number;
19
- r2: number;
20
- rmse: number;
21
- mae: number;
22
- iterations: number;
23
- converged: boolean;
24
- }
25
- export declare class MALPRegressor {
26
- private weights;
27
- private intercept;
28
- private optimizer;
29
- private config;
30
- private xMean;
31
- private xStd;
32
- private fitted;
33
- constructor(config?: MALPRegressorConfig);
34
- /**
35
- * Fit MALP regressor to training data
36
- * @param X Feature matrix (n_samples × n_features)
37
- * @param y Target values (n_samples)
38
- */
39
- fit(X: number[][], y: number[]): FitResult;
40
- /**
41
- * Predict target values for new data
42
- * @param X Feature matrix (n_samples × n_features)
43
- */
44
- predict(X: number[][]): number[];
45
- /**
46
- * Score the model on test data
47
- * @param X Feature matrix
48
- * @param y True target values
49
- * @returns CCC score
50
- */
51
- score(X: number[][], y: number[]): number;
52
- /**
53
- * Get model coefficients
54
- */
55
- getCoefficients(): {
56
- weights: number[];
57
- intercept: number;
58
- };
59
- /**
60
- * Normalize features (zero mean, unit variance)
61
- */
62
- private normalizeFeatures;
63
- /**
64
- * Compute evaluation metrics
65
- */
66
- private computeMetrics;
67
- }
68
- /**
69
- * Cross-validation for MALP regressor
70
- */
71
- export declare function crossValidateMALP(X: number[][], y: number[], nFolds?: number, config?: MALPRegressorConfig): {
72
- meanCCC: number;
73
- stdCCC: number;
74
- foldScores: number[];
75
- };
76
- /**
77
- * Convenience function to fit a MALP model
78
- */
79
- export declare function fitMALP(X: number[][], y: number[], config?: MALPRegressorConfig): FitResult;
80
- //# sourceMappingURL=regressor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"regressor.d.ts","sourceRoot":"","sources":["../../../src/malp/models/regressor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAiB,eAAe,EAAmB,MAAM,mBAAmB,CAAC;AAEpF,MAAM,WAAW,mBAAoB,SAAQ,OAAO,CAAC,eAAe,CAAC;IACnE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD,MAAM,MAAM,UAAU,GAAG,mBAAmB,CAAC;AAE7C,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB,CAU7D,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,MAAM,CAAkB;gBAEpB,MAAM,GAAE,mBAAwB;IAuB5C;;;;OAIG;IACH,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS;IAqD1C;;;OAGG;IACH,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE;IA+BhC;;;;;OAKG;IACH,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM;IAMzC;;OAEG;IACH,eAAe,IAAI;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAU3D;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsCzB;;OAEG;IACH,OAAO,CAAC,cAAc;CAyBvB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,MAAM,EAAE,EAAE,EACb,CAAC,EAAE,MAAM,EAAE,EACX,MAAM,GAAE,MAAU,EAClB,MAAM,GAAE,mBAAwB,GAC/B;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CA2BA;AAED;;GAEG;AACH,wBAAgB,OAAO,CACrB,CAAC,EAAE,MAAM,EAAE,EAAE,EACb,CAAC,EAAE,MAAM,EAAE,EACX,MAAM,GAAE,mBAAwB,GAC/B,SAAS,CAGX"}
@@ -1,229 +0,0 @@
1
- /**
2
- * MALP Regressor - Maximum Agreement Linear Program
3
- *
4
- * Linear regression that maximizes concordance correlation coefficient
5
- * instead of minimizing squared error.
6
- */
7
- import { calculateCCC } from '../core/ccc';
8
- import { MALPOptimizer } from '../core/optimizer';
9
- export const DEFAULT_MALP_CONFIG = {
10
- learningRate: 0.01,
11
- maxIterations: 1000,
12
- tolerance: 1e-6,
13
- momentum: 0.9,
14
- adaptive: true,
15
- verbose: false,
16
- fitIntercept: true,
17
- normalize: false,
18
- regularization: 0.0
19
- };
20
- export class MALPRegressor {
21
- weights = [];
22
- intercept = 0;
23
- optimizer;
24
- config;
25
- xMean = [];
26
- xStd = [];
27
- fitted = false;
28
- constructor(config = {}) {
29
- this.config = {
30
- learningRate: config.learningRate ?? 0.01,
31
- maxIterations: config.maxIterations ?? 1000,
32
- tolerance: config.tolerance ?? 1e-6,
33
- momentum: config.momentum ?? 0.9,
34
- adaptive: config.adaptive ?? true,
35
- verbose: config.verbose ?? false,
36
- fitIntercept: config.fitIntercept ?? true,
37
- normalize: config.normalize ?? false,
38
- regularization: config.regularization ?? 0.0
39
- };
40
- this.optimizer = new MALPOptimizer({
41
- learningRate: this.config.learningRate,
42
- maxIterations: this.config.maxIterations,
43
- tolerance: this.config.tolerance,
44
- momentum: this.config.momentum,
45
- adaptive: this.config.adaptive,
46
- verbose: this.config.verbose
47
- });
48
- }
49
- /**
50
- * Fit MALP regressor to training data
51
- * @param X Feature matrix (n_samples × n_features)
52
- * @param y Target values (n_samples)
53
- */
54
- fit(X, y) {
55
- if (X.length !== y.length) {
56
- throw new Error(`Sample size mismatch: X has ${X.length}, y has ${y.length}`);
57
- }
58
- if (X.length === 0) {
59
- throw new Error('Cannot fit with empty dataset');
60
- }
61
- // Normalize features if requested
62
- let XProcessed = X;
63
- if (this.config.normalize) {
64
- const result = this.normalizeFeatures(X);
65
- XProcessed = result.normalized;
66
- this.xMean = result.mean;
67
- this.xStd = result.std;
68
- }
69
- // Add intercept column if requested
70
- if (this.config.fitIntercept) {
71
- XProcessed = XProcessed.map(row => [1, ...row]);
72
- }
73
- // Optimize weights to maximize CCC
74
- const optimResult = this.optimizer.optimize(XProcessed, y);
75
- // Extract weights and intercept
76
- if (this.config.fitIntercept) {
77
- this.intercept = optimResult.weights[0];
78
- this.weights = optimResult.weights.slice(1);
79
- }
80
- else {
81
- this.intercept = 0;
82
- this.weights = optimResult.weights;
83
- }
84
- this.fitted = true;
85
- // Compute final metrics
86
- const yPred = this.predict(X);
87
- const metrics = this.computeMetrics(y, yPred);
88
- return {
89
- weights: this.weights,
90
- intercept: this.intercept,
91
- ccc: optimResult.finalCCC,
92
- r2: metrics.r2,
93
- rmse: metrics.rmse,
94
- mae: metrics.mae,
95
- iterations: optimResult.iterations,
96
- converged: optimResult.converged
97
- };
98
- }
99
- /**
100
- * Predict target values for new data
101
- * @param X Feature matrix (n_samples × n_features)
102
- */
103
- predict(X) {
104
- if (!this.fitted) {
105
- throw new Error('Model must be fitted before prediction');
106
- }
107
- if (X[0].length !== this.weights.length) {
108
- throw new Error(`Feature dimension mismatch: expected ${this.weights.length}, got ${X[0].length}`);
109
- }
110
- return X.map(row => {
111
- let xProcessed = row;
112
- // Apply normalization if used during training
113
- if (this.config.normalize) {
114
- xProcessed = row.map((val, j) => (val - this.xMean[j]) / this.xStd[j]);
115
- }
116
- // Compute prediction
117
- const prediction = xProcessed.reduce((sum, val, j) => sum + val * this.weights[j], this.intercept);
118
- return prediction;
119
- });
120
- }
121
- /**
122
- * Score the model on test data
123
- * @param X Feature matrix
124
- * @param y True target values
125
- * @returns CCC score
126
- */
127
- score(X, y) {
128
- const yPred = this.predict(X);
129
- const result = calculateCCC(yPred, y);
130
- return result.ccc;
131
- }
132
- /**
133
- * Get model coefficients
134
- */
135
- getCoefficients() {
136
- if (!this.fitted) {
137
- throw new Error('Model not fitted');
138
- }
139
- return {
140
- weights: [...this.weights],
141
- intercept: this.intercept
142
- };
143
- }
144
- /**
145
- * Normalize features (zero mean, unit variance)
146
- */
147
- normalizeFeatures(X) {
148
- const nFeatures = X[0].length;
149
- const mean = Array(nFeatures).fill(0);
150
- const std = Array(nFeatures).fill(0);
151
- // Compute means
152
- for (const row of X) {
153
- for (let j = 0; j < nFeatures; j++) {
154
- mean[j] += row[j];
155
- }
156
- }
157
- for (let j = 0; j < nFeatures; j++) {
158
- mean[j] /= X.length;
159
- }
160
- // Compute standard deviations
161
- for (const row of X) {
162
- for (let j = 0; j < nFeatures; j++) {
163
- std[j] += (row[j] - mean[j]) ** 2;
164
- }
165
- }
166
- for (let j = 0; j < nFeatures; j++) {
167
- std[j] = Math.sqrt(std[j] / X.length);
168
- if (std[j] === 0)
169
- std[j] = 1; // Prevent division by zero
170
- }
171
- // Normalize
172
- const normalized = X.map(row => row.map((val, j) => (val - mean[j]) / std[j]));
173
- return { normalized, mean, std };
174
- }
175
- /**
176
- * Compute evaluation metrics
177
- */
178
- computeMetrics(yTrue, yPred) {
179
- const n = yTrue.length;
180
- const yMean = yTrue.reduce((sum, val) => sum + val, 0) / n;
181
- let ssRes = 0;
182
- let ssTot = 0;
183
- let sumAbsError = 0;
184
- for (let i = 0; i < n; i++) {
185
- const error = yTrue[i] - yPred[i];
186
- ssRes += error * error;
187
- ssTot += (yTrue[i] - yMean) ** 2;
188
- sumAbsError += Math.abs(error);
189
- }
190
- const r2 = 1 - (ssRes / ssTot);
191
- const rmse = Math.sqrt(ssRes / n);
192
- const mae = sumAbsError / n;
193
- return { r2, rmse, mae };
194
- }
195
- }
196
- /**
197
- * Cross-validation for MALP regressor
198
- */
199
- export function crossValidateMALP(X, y, nFolds = 5, config = {}) {
200
- const n = X.length;
201
- const foldSize = Math.floor(n / nFolds);
202
- const scores = [];
203
- for (let fold = 0; fold < nFolds; fold++) {
204
- const testStart = fold * foldSize;
205
- const testEnd = fold === nFolds - 1 ? n : testStart + foldSize;
206
- // Split data
207
- const XTrain = [...X.slice(0, testStart), ...X.slice(testEnd)];
208
- const yTrain = [...y.slice(0, testStart), ...y.slice(testEnd)];
209
- const XTest = X.slice(testStart, testEnd);
210
- const yTest = y.slice(testStart, testEnd);
211
- // Fit and score
212
- const model = new MALPRegressor(config);
213
- model.fit(XTrain, yTrain);
214
- const score = model.score(XTest, yTest);
215
- scores.push(score);
216
- }
217
- const meanCCC = scores.reduce((sum, s) => sum + s, 0) / nFolds;
218
- const variance = scores.reduce((sum, s) => sum + (s - meanCCC) ** 2, 0) / nFolds;
219
- const stdCCC = Math.sqrt(variance);
220
- return { meanCCC, stdCCC, foldScores: scores };
221
- }
222
- /**
223
- * Convenience function to fit a MALP model
224
- */
225
- export function fitMALP(X, y, config = {}) {
226
- const model = new MALPRegressor(config);
227
- return model.fit(X, y);
228
- }
229
- //# sourceMappingURL=regressor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"regressor.js","sourceRoot":"","sources":["../../../src/malp/models/regressor.ts"],"names":[],"mappings":"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"}