agentdb 2.0.0-alpha.2 → 2.0.0-alpha.2.1

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 (314) 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/package.json +3 -3
  7. package/src/cli/agentdb-cli.ts +78 -0
  8. package/dist/agentdb-advanced.js +0 -2110
  9. package/dist/agentdb-advanced.min.js +0 -1
  10. package/dist/backends/GraphBackend.d.ts +0 -196
  11. package/dist/backends/GraphBackend.d.ts.map +0 -1
  12. package/dist/backends/GraphBackend.js +0 -33
  13. package/dist/backends/GraphBackend.js.map +0 -1
  14. package/dist/backends/LearningBackend.d.ts +0 -148
  15. package/dist/backends/LearningBackend.d.ts.map +0 -1
  16. package/dist/backends/LearningBackend.js +0 -27
  17. package/dist/backends/LearningBackend.js.map +0 -1
  18. package/dist/backends/VectorBackend.d.ts +0 -119
  19. package/dist/backends/VectorBackend.d.ts.map +0 -1
  20. package/dist/backends/VectorBackend.js +0 -14
  21. package/dist/backends/VectorBackend.js.map +0 -1
  22. package/dist/backends/detector.d.ts +0 -81
  23. package/dist/backends/detector.d.ts.map +0 -1
  24. package/dist/backends/detector.js +0 -192
  25. package/dist/backends/detector.js.map +0 -1
  26. package/dist/backends/factory.d.ts +0 -50
  27. package/dist/backends/factory.d.ts.map +0 -1
  28. package/dist/backends/factory.js +0 -161
  29. package/dist/backends/factory.js.map +0 -1
  30. package/dist/backends/graph/GraphDatabaseAdapter.d.ts +0 -139
  31. package/dist/backends/graph/GraphDatabaseAdapter.d.ts.map +0 -1
  32. package/dist/backends/graph/GraphDatabaseAdapter.js +0 -194
  33. package/dist/backends/graph/GraphDatabaseAdapter.js.map +0 -1
  34. package/dist/backends/hnswlib/HNSWLibBackend.d.ts +0 -92
  35. package/dist/backends/hnswlib/HNSWLibBackend.d.ts.map +0 -1
  36. package/dist/backends/hnswlib/HNSWLibBackend.js +0 -316
  37. package/dist/backends/hnswlib/HNSWLibBackend.js.map +0 -1
  38. package/dist/backends/hnswlib/index.d.ts +0 -7
  39. package/dist/backends/hnswlib/index.d.ts.map +0 -1
  40. package/dist/backends/hnswlib/index.js +0 -7
  41. package/dist/backends/hnswlib/index.js.map +0 -1
  42. package/dist/backends/index.d.ts +0 -14
  43. package/dist/backends/index.d.ts.map +0 -1
  44. package/dist/backends/index.js +0 -13
  45. package/dist/backends/index.js.map +0 -1
  46. package/dist/backends/ruvector/RuVectorBackend.d.ts +0 -75
  47. package/dist/backends/ruvector/RuVectorBackend.d.ts.map +0 -1
  48. package/dist/backends/ruvector/RuVectorBackend.js +0 -198
  49. package/dist/backends/ruvector/RuVectorBackend.js.map +0 -1
  50. package/dist/backends/ruvector/RuVectorLearning.d.ts +0 -104
  51. package/dist/backends/ruvector/RuVectorLearning.d.ts.map +0 -1
  52. package/dist/backends/ruvector/RuVectorLearning.js +0 -177
  53. package/dist/backends/ruvector/RuVectorLearning.js.map +0 -1
  54. package/dist/backends/ruvector/index.d.ts +0 -9
  55. package/dist/backends/ruvector/index.d.ts.map +0 -1
  56. package/dist/backends/ruvector/index.js +0 -8
  57. package/dist/backends/ruvector/index.js.map +0 -1
  58. package/dist/benchmarks/wasm-vector-benchmark.d.ts +0 -10
  59. package/dist/benchmarks/wasm-vector-benchmark.d.ts.map +0 -1
  60. package/dist/benchmarks/wasm-vector-benchmark.js +0 -196
  61. package/dist/benchmarks/wasm-vector-benchmark.js.map +0 -1
  62. package/dist/browser/AdvancedFeatures.d.ts +0 -144
  63. package/dist/browser/AdvancedFeatures.d.ts.map +0 -1
  64. package/dist/browser/AdvancedFeatures.js +0 -430
  65. package/dist/browser/AdvancedFeatures.js.map +0 -1
  66. package/dist/browser/HNSWIndex.d.ts +0 -117
  67. package/dist/browser/HNSWIndex.d.ts.map +0 -1
  68. package/dist/browser/HNSWIndex.js +0 -402
  69. package/dist/browser/HNSWIndex.js.map +0 -1
  70. package/dist/browser/ProductQuantization.d.ts +0 -107
  71. package/dist/browser/ProductQuantization.d.ts.map +0 -1
  72. package/dist/browser/ProductQuantization.js +0 -337
  73. package/dist/browser/ProductQuantization.js.map +0 -1
  74. package/dist/browser/browser/AdvancedFeatures.d.ts +0 -144
  75. package/dist/browser/browser/AdvancedFeatures.d.ts.map +0 -1
  76. package/dist/browser/browser/AdvancedFeatures.js +0 -427
  77. package/dist/browser/browser/HNSWIndex.d.ts +0 -117
  78. package/dist/browser/browser/HNSWIndex.d.ts.map +0 -1
  79. package/dist/browser/browser/HNSWIndex.js +0 -402
  80. package/dist/browser/browser/ProductQuantization.d.ts +0 -107
  81. package/dist/browser/browser/ProductQuantization.d.ts.map +0 -1
  82. package/dist/browser/browser/ProductQuantization.js +0 -348
  83. package/dist/browser/browser/index.d.ts +0 -223
  84. package/dist/browser/browser/index.d.ts.map +0 -1
  85. package/dist/browser/browser/index.js +0 -233
  86. package/dist/browser/index.d.ts +0 -223
  87. package/dist/browser/index.d.ts.map +0 -1
  88. package/dist/browser/index.js +0 -225
  89. package/dist/browser/index.js.map +0 -1
  90. package/dist/cli/agentdb-cli.d.ts +0 -154
  91. package/dist/cli/agentdb-cli.d.ts.map +0 -1
  92. package/dist/cli/agentdb-cli.js +0 -2273
  93. package/dist/cli/agentdb-cli.js.map +0 -1
  94. package/dist/cli/agentdb.db +0 -0
  95. package/dist/cli/commands/init.d.ts +0 -12
  96. package/dist/cli/commands/init.d.ts.map +0 -1
  97. package/dist/cli/commands/init.js +0 -115
  98. package/dist/cli/commands/init.js.map +0 -1
  99. package/dist/cli/commands/install-embeddings.d.ts +0 -10
  100. package/dist/cli/commands/install-embeddings.d.ts.map +0 -1
  101. package/dist/cli/commands/install-embeddings.js +0 -68
  102. package/dist/cli/commands/install-embeddings.js.map +0 -1
  103. package/dist/cli/commands/migrate.d.ts +0 -15
  104. package/dist/cli/commands/migrate.d.ts.map +0 -1
  105. package/dist/cli/commands/migrate.js +0 -425
  106. package/dist/cli/commands/migrate.js.map +0 -1
  107. package/dist/cli/commands/status.d.ts +0 -10
  108. package/dist/cli/commands/status.d.ts.map +0 -1
  109. package/dist/cli/commands/status.js +0 -129
  110. package/dist/cli/commands/status.js.map +0 -1
  111. package/dist/controllers/CausalMemoryGraph.d.ts +0 -126
  112. package/dist/controllers/CausalMemoryGraph.d.ts.map +0 -1
  113. package/dist/controllers/CausalMemoryGraph.js +0 -323
  114. package/dist/controllers/CausalMemoryGraph.js.map +0 -1
  115. package/dist/controllers/CausalRecall.d.ts +0 -139
  116. package/dist/controllers/CausalRecall.d.ts.map +0 -1
  117. package/dist/controllers/CausalRecall.js +0 -356
  118. package/dist/controllers/CausalRecall.js.map +0 -1
  119. package/dist/controllers/ContextSynthesizer.d.ts +0 -65
  120. package/dist/controllers/ContextSynthesizer.d.ts.map +0 -1
  121. package/dist/controllers/ContextSynthesizer.js +0 -208
  122. package/dist/controllers/ContextSynthesizer.js.map +0 -1
  123. package/dist/controllers/EmbeddingService.d.ts +0 -37
  124. package/dist/controllers/EmbeddingService.d.ts.map +0 -1
  125. package/dist/controllers/EmbeddingService.js +0 -136
  126. package/dist/controllers/EmbeddingService.js.map +0 -1
  127. package/dist/controllers/EnhancedEmbeddingService.d.ts +0 -50
  128. package/dist/controllers/EnhancedEmbeddingService.d.ts.map +0 -1
  129. package/dist/controllers/EnhancedEmbeddingService.js +0 -119
  130. package/dist/controllers/EnhancedEmbeddingService.js.map +0 -1
  131. package/dist/controllers/ExplainableRecall.d.ts +0 -163
  132. package/dist/controllers/ExplainableRecall.d.ts.map +0 -1
  133. package/dist/controllers/ExplainableRecall.js +0 -485
  134. package/dist/controllers/ExplainableRecall.js.map +0 -1
  135. package/dist/controllers/HNSWIndex.d.ts +0 -128
  136. package/dist/controllers/HNSWIndex.d.ts.map +0 -1
  137. package/dist/controllers/HNSWIndex.js +0 -361
  138. package/dist/controllers/HNSWIndex.js.map +0 -1
  139. package/dist/controllers/LearningSystem.d.ts +0 -195
  140. package/dist/controllers/LearningSystem.d.ts.map +0 -1
  141. package/dist/controllers/LearningSystem.js +0 -929
  142. package/dist/controllers/LearningSystem.js.map +0 -1
  143. package/dist/controllers/MMRDiversityRanker.d.ts +0 -50
  144. package/dist/controllers/MMRDiversityRanker.d.ts.map +0 -1
  145. package/dist/controllers/MMRDiversityRanker.js +0 -130
  146. package/dist/controllers/MMRDiversityRanker.js.map +0 -1
  147. package/dist/controllers/MetadataFilter.d.ts +0 -70
  148. package/dist/controllers/MetadataFilter.d.ts.map +0 -1
  149. package/dist/controllers/MetadataFilter.js +0 -243
  150. package/dist/controllers/MetadataFilter.js.map +0 -1
  151. package/dist/controllers/NightlyLearner.d.ts +0 -114
  152. package/dist/controllers/NightlyLearner.d.ts.map +0 -1
  153. package/dist/controllers/NightlyLearner.js +0 -394
  154. package/dist/controllers/NightlyLearner.js.map +0 -1
  155. package/dist/controllers/QUICClient.d.ts +0 -109
  156. package/dist/controllers/QUICClient.d.ts.map +0 -1
  157. package/dist/controllers/QUICClient.js +0 -299
  158. package/dist/controllers/QUICClient.js.map +0 -1
  159. package/dist/controllers/QUICServer.d.ts +0 -121
  160. package/dist/controllers/QUICServer.d.ts.map +0 -1
  161. package/dist/controllers/QUICServer.js +0 -383
  162. package/dist/controllers/QUICServer.js.map +0 -1
  163. package/dist/controllers/ReasoningBank.d.ts +0 -196
  164. package/dist/controllers/ReasoningBank.d.ts.map +0 -1
  165. package/dist/controllers/ReasoningBank.js +0 -494
  166. package/dist/controllers/ReasoningBank.js.map +0 -1
  167. package/dist/controllers/ReflexionMemory.d.ts +0 -125
  168. package/dist/controllers/ReflexionMemory.d.ts.map +0 -1
  169. package/dist/controllers/ReflexionMemory.js +0 -521
  170. package/dist/controllers/ReflexionMemory.js.map +0 -1
  171. package/dist/controllers/SkillLibrary.d.ts +0 -149
  172. package/dist/controllers/SkillLibrary.d.ts.map +0 -1
  173. package/dist/controllers/SkillLibrary.js +0 -547
  174. package/dist/controllers/SkillLibrary.js.map +0 -1
  175. package/dist/controllers/SyncCoordinator.d.ts +0 -120
  176. package/dist/controllers/SyncCoordinator.d.ts.map +0 -1
  177. package/dist/controllers/SyncCoordinator.js +0 -441
  178. package/dist/controllers/SyncCoordinator.js.map +0 -1
  179. package/dist/controllers/WASMVectorSearch.d.ts +0 -89
  180. package/dist/controllers/WASMVectorSearch.d.ts.map +0 -1
  181. package/dist/controllers/WASMVectorSearch.js +0 -234
  182. package/dist/controllers/WASMVectorSearch.js.map +0 -1
  183. package/dist/controllers/frontier-index.d.ts +0 -14
  184. package/dist/controllers/frontier-index.d.ts.map +0 -1
  185. package/dist/controllers/frontier-index.js +0 -10
  186. package/dist/controllers/frontier-index.js.map +0 -1
  187. package/dist/controllers/index.d.ts +0 -30
  188. package/dist/controllers/index.d.ts.map +0 -1
  189. package/dist/controllers/index.js +0 -18
  190. package/dist/controllers/index.js.map +0 -1
  191. package/dist/db-fallback.d.ts +0 -26
  192. package/dist/db-fallback.d.ts.map +0 -1
  193. package/dist/db-fallback.js +0 -264
  194. package/dist/db-fallback.js.map +0 -1
  195. package/dist/db-test.d.ts +0 -13
  196. package/dist/db-test.d.ts.map +0 -1
  197. package/dist/db-test.js +0 -55
  198. package/dist/db-test.js.map +0 -1
  199. package/dist/db-unified.d.ts +0 -76
  200. package/dist/db-unified.d.ts.map +0 -1
  201. package/dist/db-unified.js +0 -278
  202. package/dist/db-unified.js.map +0 -1
  203. package/dist/examples/quic-sync-example.d.ts +0 -9
  204. package/dist/examples/quic-sync-example.d.ts.map +0 -1
  205. package/dist/examples/quic-sync-example.js +0 -169
  206. package/dist/examples/quic-sync-example.js.map +0 -1
  207. package/dist/examples/wasm-vector-usage.d.ts +0 -12
  208. package/dist/examples/wasm-vector-usage.d.ts.map +0 -1
  209. package/dist/examples/wasm-vector-usage.js +0 -190
  210. package/dist/examples/wasm-vector-usage.js.map +0 -1
  211. package/dist/index.d.ts +0 -28
  212. package/dist/index.d.ts.map +0 -1
  213. package/dist/index.js +0 -35
  214. package/dist/index.js.map +0 -1
  215. package/dist/malp/core/ccc.d.ts +0 -99
  216. package/dist/malp/core/ccc.d.ts.map +0 -1
  217. package/dist/malp/core/ccc.js +0 -181
  218. package/dist/malp/core/ccc.js.map +0 -1
  219. package/dist/malp/core/index.d.ts +0 -9
  220. package/dist/malp/core/index.d.ts.map +0 -1
  221. package/dist/malp/core/index.js +0 -9
  222. package/dist/malp/core/index.js.map +0 -1
  223. package/dist/malp/core/linalg.d.ts +0 -101
  224. package/dist/malp/core/linalg.d.ts.map +0 -1
  225. package/dist/malp/core/linalg.js +0 -278
  226. package/dist/malp/core/linalg.js.map +0 -1
  227. package/dist/malp/core/optimizer.d.ts +0 -68
  228. package/dist/malp/core/optimizer.d.ts.map +0 -1
  229. package/dist/malp/core/optimizer.js +0 -160
  230. package/dist/malp/core/optimizer.js.map +0 -1
  231. package/dist/malp/index.d.ts +0 -33
  232. package/dist/malp/index.d.ts.map +0 -1
  233. package/dist/malp/index.js +0 -37
  234. package/dist/malp/index.js.map +0 -1
  235. package/dist/malp/metrics/agreement.d.ts +0 -106
  236. package/dist/malp/metrics/agreement.d.ts.map +0 -1
  237. package/dist/malp/metrics/agreement.js +0 -199
  238. package/dist/malp/metrics/agreement.js.map +0 -1
  239. package/dist/malp/metrics/comparison.d.ts +0 -93
  240. package/dist/malp/metrics/comparison.d.ts.map +0 -1
  241. package/dist/malp/metrics/comparison.js +0 -256
  242. package/dist/malp/metrics/comparison.js.map +0 -1
  243. package/dist/malp/metrics/index.d.ts +0 -8
  244. package/dist/malp/metrics/index.d.ts.map +0 -1
  245. package/dist/malp/metrics/index.js +0 -8
  246. package/dist/malp/metrics/index.js.map +0 -1
  247. package/dist/malp/metrics/performance.d.ts +0 -61
  248. package/dist/malp/metrics/performance.d.ts.map +0 -1
  249. package/dist/malp/metrics/performance.js +0 -190
  250. package/dist/malp/metrics/performance.js.map +0 -1
  251. package/dist/malp/models/index.d.ts +0 -7
  252. package/dist/malp/models/index.d.ts.map +0 -1
  253. package/dist/malp/models/index.js +0 -7
  254. package/dist/malp/models/index.js.map +0 -1
  255. package/dist/malp/models/malp.d.ts +0 -116
  256. package/dist/malp/models/malp.d.ts.map +0 -1
  257. package/dist/malp/models/malp.js +0 -206
  258. package/dist/malp/models/malp.js.map +0 -1
  259. package/dist/malp/models/regressor.d.ts +0 -80
  260. package/dist/malp/models/regressor.d.ts.map +0 -1
  261. package/dist/malp/models/regressor.js +0 -229
  262. package/dist/malp/models/regressor.js.map +0 -1
  263. package/dist/malp/reasoningbank_validator.d.ts +0 -187
  264. package/dist/malp/reasoningbank_validator.d.ts.map +0 -1
  265. package/dist/malp/reasoningbank_validator.js +0 -246
  266. package/dist/malp/reasoningbank_validator.js.map +0 -1
  267. package/dist/malp/wasm_bindings.d.ts +0 -344
  268. package/dist/malp/wasm_bindings.d.ts.map +0 -1
  269. package/dist/malp/wasm_bindings.js +0 -9
  270. package/dist/malp/wasm_bindings.js.map +0 -1
  271. package/dist/mcp/agentdb-mcp-server.d.ts +0 -8
  272. package/dist/mcp/agentdb-mcp-server.d.ts.map +0 -1
  273. package/dist/mcp/agentdb-mcp-server.js +0 -2116
  274. package/dist/mcp/agentdb-mcp-server.js.map +0 -1
  275. package/dist/mcp/learning-tools-handlers.d.ts +0 -16
  276. package/dist/mcp/learning-tools-handlers.d.ts.map +0 -1
  277. package/dist/mcp/learning-tools-handlers.js +0 -105
  278. package/dist/mcp/learning-tools-handlers.js.map +0 -1
  279. package/dist/optimizations/BatchOperations.d.ts +0 -109
  280. package/dist/optimizations/BatchOperations.d.ts.map +0 -1
  281. package/dist/optimizations/BatchOperations.js +0 -407
  282. package/dist/optimizations/BatchOperations.js.map +0 -1
  283. package/dist/optimizations/QueryOptimizer.d.ts +0 -83
  284. package/dist/optimizations/QueryOptimizer.d.ts.map +0 -1
  285. package/dist/optimizations/QueryOptimizer.js +0 -228
  286. package/dist/optimizations/QueryOptimizer.js.map +0 -1
  287. package/dist/optimizations/ToolCache.d.ts +0 -137
  288. package/dist/optimizations/ToolCache.d.ts.map +0 -1
  289. package/dist/optimizations/ToolCache.js +0 -281
  290. package/dist/optimizations/ToolCache.js.map +0 -1
  291. package/dist/optimizations/index.d.ts +0 -10
  292. package/dist/optimizations/index.d.ts.map +0 -1
  293. package/dist/optimizations/index.js +0 -8
  294. package/dist/optimizations/index.js.map +0 -1
  295. package/dist/security/input-validation.d.ts +0 -109
  296. package/dist/security/input-validation.d.ts.map +0 -1
  297. package/dist/security/input-validation.js +0 -398
  298. package/dist/security/input-validation.js.map +0 -1
  299. package/dist/security/limits.d.ts +0 -150
  300. package/dist/security/limits.d.ts.map +0 -1
  301. package/dist/security/limits.js +0 -288
  302. package/dist/security/limits.js.map +0 -1
  303. package/dist/security/path-security.d.ts +0 -100
  304. package/dist/security/path-security.d.ts.map +0 -1
  305. package/dist/security/path-security.js +0 -337
  306. package/dist/security/path-security.js.map +0 -1
  307. package/dist/security/validation.d.ts +0 -95
  308. package/dist/security/validation.d.ts.map +0 -1
  309. package/dist/security/validation.js +0 -315
  310. package/dist/security/validation.js.map +0 -1
  311. package/dist/types/quic.d.ts +0 -518
  312. package/dist/types/quic.d.ts.map +0 -1
  313. package/dist/types/quic.js +0 -272
  314. 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":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAkB,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC3H,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAuC,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAc9H;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAe;IAC7C,YAAY,EAAE,IAAI;IAClB,SAAS,EAAE,wBAAwB;IACnC,mBAAmB,EAAE,IAAI;CAC1B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,aAAa;IAChB,MAAM,CAAa;IACnB,YAAY,GAAkB,IAAI,CAAC;IACnC,SAAS,GAAW,CAAC,CAAC;IACtB,QAAQ,GAAY,KAAK,CAAC;IAC1B,kBAAkB,GAA8B,IAAI,CAAC;IAE7D,YAAY,SAA8B,EAAE;QAC1C,IAAI,CAAC,MAAM,GAAG;YACZ,GAAG,mBAAmB;YACtB,GAAG,MAAM;YACT,SAAS,EAAE,EAAE,GAAG,wBAAwB,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE;SACxE,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,GAAG,CAAC,CAAsB,EAAE,CAAoB;QAC9C,oCAAoC;QACpC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvD,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,CAAC,IAAI,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACjF,CAAC;QAED,iCAAiC;QACjC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAElF,wBAAwB;QACxB,IAAI,aAAqB,CAAC;QAE1B,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;YACpC,yCAAyC;YACzC,aAAa,GAAG,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,wBAAwB;YACxB,aAAa,GAAG,YAAY,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,CAAC;QAED,sCAAsC;QACtC,MAAM,SAAS,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACrE,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QAErF,qCAAqC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC;QAElD,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC7B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,CAAsB;QAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvD,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,+BAA+B,OAAO,CAAC,IAAI,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;QACjG,CAAC;QAED,kDAAkD;QAClD,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAE/D,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC;YACxC,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,CAAsB,EAAE,CAAoB;QAChD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;QAE7C,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAChD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,OAAO;QAQL,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE;YACpC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,IAAI,IAAI;YACnD,UAAU,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,IAAI,IAAI;YACvD,SAAS,EAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,IAAI,IAAI;SACtD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,YAAsB,EAAE,YAAoB,CAAC;QACrD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,yCAAyC;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAExD,wBAAwB;QACxB,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QAE5D,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IACrE,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CACrB,CAAsB,EACtB,CAAoB,EACpB,MAA4B;IAE5B,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChB,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -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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"}