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.
- package/dist/agentdb.min.js +4 -4
- package/dist/simulation/cli.js +0 -0
- package/dist/src/cli/agentdb-cli.d.ts.map +1 -1
- package/dist/src/cli/agentdb-cli.js +78 -0
- package/dist/src/cli/agentdb-cli.js.map +1 -1
- package/package.json +3 -3
- package/src/cli/agentdb-cli.ts +78 -0
- package/dist/agentdb-advanced.js +0 -2110
- package/dist/agentdb-advanced.min.js +0 -1
- package/dist/backends/GraphBackend.d.ts +0 -196
- package/dist/backends/GraphBackend.d.ts.map +0 -1
- package/dist/backends/GraphBackend.js +0 -33
- package/dist/backends/GraphBackend.js.map +0 -1
- package/dist/backends/LearningBackend.d.ts +0 -148
- package/dist/backends/LearningBackend.d.ts.map +0 -1
- package/dist/backends/LearningBackend.js +0 -27
- package/dist/backends/LearningBackend.js.map +0 -1
- package/dist/backends/VectorBackend.d.ts +0 -119
- package/dist/backends/VectorBackend.d.ts.map +0 -1
- package/dist/backends/VectorBackend.js +0 -14
- package/dist/backends/VectorBackend.js.map +0 -1
- package/dist/backends/detector.d.ts +0 -81
- package/dist/backends/detector.d.ts.map +0 -1
- package/dist/backends/detector.js +0 -192
- package/dist/backends/detector.js.map +0 -1
- package/dist/backends/factory.d.ts +0 -50
- package/dist/backends/factory.d.ts.map +0 -1
- package/dist/backends/factory.js +0 -161
- package/dist/backends/factory.js.map +0 -1
- package/dist/backends/graph/GraphDatabaseAdapter.d.ts +0 -139
- package/dist/backends/graph/GraphDatabaseAdapter.d.ts.map +0 -1
- package/dist/backends/graph/GraphDatabaseAdapter.js +0 -194
- package/dist/backends/graph/GraphDatabaseAdapter.js.map +0 -1
- package/dist/backends/hnswlib/HNSWLibBackend.d.ts +0 -92
- package/dist/backends/hnswlib/HNSWLibBackend.d.ts.map +0 -1
- package/dist/backends/hnswlib/HNSWLibBackend.js +0 -316
- package/dist/backends/hnswlib/HNSWLibBackend.js.map +0 -1
- package/dist/backends/hnswlib/index.d.ts +0 -7
- package/dist/backends/hnswlib/index.d.ts.map +0 -1
- package/dist/backends/hnswlib/index.js +0 -7
- package/dist/backends/hnswlib/index.js.map +0 -1
- package/dist/backends/index.d.ts +0 -14
- package/dist/backends/index.d.ts.map +0 -1
- package/dist/backends/index.js +0 -13
- package/dist/backends/index.js.map +0 -1
- package/dist/backends/ruvector/RuVectorBackend.d.ts +0 -75
- package/dist/backends/ruvector/RuVectorBackend.d.ts.map +0 -1
- package/dist/backends/ruvector/RuVectorBackend.js +0 -198
- package/dist/backends/ruvector/RuVectorBackend.js.map +0 -1
- package/dist/backends/ruvector/RuVectorLearning.d.ts +0 -104
- package/dist/backends/ruvector/RuVectorLearning.d.ts.map +0 -1
- package/dist/backends/ruvector/RuVectorLearning.js +0 -177
- package/dist/backends/ruvector/RuVectorLearning.js.map +0 -1
- package/dist/backends/ruvector/index.d.ts +0 -9
- package/dist/backends/ruvector/index.d.ts.map +0 -1
- package/dist/backends/ruvector/index.js +0 -8
- package/dist/backends/ruvector/index.js.map +0 -1
- package/dist/benchmarks/wasm-vector-benchmark.d.ts +0 -10
- package/dist/benchmarks/wasm-vector-benchmark.d.ts.map +0 -1
- package/dist/benchmarks/wasm-vector-benchmark.js +0 -196
- package/dist/benchmarks/wasm-vector-benchmark.js.map +0 -1
- package/dist/browser/AdvancedFeatures.d.ts +0 -144
- package/dist/browser/AdvancedFeatures.d.ts.map +0 -1
- package/dist/browser/AdvancedFeatures.js +0 -430
- package/dist/browser/AdvancedFeatures.js.map +0 -1
- package/dist/browser/HNSWIndex.d.ts +0 -117
- package/dist/browser/HNSWIndex.d.ts.map +0 -1
- package/dist/browser/HNSWIndex.js +0 -402
- package/dist/browser/HNSWIndex.js.map +0 -1
- package/dist/browser/ProductQuantization.d.ts +0 -107
- package/dist/browser/ProductQuantization.d.ts.map +0 -1
- package/dist/browser/ProductQuantization.js +0 -337
- package/dist/browser/ProductQuantization.js.map +0 -1
- package/dist/browser/browser/AdvancedFeatures.d.ts +0 -144
- package/dist/browser/browser/AdvancedFeatures.d.ts.map +0 -1
- package/dist/browser/browser/AdvancedFeatures.js +0 -427
- package/dist/browser/browser/HNSWIndex.d.ts +0 -117
- package/dist/browser/browser/HNSWIndex.d.ts.map +0 -1
- package/dist/browser/browser/HNSWIndex.js +0 -402
- package/dist/browser/browser/ProductQuantization.d.ts +0 -107
- package/dist/browser/browser/ProductQuantization.d.ts.map +0 -1
- package/dist/browser/browser/ProductQuantization.js +0 -348
- package/dist/browser/browser/index.d.ts +0 -223
- package/dist/browser/browser/index.d.ts.map +0 -1
- package/dist/browser/browser/index.js +0 -233
- package/dist/browser/index.d.ts +0 -223
- package/dist/browser/index.d.ts.map +0 -1
- package/dist/browser/index.js +0 -225
- package/dist/browser/index.js.map +0 -1
- package/dist/cli/agentdb-cli.d.ts +0 -154
- package/dist/cli/agentdb-cli.d.ts.map +0 -1
- package/dist/cli/agentdb-cli.js +0 -2273
- package/dist/cli/agentdb-cli.js.map +0 -1
- package/dist/cli/agentdb.db +0 -0
- package/dist/cli/commands/init.d.ts +0 -12
- package/dist/cli/commands/init.d.ts.map +0 -1
- package/dist/cli/commands/init.js +0 -115
- package/dist/cli/commands/init.js.map +0 -1
- package/dist/cli/commands/install-embeddings.d.ts +0 -10
- package/dist/cli/commands/install-embeddings.d.ts.map +0 -1
- package/dist/cli/commands/install-embeddings.js +0 -68
- package/dist/cli/commands/install-embeddings.js.map +0 -1
- package/dist/cli/commands/migrate.d.ts +0 -15
- package/dist/cli/commands/migrate.d.ts.map +0 -1
- package/dist/cli/commands/migrate.js +0 -425
- package/dist/cli/commands/migrate.js.map +0 -1
- package/dist/cli/commands/status.d.ts +0 -10
- package/dist/cli/commands/status.d.ts.map +0 -1
- package/dist/cli/commands/status.js +0 -129
- package/dist/cli/commands/status.js.map +0 -1
- package/dist/controllers/CausalMemoryGraph.d.ts +0 -126
- package/dist/controllers/CausalMemoryGraph.d.ts.map +0 -1
- package/dist/controllers/CausalMemoryGraph.js +0 -323
- package/dist/controllers/CausalMemoryGraph.js.map +0 -1
- package/dist/controllers/CausalRecall.d.ts +0 -139
- package/dist/controllers/CausalRecall.d.ts.map +0 -1
- package/dist/controllers/CausalRecall.js +0 -356
- package/dist/controllers/CausalRecall.js.map +0 -1
- package/dist/controllers/ContextSynthesizer.d.ts +0 -65
- package/dist/controllers/ContextSynthesizer.d.ts.map +0 -1
- package/dist/controllers/ContextSynthesizer.js +0 -208
- package/dist/controllers/ContextSynthesizer.js.map +0 -1
- package/dist/controllers/EmbeddingService.d.ts +0 -37
- package/dist/controllers/EmbeddingService.d.ts.map +0 -1
- package/dist/controllers/EmbeddingService.js +0 -136
- package/dist/controllers/EmbeddingService.js.map +0 -1
- package/dist/controllers/EnhancedEmbeddingService.d.ts +0 -50
- package/dist/controllers/EnhancedEmbeddingService.d.ts.map +0 -1
- package/dist/controllers/EnhancedEmbeddingService.js +0 -119
- package/dist/controllers/EnhancedEmbeddingService.js.map +0 -1
- package/dist/controllers/ExplainableRecall.d.ts +0 -163
- package/dist/controllers/ExplainableRecall.d.ts.map +0 -1
- package/dist/controllers/ExplainableRecall.js +0 -485
- package/dist/controllers/ExplainableRecall.js.map +0 -1
- package/dist/controllers/HNSWIndex.d.ts +0 -128
- package/dist/controllers/HNSWIndex.d.ts.map +0 -1
- package/dist/controllers/HNSWIndex.js +0 -361
- package/dist/controllers/HNSWIndex.js.map +0 -1
- package/dist/controllers/LearningSystem.d.ts +0 -195
- package/dist/controllers/LearningSystem.d.ts.map +0 -1
- package/dist/controllers/LearningSystem.js +0 -929
- package/dist/controllers/LearningSystem.js.map +0 -1
- package/dist/controllers/MMRDiversityRanker.d.ts +0 -50
- package/dist/controllers/MMRDiversityRanker.d.ts.map +0 -1
- package/dist/controllers/MMRDiversityRanker.js +0 -130
- package/dist/controllers/MMRDiversityRanker.js.map +0 -1
- package/dist/controllers/MetadataFilter.d.ts +0 -70
- package/dist/controllers/MetadataFilter.d.ts.map +0 -1
- package/dist/controllers/MetadataFilter.js +0 -243
- package/dist/controllers/MetadataFilter.js.map +0 -1
- package/dist/controllers/NightlyLearner.d.ts +0 -114
- package/dist/controllers/NightlyLearner.d.ts.map +0 -1
- package/dist/controllers/NightlyLearner.js +0 -394
- package/dist/controllers/NightlyLearner.js.map +0 -1
- package/dist/controllers/QUICClient.d.ts +0 -109
- package/dist/controllers/QUICClient.d.ts.map +0 -1
- package/dist/controllers/QUICClient.js +0 -299
- package/dist/controllers/QUICClient.js.map +0 -1
- package/dist/controllers/QUICServer.d.ts +0 -121
- package/dist/controllers/QUICServer.d.ts.map +0 -1
- package/dist/controllers/QUICServer.js +0 -383
- package/dist/controllers/QUICServer.js.map +0 -1
- package/dist/controllers/ReasoningBank.d.ts +0 -196
- package/dist/controllers/ReasoningBank.d.ts.map +0 -1
- package/dist/controllers/ReasoningBank.js +0 -494
- package/dist/controllers/ReasoningBank.js.map +0 -1
- package/dist/controllers/ReflexionMemory.d.ts +0 -125
- package/dist/controllers/ReflexionMemory.d.ts.map +0 -1
- package/dist/controllers/ReflexionMemory.js +0 -521
- package/dist/controllers/ReflexionMemory.js.map +0 -1
- package/dist/controllers/SkillLibrary.d.ts +0 -149
- package/dist/controllers/SkillLibrary.d.ts.map +0 -1
- package/dist/controllers/SkillLibrary.js +0 -547
- package/dist/controllers/SkillLibrary.js.map +0 -1
- package/dist/controllers/SyncCoordinator.d.ts +0 -120
- package/dist/controllers/SyncCoordinator.d.ts.map +0 -1
- package/dist/controllers/SyncCoordinator.js +0 -441
- package/dist/controllers/SyncCoordinator.js.map +0 -1
- package/dist/controllers/WASMVectorSearch.d.ts +0 -89
- package/dist/controllers/WASMVectorSearch.d.ts.map +0 -1
- package/dist/controllers/WASMVectorSearch.js +0 -234
- package/dist/controllers/WASMVectorSearch.js.map +0 -1
- package/dist/controllers/frontier-index.d.ts +0 -14
- package/dist/controllers/frontier-index.d.ts.map +0 -1
- package/dist/controllers/frontier-index.js +0 -10
- package/dist/controllers/frontier-index.js.map +0 -1
- package/dist/controllers/index.d.ts +0 -30
- package/dist/controllers/index.d.ts.map +0 -1
- package/dist/controllers/index.js +0 -18
- package/dist/controllers/index.js.map +0 -1
- package/dist/db-fallback.d.ts +0 -26
- package/dist/db-fallback.d.ts.map +0 -1
- package/dist/db-fallback.js +0 -264
- package/dist/db-fallback.js.map +0 -1
- package/dist/db-test.d.ts +0 -13
- package/dist/db-test.d.ts.map +0 -1
- package/dist/db-test.js +0 -55
- package/dist/db-test.js.map +0 -1
- package/dist/db-unified.d.ts +0 -76
- package/dist/db-unified.d.ts.map +0 -1
- package/dist/db-unified.js +0 -278
- package/dist/db-unified.js.map +0 -1
- package/dist/examples/quic-sync-example.d.ts +0 -9
- package/dist/examples/quic-sync-example.d.ts.map +0 -1
- package/dist/examples/quic-sync-example.js +0 -169
- package/dist/examples/quic-sync-example.js.map +0 -1
- package/dist/examples/wasm-vector-usage.d.ts +0 -12
- package/dist/examples/wasm-vector-usage.d.ts.map +0 -1
- package/dist/examples/wasm-vector-usage.js +0 -190
- package/dist/examples/wasm-vector-usage.js.map +0 -1
- package/dist/index.d.ts +0 -28
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -35
- package/dist/index.js.map +0 -1
- package/dist/malp/core/ccc.d.ts +0 -99
- package/dist/malp/core/ccc.d.ts.map +0 -1
- package/dist/malp/core/ccc.js +0 -181
- package/dist/malp/core/ccc.js.map +0 -1
- package/dist/malp/core/index.d.ts +0 -9
- package/dist/malp/core/index.d.ts.map +0 -1
- package/dist/malp/core/index.js +0 -9
- package/dist/malp/core/index.js.map +0 -1
- package/dist/malp/core/linalg.d.ts +0 -101
- package/dist/malp/core/linalg.d.ts.map +0 -1
- package/dist/malp/core/linalg.js +0 -278
- package/dist/malp/core/linalg.js.map +0 -1
- package/dist/malp/core/optimizer.d.ts +0 -68
- package/dist/malp/core/optimizer.d.ts.map +0 -1
- package/dist/malp/core/optimizer.js +0 -160
- package/dist/malp/core/optimizer.js.map +0 -1
- package/dist/malp/index.d.ts +0 -33
- package/dist/malp/index.d.ts.map +0 -1
- package/dist/malp/index.js +0 -37
- package/dist/malp/index.js.map +0 -1
- package/dist/malp/metrics/agreement.d.ts +0 -106
- package/dist/malp/metrics/agreement.d.ts.map +0 -1
- package/dist/malp/metrics/agreement.js +0 -199
- package/dist/malp/metrics/agreement.js.map +0 -1
- package/dist/malp/metrics/comparison.d.ts +0 -93
- package/dist/malp/metrics/comparison.d.ts.map +0 -1
- package/dist/malp/metrics/comparison.js +0 -256
- package/dist/malp/metrics/comparison.js.map +0 -1
- package/dist/malp/metrics/index.d.ts +0 -8
- package/dist/malp/metrics/index.d.ts.map +0 -1
- package/dist/malp/metrics/index.js +0 -8
- package/dist/malp/metrics/index.js.map +0 -1
- package/dist/malp/metrics/performance.d.ts +0 -61
- package/dist/malp/metrics/performance.d.ts.map +0 -1
- package/dist/malp/metrics/performance.js +0 -190
- package/dist/malp/metrics/performance.js.map +0 -1
- package/dist/malp/models/index.d.ts +0 -7
- package/dist/malp/models/index.d.ts.map +0 -1
- package/dist/malp/models/index.js +0 -7
- package/dist/malp/models/index.js.map +0 -1
- package/dist/malp/models/malp.d.ts +0 -116
- package/dist/malp/models/malp.d.ts.map +0 -1
- package/dist/malp/models/malp.js +0 -206
- package/dist/malp/models/malp.js.map +0 -1
- package/dist/malp/models/regressor.d.ts +0 -80
- package/dist/malp/models/regressor.d.ts.map +0 -1
- package/dist/malp/models/regressor.js +0 -229
- package/dist/malp/models/regressor.js.map +0 -1
- package/dist/malp/reasoningbank_validator.d.ts +0 -187
- package/dist/malp/reasoningbank_validator.d.ts.map +0 -1
- package/dist/malp/reasoningbank_validator.js +0 -246
- package/dist/malp/reasoningbank_validator.js.map +0 -1
- package/dist/malp/wasm_bindings.d.ts +0 -344
- package/dist/malp/wasm_bindings.d.ts.map +0 -1
- package/dist/malp/wasm_bindings.js +0 -9
- package/dist/malp/wasm_bindings.js.map +0 -1
- package/dist/mcp/agentdb-mcp-server.d.ts +0 -8
- package/dist/mcp/agentdb-mcp-server.d.ts.map +0 -1
- package/dist/mcp/agentdb-mcp-server.js +0 -2116
- package/dist/mcp/agentdb-mcp-server.js.map +0 -1
- package/dist/mcp/learning-tools-handlers.d.ts +0 -16
- package/dist/mcp/learning-tools-handlers.d.ts.map +0 -1
- package/dist/mcp/learning-tools-handlers.js +0 -105
- package/dist/mcp/learning-tools-handlers.js.map +0 -1
- package/dist/optimizations/BatchOperations.d.ts +0 -109
- package/dist/optimizations/BatchOperations.d.ts.map +0 -1
- package/dist/optimizations/BatchOperations.js +0 -407
- package/dist/optimizations/BatchOperations.js.map +0 -1
- package/dist/optimizations/QueryOptimizer.d.ts +0 -83
- package/dist/optimizations/QueryOptimizer.d.ts.map +0 -1
- package/dist/optimizations/QueryOptimizer.js +0 -228
- package/dist/optimizations/QueryOptimizer.js.map +0 -1
- package/dist/optimizations/ToolCache.d.ts +0 -137
- package/dist/optimizations/ToolCache.d.ts.map +0 -1
- package/dist/optimizations/ToolCache.js +0 -281
- package/dist/optimizations/ToolCache.js.map +0 -1
- package/dist/optimizations/index.d.ts +0 -10
- package/dist/optimizations/index.d.ts.map +0 -1
- package/dist/optimizations/index.js +0 -8
- package/dist/optimizations/index.js.map +0 -1
- package/dist/security/input-validation.d.ts +0 -109
- package/dist/security/input-validation.d.ts.map +0 -1
- package/dist/security/input-validation.js +0 -398
- package/dist/security/input-validation.js.map +0 -1
- package/dist/security/limits.d.ts +0 -150
- package/dist/security/limits.d.ts.map +0 -1
- package/dist/security/limits.js +0 -288
- package/dist/security/limits.js.map +0 -1
- package/dist/security/path-security.d.ts +0 -100
- package/dist/security/path-security.d.ts.map +0 -1
- package/dist/security/path-security.js +0 -337
- package/dist/security/path-security.js.map +0 -1
- package/dist/security/validation.d.ts +0 -95
- package/dist/security/validation.d.ts.map +0 -1
- package/dist/security/validation.js +0 -315
- package/dist/security/validation.js.map +0 -1
- package/dist/types/quic.d.ts +0 -518
- package/dist/types/quic.d.ts.map +0 -1
- package/dist/types/quic.js +0 -272
- package/dist/types/quic.js.map +0 -1
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Linear Algebra Utilities for MALP
|
|
3
|
-
*
|
|
4
|
-
* Provides core matrix operations, numerical stability utilities,
|
|
5
|
-
* and linear algebra primitives optimized for MALP regression.
|
|
6
|
-
*/
|
|
7
|
-
export interface Matrix {
|
|
8
|
-
data: number[][];
|
|
9
|
-
rows: number;
|
|
10
|
-
cols: number;
|
|
11
|
-
}
|
|
12
|
-
export interface Vector {
|
|
13
|
-
data: number[];
|
|
14
|
-
length: number;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Numerical stability epsilon for avoiding division by zero
|
|
18
|
-
* and ensuring gradient computations are numerically stable
|
|
19
|
-
*/
|
|
20
|
-
export declare const EPSILON = 1e-10;
|
|
21
|
-
/**
|
|
22
|
-
* Create a matrix from 2D array data
|
|
23
|
-
*/
|
|
24
|
-
export declare function createMatrix(data: number[][]): Matrix;
|
|
25
|
-
/**
|
|
26
|
-
* Create a vector from array data
|
|
27
|
-
*/
|
|
28
|
-
export declare function createVector(data: number[]): Vector;
|
|
29
|
-
/**
|
|
30
|
-
* Matrix-vector multiplication: y = Ax
|
|
31
|
-
*/
|
|
32
|
-
export declare function matVecMultiply(A: Matrix, x: Vector): Vector;
|
|
33
|
-
/**
|
|
34
|
-
* Matrix transpose
|
|
35
|
-
*/
|
|
36
|
-
export declare function transpose(A: Matrix): Matrix;
|
|
37
|
-
/**
|
|
38
|
-
* Matrix-matrix multiplication: C = AB
|
|
39
|
-
*/
|
|
40
|
-
export declare function matMatMultiply(A: Matrix, B: Matrix): Matrix;
|
|
41
|
-
/**
|
|
42
|
-
* Compute mean of a vector
|
|
43
|
-
*/
|
|
44
|
-
export declare function mean(x: Vector): number;
|
|
45
|
-
/**
|
|
46
|
-
* Compute variance of a vector
|
|
47
|
-
*/
|
|
48
|
-
export declare function variance(x: Vector, meanVal?: number): number;
|
|
49
|
-
/**
|
|
50
|
-
* Compute standard deviation of a vector
|
|
51
|
-
*/
|
|
52
|
-
export declare function std(x: Vector, meanVal?: number): number;
|
|
53
|
-
/**
|
|
54
|
-
* Compute covariance between two vectors
|
|
55
|
-
*/
|
|
56
|
-
export declare function covariance(x: Vector, y: Vector): number;
|
|
57
|
-
/**
|
|
58
|
-
* Compute Pearson correlation coefficient
|
|
59
|
-
*/
|
|
60
|
-
export declare function pearsonCorr(x: Vector, y: Vector): number;
|
|
61
|
-
/**
|
|
62
|
-
* Compute dot product of two vectors
|
|
63
|
-
*/
|
|
64
|
-
export declare function dot(x: Vector, y: Vector): number;
|
|
65
|
-
/**
|
|
66
|
-
* Compute L2 norm (Euclidean norm) of a vector
|
|
67
|
-
*/
|
|
68
|
-
export declare function norm(x: Vector): number;
|
|
69
|
-
/**
|
|
70
|
-
* Vector addition: z = x + y
|
|
71
|
-
*/
|
|
72
|
-
export declare function vectorAdd(x: Vector, y: Vector): Vector;
|
|
73
|
-
/**
|
|
74
|
-
* Vector subtraction: z = x - y
|
|
75
|
-
*/
|
|
76
|
-
export declare function vectorSubtract(x: Vector, y: Vector): Vector;
|
|
77
|
-
/**
|
|
78
|
-
* Scalar multiplication: y = ax
|
|
79
|
-
*/
|
|
80
|
-
export declare function scalarMultiply(a: number, x: Vector): Vector;
|
|
81
|
-
/**
|
|
82
|
-
* Solve least squares problem: minimize ||Ax - b||^2
|
|
83
|
-
* Uses normal equations: A^T A x = A^T b
|
|
84
|
-
*
|
|
85
|
-
* This is used for least squares initialization in MALP
|
|
86
|
-
*/
|
|
87
|
-
export declare function leastSquares(A: Matrix, b: Vector): Vector;
|
|
88
|
-
/**
|
|
89
|
-
* Solve linear system Ax = b using Gaussian elimination with partial pivoting
|
|
90
|
-
*/
|
|
91
|
-
export declare function solveLinearSystem(A: Matrix, b: Vector): Vector;
|
|
92
|
-
/**
|
|
93
|
-
* Add design matrix column for intercept (column of ones)
|
|
94
|
-
*/
|
|
95
|
-
export declare function addIntercept(X: Matrix): Matrix;
|
|
96
|
-
/**
|
|
97
|
-
* Compute condition number of a matrix (estimate)
|
|
98
|
-
* Used to check numerical stability
|
|
99
|
-
*/
|
|
100
|
-
export declare function conditionNumber(A: Matrix): number;
|
|
101
|
-
//# sourceMappingURL=linalg.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"linalg.d.ts","sourceRoot":"","sources":["../../../src/malp/core/linalg.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,eAAO,MAAM,OAAO,QAAQ,CAAC;AAE7B;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,CAiBrD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAKnD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAgB3D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAU3C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAkB3D;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAGtC;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAI5D;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAcvD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAWxD;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAWhD;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAWtD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAW3D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAG3D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAgBzD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAyD9D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAYjD"}
|
package/dist/malp/core/linalg.js
DELETED
|
@@ -1,278 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Linear Algebra Utilities for MALP
|
|
3
|
-
*
|
|
4
|
-
* Provides core matrix operations, numerical stability utilities,
|
|
5
|
-
* and linear algebra primitives optimized for MALP regression.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Numerical stability epsilon for avoiding division by zero
|
|
9
|
-
* and ensuring gradient computations are numerically stable
|
|
10
|
-
*/
|
|
11
|
-
export const EPSILON = 1e-10;
|
|
12
|
-
/**
|
|
13
|
-
* Create a matrix from 2D array data
|
|
14
|
-
*/
|
|
15
|
-
export function createMatrix(data) {
|
|
16
|
-
if (data.length === 0 || data[0].length === 0) {
|
|
17
|
-
throw new Error('Matrix must have non-zero dimensions');
|
|
18
|
-
}
|
|
19
|
-
const cols = data[0].length;
|
|
20
|
-
for (let i = 1; i < data.length; i++) {
|
|
21
|
-
if (data[i].length !== cols) {
|
|
22
|
-
throw new Error('All matrix rows must have the same length');
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return {
|
|
26
|
-
data,
|
|
27
|
-
rows: data.length,
|
|
28
|
-
cols
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Create a vector from array data
|
|
33
|
-
*/
|
|
34
|
-
export function createVector(data) {
|
|
35
|
-
return {
|
|
36
|
-
data,
|
|
37
|
-
length: data.length
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Matrix-vector multiplication: y = Ax
|
|
42
|
-
*/
|
|
43
|
-
export function matVecMultiply(A, x) {
|
|
44
|
-
if (A.cols !== x.length) {
|
|
45
|
-
throw new Error(`Dimension mismatch: ${A.cols} !== ${x.length}`);
|
|
46
|
-
}
|
|
47
|
-
const result = new Array(A.rows).fill(0);
|
|
48
|
-
for (let i = 0; i < A.rows; i++) {
|
|
49
|
-
let sum = 0;
|
|
50
|
-
for (let j = 0; j < A.cols; j++) {
|
|
51
|
-
sum += A.data[i][j] * x.data[j];
|
|
52
|
-
}
|
|
53
|
-
result[i] = sum;
|
|
54
|
-
}
|
|
55
|
-
return createVector(result);
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Matrix transpose
|
|
59
|
-
*/
|
|
60
|
-
export function transpose(A) {
|
|
61
|
-
const data = Array(A.cols).fill(null).map(() => Array(A.rows));
|
|
62
|
-
for (let i = 0; i < A.rows; i++) {
|
|
63
|
-
for (let j = 0; j < A.cols; j++) {
|
|
64
|
-
data[j][i] = A.data[i][j];
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
return createMatrix(data);
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Matrix-matrix multiplication: C = AB
|
|
71
|
-
*/
|
|
72
|
-
export function matMatMultiply(A, B) {
|
|
73
|
-
if (A.cols !== B.rows) {
|
|
74
|
-
throw new Error(`Dimension mismatch: ${A.cols} !== ${B.rows}`);
|
|
75
|
-
}
|
|
76
|
-
const data = Array(A.rows).fill(null).map(() => Array(B.cols).fill(0));
|
|
77
|
-
for (let i = 0; i < A.rows; i++) {
|
|
78
|
-
for (let j = 0; j < B.cols; j++) {
|
|
79
|
-
let sum = 0;
|
|
80
|
-
for (let k = 0; k < A.cols; k++) {
|
|
81
|
-
sum += A.data[i][k] * B.data[k][j];
|
|
82
|
-
}
|
|
83
|
-
data[i][j] = sum;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
return createMatrix(data);
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Compute mean of a vector
|
|
90
|
-
*/
|
|
91
|
-
export function mean(x) {
|
|
92
|
-
const sum = x.data.reduce((acc, val) => acc + val, 0);
|
|
93
|
-
return sum / x.length;
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Compute variance of a vector
|
|
97
|
-
*/
|
|
98
|
-
export function variance(x, meanVal) {
|
|
99
|
-
const m = meanVal ?? mean(x);
|
|
100
|
-
const sumSq = x.data.reduce((acc, val) => acc + Math.pow(val - m, 2), 0);
|
|
101
|
-
return sumSq / x.length;
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Compute standard deviation of a vector
|
|
105
|
-
*/
|
|
106
|
-
export function std(x, meanVal) {
|
|
107
|
-
return Math.sqrt(variance(x, meanVal));
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Compute covariance between two vectors
|
|
111
|
-
*/
|
|
112
|
-
export function covariance(x, y) {
|
|
113
|
-
if (x.length !== y.length) {
|
|
114
|
-
throw new Error(`Vector length mismatch: ${x.length} !== ${y.length}`);
|
|
115
|
-
}
|
|
116
|
-
const mx = mean(x);
|
|
117
|
-
const my = mean(y);
|
|
118
|
-
let sum = 0;
|
|
119
|
-
for (let i = 0; i < x.length; i++) {
|
|
120
|
-
sum += (x.data[i] - mx) * (y.data[i] - my);
|
|
121
|
-
}
|
|
122
|
-
return sum / x.length;
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Compute Pearson correlation coefficient
|
|
126
|
-
*/
|
|
127
|
-
export function pearsonCorr(x, y) {
|
|
128
|
-
const cov = covariance(x, y);
|
|
129
|
-
const stdX = std(x);
|
|
130
|
-
const stdY = std(y);
|
|
131
|
-
// Avoid division by zero
|
|
132
|
-
if (stdX < EPSILON || stdY < EPSILON) {
|
|
133
|
-
return 0;
|
|
134
|
-
}
|
|
135
|
-
return cov / (stdX * stdY);
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Compute dot product of two vectors
|
|
139
|
-
*/
|
|
140
|
-
export function dot(x, y) {
|
|
141
|
-
if (x.length !== y.length) {
|
|
142
|
-
throw new Error(`Vector length mismatch: ${x.length} !== ${y.length}`);
|
|
143
|
-
}
|
|
144
|
-
let sum = 0;
|
|
145
|
-
for (let i = 0; i < x.length; i++) {
|
|
146
|
-
sum += x.data[i] * y.data[i];
|
|
147
|
-
}
|
|
148
|
-
return sum;
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Compute L2 norm (Euclidean norm) of a vector
|
|
152
|
-
*/
|
|
153
|
-
export function norm(x) {
|
|
154
|
-
return Math.sqrt(dot(x, x));
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Vector addition: z = x + y
|
|
158
|
-
*/
|
|
159
|
-
export function vectorAdd(x, y) {
|
|
160
|
-
if (x.length !== y.length) {
|
|
161
|
-
throw new Error(`Vector length mismatch: ${x.length} !== ${y.length}`);
|
|
162
|
-
}
|
|
163
|
-
const result = new Array(x.length);
|
|
164
|
-
for (let i = 0; i < x.length; i++) {
|
|
165
|
-
result[i] = x.data[i] + y.data[i];
|
|
166
|
-
}
|
|
167
|
-
return createVector(result);
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Vector subtraction: z = x - y
|
|
171
|
-
*/
|
|
172
|
-
export function vectorSubtract(x, y) {
|
|
173
|
-
if (x.length !== y.length) {
|
|
174
|
-
throw new Error(`Vector length mismatch: ${x.length} !== ${y.length}`);
|
|
175
|
-
}
|
|
176
|
-
const result = new Array(x.length);
|
|
177
|
-
for (let i = 0; i < x.length; i++) {
|
|
178
|
-
result[i] = x.data[i] - y.data[i];
|
|
179
|
-
}
|
|
180
|
-
return createVector(result);
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* Scalar multiplication: y = ax
|
|
184
|
-
*/
|
|
185
|
-
export function scalarMultiply(a, x) {
|
|
186
|
-
const result = x.data.map(val => a * val);
|
|
187
|
-
return createVector(result);
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Solve least squares problem: minimize ||Ax - b||^2
|
|
191
|
-
* Uses normal equations: A^T A x = A^T b
|
|
192
|
-
*
|
|
193
|
-
* This is used for least squares initialization in MALP
|
|
194
|
-
*/
|
|
195
|
-
export function leastSquares(A, b) {
|
|
196
|
-
if (A.rows !== b.length) {
|
|
197
|
-
throw new Error(`Dimension mismatch: ${A.rows} !== ${b.length}`);
|
|
198
|
-
}
|
|
199
|
-
// Compute A^T
|
|
200
|
-
const AT = transpose(A);
|
|
201
|
-
// Compute A^T A
|
|
202
|
-
const ATA = matMatMultiply(AT, A);
|
|
203
|
-
// Compute A^T b
|
|
204
|
-
const ATb = matVecMultiply(AT, b);
|
|
205
|
-
// Solve ATA x = ATb using Gaussian elimination with partial pivoting
|
|
206
|
-
return solveLinearSystem(ATA, ATb);
|
|
207
|
-
}
|
|
208
|
-
/**
|
|
209
|
-
* Solve linear system Ax = b using Gaussian elimination with partial pivoting
|
|
210
|
-
*/
|
|
211
|
-
export function solveLinearSystem(A, b) {
|
|
212
|
-
if (A.rows !== A.cols) {
|
|
213
|
-
throw new Error('Matrix must be square');
|
|
214
|
-
}
|
|
215
|
-
if (A.rows !== b.length) {
|
|
216
|
-
throw new Error(`Dimension mismatch: ${A.rows} !== ${b.length}`);
|
|
217
|
-
}
|
|
218
|
-
const n = A.rows;
|
|
219
|
-
// Create augmented matrix [A | b]
|
|
220
|
-
const augmented = A.data.map((row, i) => [...row, b.data[i]]);
|
|
221
|
-
// Forward elimination with partial pivoting
|
|
222
|
-
for (let k = 0; k < n; k++) {
|
|
223
|
-
// Find pivot
|
|
224
|
-
let maxRow = k;
|
|
225
|
-
let maxVal = Math.abs(augmented[k][k]);
|
|
226
|
-
for (let i = k + 1; i < n; i++) {
|
|
227
|
-
const val = Math.abs(augmented[i][k]);
|
|
228
|
-
if (val > maxVal) {
|
|
229
|
-
maxVal = val;
|
|
230
|
-
maxRow = i;
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
// Check for singular matrix
|
|
234
|
-
if (maxVal < EPSILON) {
|
|
235
|
-
throw new Error('Matrix is singular or near-singular');
|
|
236
|
-
}
|
|
237
|
-
// Swap rows
|
|
238
|
-
if (maxRow !== k) {
|
|
239
|
-
[augmented[k], augmented[maxRow]] = [augmented[maxRow], augmented[k]];
|
|
240
|
-
}
|
|
241
|
-
// Eliminate column
|
|
242
|
-
for (let i = k + 1; i < n; i++) {
|
|
243
|
-
const factor = augmented[i][k] / augmented[k][k];
|
|
244
|
-
for (let j = k; j <= n; j++) {
|
|
245
|
-
augmented[i][j] -= factor * augmented[k][j];
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
// Back substitution
|
|
250
|
-
const x = new Array(n).fill(0);
|
|
251
|
-
for (let i = n - 1; i >= 0; i--) {
|
|
252
|
-
let sum = augmented[i][n];
|
|
253
|
-
for (let j = i + 1; j < n; j++) {
|
|
254
|
-
sum -= augmented[i][j] * x[j];
|
|
255
|
-
}
|
|
256
|
-
x[i] = sum / augmented[i][i];
|
|
257
|
-
}
|
|
258
|
-
return createVector(x);
|
|
259
|
-
}
|
|
260
|
-
/**
|
|
261
|
-
* Add design matrix column for intercept (column of ones)
|
|
262
|
-
*/
|
|
263
|
-
export function addIntercept(X) {
|
|
264
|
-
const data = X.data.map(row => [1, ...row]);
|
|
265
|
-
return createMatrix(data);
|
|
266
|
-
}
|
|
267
|
-
/**
|
|
268
|
-
* Compute condition number of a matrix (estimate)
|
|
269
|
-
* Used to check numerical stability
|
|
270
|
-
*/
|
|
271
|
-
export function conditionNumber(A) {
|
|
272
|
-
// Simple estimate using Frobenius norm
|
|
273
|
-
// For more accuracy, would need SVD
|
|
274
|
-
const frobNorm = Math.sqrt(A.data.reduce((sum, row) => sum + row.reduce((rowSum, val) => rowSum + val * val, 0), 0));
|
|
275
|
-
// Rough estimate - for exact condition number, compute ||A|| * ||A^-1||
|
|
276
|
-
return frobNorm;
|
|
277
|
-
}
|
|
278
|
-
//# sourceMappingURL=linalg.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"linalg.js","sourceRoot":"","sources":["../../../src/malp/core/linalg.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Gradient Ascent Optimizer for MALP
|
|
3
|
-
*
|
|
4
|
-
* Maximizes concordance correlation coefficient through iterative optimization.
|
|
5
|
-
* Uses adaptive learning rate and convergence detection.
|
|
6
|
-
*/
|
|
7
|
-
export interface OptimizerConfig {
|
|
8
|
-
learningRate: number;
|
|
9
|
-
maxIterations: number;
|
|
10
|
-
tolerance: number;
|
|
11
|
-
momentum?: number;
|
|
12
|
-
adaptive?: boolean;
|
|
13
|
-
verbose?: boolean;
|
|
14
|
-
}
|
|
15
|
-
export interface OptimizationStep {
|
|
16
|
-
iteration: number;
|
|
17
|
-
ccc: number;
|
|
18
|
-
gradientNorm: number;
|
|
19
|
-
learningRate: number;
|
|
20
|
-
}
|
|
21
|
-
export interface OptimizerResult {
|
|
22
|
-
weights: number[];
|
|
23
|
-
finalCCC: number;
|
|
24
|
-
iterations: number;
|
|
25
|
-
converged: boolean;
|
|
26
|
-
history: OptimizationStep[];
|
|
27
|
-
}
|
|
28
|
-
export interface OptimizationResult extends OptimizerResult {
|
|
29
|
-
}
|
|
30
|
-
export declare const DEFAULT_OPTIMIZER_CONFIG: Required<OptimizerConfig>;
|
|
31
|
-
export declare class MALPOptimizer {
|
|
32
|
-
private config;
|
|
33
|
-
constructor(config?: Partial<OptimizerConfig>);
|
|
34
|
-
/**
|
|
35
|
-
* Optimize weights to maximize CCC between predictions and targets
|
|
36
|
-
* @param X Feature matrix (n_samples × n_features)
|
|
37
|
-
* @param y Target values (n_samples)
|
|
38
|
-
* @param initialWeights Starting weights (optional)
|
|
39
|
-
*/
|
|
40
|
-
optimize(X: number[][], y: number[], initialWeights?: number[]): OptimizerResult;
|
|
41
|
-
/**
|
|
42
|
-
* Compute gradient of CCC with respect to weights
|
|
43
|
-
* Uses finite differences for numerical gradient
|
|
44
|
-
*/
|
|
45
|
-
private computeGradient;
|
|
46
|
-
/**
|
|
47
|
-
* Compute predictions from features and weights
|
|
48
|
-
*/
|
|
49
|
-
private predict;
|
|
50
|
-
/**
|
|
51
|
-
* Set new configuration
|
|
52
|
-
*/
|
|
53
|
-
setConfig(config: Partial<OptimizerConfig>): void;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Perform line search to find optimal learning rate
|
|
57
|
-
*/
|
|
58
|
-
export declare function lineSearch(X: number[][], y: number[], weights: number[], gradient: number[], maxLR?: number, nSteps?: number): number;
|
|
59
|
-
/**
|
|
60
|
-
* Alias for MALPOptimizer for backward compatibility
|
|
61
|
-
*/
|
|
62
|
-
export declare class GradientAscentOptimizer extends MALPOptimizer {
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Convenience function to optimize MALP weights
|
|
66
|
-
*/
|
|
67
|
-
export declare function optimizeMALP(X: number[][], y: number[], config?: Partial<OptimizerConfig>): OptimizerResult;
|
|
68
|
-
//# sourceMappingURL=optimizer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"optimizer.d.ts","sourceRoot":"","sources":["../../../src/malp/core/optimizer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAmB,SAAQ,eAAe;CAAG;AAE9D,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,eAAe,CAO9D,CAAC;AAEF,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAA4B;gBAE9B,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM;IAWjD;;;;;OAKG;IACH,QAAQ,CACN,CAAC,EAAE,MAAM,EAAE,EAAE,EACb,CAAC,EAAE,MAAM,EAAE,EACX,cAAc,CAAC,EAAE,MAAM,EAAE,GACxB,eAAe;IAqFlB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAwBvB;;OAEG;IACH,OAAO,CAAC,OAAO;IAMf;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;CAGlD;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,CAAC,EAAE,MAAM,EAAE,EAAE,EACb,CAAC,EAAE,MAAM,EAAE,EACX,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,EAAE,MAAM,EAAE,EAClB,KAAK,GAAE,MAAY,EACnB,MAAM,GAAE,MAAW,GAClB,MAAM,CAmBR;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,aAAa;CAAG;AAE7D;;GAEG;AACH,wBAAgB,YAAY,CAC1B,CAAC,EAAE,MAAM,EAAE,EAAE,EACb,CAAC,EAAE,MAAM,EAAE,EACX,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GACpC,eAAe,CAGjB"}
|
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Gradient Ascent Optimizer for MALP
|
|
3
|
-
*
|
|
4
|
-
* Maximizes concordance correlation coefficient through iterative optimization.
|
|
5
|
-
* Uses adaptive learning rate and convergence detection.
|
|
6
|
-
*/
|
|
7
|
-
import { calculateCCC } from './ccc';
|
|
8
|
-
export const DEFAULT_OPTIMIZER_CONFIG = {
|
|
9
|
-
learningRate: 0.01,
|
|
10
|
-
maxIterations: 1000,
|
|
11
|
-
tolerance: 1e-6,
|
|
12
|
-
momentum: 0.9,
|
|
13
|
-
adaptive: true,
|
|
14
|
-
verbose: false
|
|
15
|
-
};
|
|
16
|
-
export class MALPOptimizer {
|
|
17
|
-
config;
|
|
18
|
-
constructor(config = {}) {
|
|
19
|
-
this.config = {
|
|
20
|
-
learningRate: config.learningRate ?? 0.01,
|
|
21
|
-
maxIterations: config.maxIterations ?? 1000,
|
|
22
|
-
tolerance: config.tolerance ?? 1e-6,
|
|
23
|
-
momentum: config.momentum ?? 0.9,
|
|
24
|
-
adaptive: config.adaptive ?? true,
|
|
25
|
-
verbose: config.verbose ?? false
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Optimize weights to maximize CCC between predictions and targets
|
|
30
|
-
* @param X Feature matrix (n_samples × n_features)
|
|
31
|
-
* @param y Target values (n_samples)
|
|
32
|
-
* @param initialWeights Starting weights (optional)
|
|
33
|
-
*/
|
|
34
|
-
optimize(X, y, initialWeights) {
|
|
35
|
-
const nSamples = X.length;
|
|
36
|
-
const nFeatures = X[0].length;
|
|
37
|
-
// Initialize weights
|
|
38
|
-
let weights = initialWeights ?? Array(nFeatures).fill(0).map(() => (Math.random() - 0.5) * 0.01);
|
|
39
|
-
// Velocity for momentum
|
|
40
|
-
let velocity = Array(nFeatures).fill(0);
|
|
41
|
-
const history = [];
|
|
42
|
-
let learningRate = this.config.learningRate;
|
|
43
|
-
let prevCCC = -Infinity;
|
|
44
|
-
for (let iter = 0; iter < this.config.maxIterations; iter++) {
|
|
45
|
-
// Compute predictions
|
|
46
|
-
const predictions = this.predict(X, weights);
|
|
47
|
-
// Compute CCC and gradient
|
|
48
|
-
const cccResult = calculateCCC(predictions, y);
|
|
49
|
-
const gradient = this.computeGradient(X, y, predictions, cccResult);
|
|
50
|
-
const gradientNorm = Math.sqrt(gradient.reduce((sum, g) => sum + g * g, 0));
|
|
51
|
-
// Record history
|
|
52
|
-
history.push({
|
|
53
|
-
iteration: iter,
|
|
54
|
-
ccc: cccResult.ccc,
|
|
55
|
-
gradientNorm,
|
|
56
|
-
learningRate
|
|
57
|
-
});
|
|
58
|
-
if (this.config.verbose && iter % 100 === 0) {
|
|
59
|
-
console.log(`Iteration ${iter}: CCC = ${cccResult.ccc.toFixed(6)}, ` +
|
|
60
|
-
`Gradient Norm = ${gradientNorm.toFixed(6)}`);
|
|
61
|
-
}
|
|
62
|
-
// Check convergence
|
|
63
|
-
if (gradientNorm < this.config.tolerance) {
|
|
64
|
-
return {
|
|
65
|
-
weights,
|
|
66
|
-
finalCCC: cccResult.ccc,
|
|
67
|
-
iterations: iter + 1,
|
|
68
|
-
converged: true,
|
|
69
|
-
history
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
// Adaptive learning rate
|
|
73
|
-
if (this.config.adaptive) {
|
|
74
|
-
if (cccResult.ccc < prevCCC) {
|
|
75
|
-
learningRate *= 0.5; // Reduce if CCC decreased
|
|
76
|
-
}
|
|
77
|
-
else if (iter > 0 && cccResult.ccc > prevCCC) {
|
|
78
|
-
learningRate *= 1.05; // Increase if improving
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
// Update weights with momentum
|
|
82
|
-
for (let j = 0; j < nFeatures; j++) {
|
|
83
|
-
velocity[j] = this.config.momentum * velocity[j] +
|
|
84
|
-
learningRate * gradient[j];
|
|
85
|
-
weights[j] += velocity[j];
|
|
86
|
-
}
|
|
87
|
-
prevCCC = cccResult.ccc;
|
|
88
|
-
}
|
|
89
|
-
// Max iterations reached
|
|
90
|
-
const finalPredictions = this.predict(X, weights);
|
|
91
|
-
const finalCCC = calculateCCC(finalPredictions, y).ccc;
|
|
92
|
-
return {
|
|
93
|
-
weights,
|
|
94
|
-
finalCCC,
|
|
95
|
-
iterations: this.config.maxIterations,
|
|
96
|
-
converged: false,
|
|
97
|
-
history
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Compute gradient of CCC with respect to weights
|
|
102
|
-
* Uses finite differences for numerical gradient
|
|
103
|
-
*/
|
|
104
|
-
computeGradient(X, y, predictions, cccResult) {
|
|
105
|
-
const nFeatures = X[0].length;
|
|
106
|
-
const gradient = Array(nFeatures).fill(0);
|
|
107
|
-
const epsilon = 1e-5;
|
|
108
|
-
// Numerical gradient via finite differences
|
|
109
|
-
for (let j = 0; j < nFeatures; j++) {
|
|
110
|
-
// Perturb feature contribution
|
|
111
|
-
const perturbedPreds = predictions.map((pred, i) => pred + epsilon * X[i][j]);
|
|
112
|
-
const perturbedCCC = calculateCCC(perturbedPreds, y).ccc;
|
|
113
|
-
gradient[j] = (perturbedCCC - cccResult.ccc) / epsilon;
|
|
114
|
-
}
|
|
115
|
-
return gradient;
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Compute predictions from features and weights
|
|
119
|
-
*/
|
|
120
|
-
predict(X, weights) {
|
|
121
|
-
return X.map(row => row.reduce((sum, val, j) => sum + val * weights[j], 0));
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Set new configuration
|
|
125
|
-
*/
|
|
126
|
-
setConfig(config) {
|
|
127
|
-
this.config = { ...this.config, ...config };
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Perform line search to find optimal learning rate
|
|
132
|
-
*/
|
|
133
|
-
export function lineSearch(X, y, weights, gradient, maxLR = 1.0, nSteps = 10) {
|
|
134
|
-
let bestLR = 0;
|
|
135
|
-
let bestCCC = -Infinity;
|
|
136
|
-
for (let i = 0; i <= nSteps; i++) {
|
|
137
|
-
const lr = (i / nSteps) * maxLR;
|
|
138
|
-
const testWeights = weights.map((w, j) => w + lr * gradient[j]);
|
|
139
|
-
const predictions = X.map(row => row.reduce((sum, val, j) => sum + val * testWeights[j], 0));
|
|
140
|
-
const ccc = calculateCCC(predictions, y).ccc;
|
|
141
|
-
if (ccc > bestCCC) {
|
|
142
|
-
bestCCC = ccc;
|
|
143
|
-
bestLR = lr;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
return bestLR;
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Alias for MALPOptimizer for backward compatibility
|
|
150
|
-
*/
|
|
151
|
-
export class GradientAscentOptimizer extends MALPOptimizer {
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Convenience function to optimize MALP weights
|
|
155
|
-
*/
|
|
156
|
-
export function optimizeMALP(X, y, config = {}) {
|
|
157
|
-
const optimizer = new MALPOptimizer(config);
|
|
158
|
-
return optimizer.optimize(X, y);
|
|
159
|
-
}
|
|
160
|
-
//# sourceMappingURL=optimizer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"optimizer.js","sourceRoot":"","sources":["../../../src/malp/core/optimizer.ts"],"names":[],"mappings":"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"}
|
package/dist/malp/index.d.ts
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MALP - Maximum Agreement Linear Predictor
|
|
3
|
-
*
|
|
4
|
-
* A regression library that maximizes the Concordance Correlation Coefficient (CCC)
|
|
5
|
-
* instead of minimizing squared error. Optimized for measurement validation,
|
|
6
|
-
* method comparison, and scenarios requiring high agreement between predictions
|
|
7
|
-
* and observations.
|
|
8
|
-
*
|
|
9
|
-
* @module malp
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```typescript
|
|
13
|
-
* import { MALPRegressor, compareMALPvsOLS } from 'agentdb/malp';
|
|
14
|
-
*
|
|
15
|
-
* // Fit MALP model
|
|
16
|
-
* const model = new MALPRegressor();
|
|
17
|
-
* model.fit(X, y);
|
|
18
|
-
* const predictions = model.predict(X);
|
|
19
|
-
* const cccScore = model.score(X, y);
|
|
20
|
-
*
|
|
21
|
-
* // Compare with OLS
|
|
22
|
-
* const comparison = compareMALPvsOLS(X_train, y_train, X_test, y_test);
|
|
23
|
-
* console.log(comparison.summary);
|
|
24
|
-
* ```
|
|
25
|
-
*/
|
|
26
|
-
export { type Matrix, type Vector, createMatrix, createVector, matVecMultiply, matMatMultiply, transpose, leastSquares, mean, std, variance, covariance, pearsonCorr, dot, norm, vectorAdd, vectorSubtract, scalarMultiply, addIntercept, EPSILON } from './core/linalg';
|
|
27
|
-
export { type CCCComponents, computeCCC, computeCCCGradient, computeCCCHessianDiagonal, cccLoss, interpretCCC, validateCCC } from './core/ccc';
|
|
28
|
-
export { type OptimizerConfig, type OptimizationStep, type OptimizationResult, GradientAscentOptimizer, optimizeMALP, DEFAULT_OPTIMIZER_CONFIG } from './core/optimizer';
|
|
29
|
-
export { type MALPConfig, type MALPRegressorConfig, type FitResult, MALPRegressor, fitMALP, crossValidateMALP, DEFAULT_MALP_CONFIG } from './models/regressor';
|
|
30
|
-
export { type AgreementMetrics, type BlandAltmanAnalysis, computeAgreementMetrics, blandAltmanAnalysis, computePrecisionMetrics, computeBiasMetrics, isAgreementAcceptable, generateAgreementReport } from './metrics/agreement';
|
|
31
|
-
export { type RegressionMetrics, type ComparisonResults, OLSRegressor, computeRegressionMetrics, compareMALPvsOLS, crossValidateComparison } from './metrics/comparison';
|
|
32
|
-
export declare const MALP_VERSION = "1.0.0";
|
|
33
|
-
//# sourceMappingURL=index.d.ts.map
|