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.
- 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/dist/src/cli/commands/init.js +3 -3
- package/dist/src/cli/commands/init.js.map +1 -1
- package/package.json +3 -3
- package/src/cli/agentdb-cli.ts +78 -0
- package/src/cli/commands/init.ts +3 -3
- 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,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"}
|
package/dist/malp/models/malp.js
DELETED
|
@@ -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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"}
|