... | ... | @@ -3,13 +3,13 @@ |
|
|
An implementation of L2-regularized logistic regression for two-class classification.
|
|
|
|
|
|
```prolog
|
|
|
:- use_module('path/to/.../src/methods/adaboost/adaboost.pl').
|
|
|
:- use_module('path/to/.../src/methods/logistic_regression/logistic_regression.pl').
|
|
|
|
|
|
%% usage example
|
|
|
TrainData = [5.1,3.5,1.4, 4.9,3.0,1.4, 4.7,3.2,1.3, 4.6,3.1,1.5],
|
|
|
TestData = [3,2,0, 5,1,4, 0,0,4, 3,3,5, 0,5,5, 2,5,5],
|
|
|
adaboost_initModelWithTraining(TrainData, 3, [0,1,0,1], 2, perceptron, 50, 0.0001),
|
|
|
adaboost_classify(TestData, 3, PredictionList, ProbabilitiesList, _).
|
|
|
logistic_regression_initModelWithOptimizer(TrainData, 3, [0,1,0,1], lbfgs, 0.0, 1000, 1.0e-10, 0.01, 64),
|
|
|
logistic_regression_classifyMatrix(TestData, 3, PredictLabels, ProbsList, _, 0.5).
|
|
|
```
|
|
|
|
|
|
# Available Predicates
|
... | ... | @@ -44,6 +44,7 @@ foreign(initModelNoOptimizer, c, initModelNoOptimizerI( +pointer(float_array), + |
|
|
```
|
|
|
|
|
|
### Parameters
|
|
|
|
|
|
| Name | Type | Description | Default |
|
|
|
|------|------|-------------|---------|
|
|
|
| data | +matrix | Input training variables. | - |
|
... | ... | @@ -58,7 +59,7 @@ Initialize the logistic_regression model and specify the optimizer. |
|
|
|
|
|
```prolog
|
|
|
%% predicate definition
|
|
|
logistic_regression_initModelWithOptimizer(DataList, DataRows, ResponsesList, Responses, Lambda, MaxIterations, Tolerance, StepSize, BatchSize) :-
|
|
|
logistic_regression_initModelWithOptimizer(DataList, DataRows, ResponsesList, Optimizer, Lambda, MaxIterations, Tolerance, StepSize, BatchSize) :-
|
|
|
Lambda >= 0.0,
|
|
|
MaxIterations >= 0,
|
|
|
Tolerance >= 0.0,
|
... | ... | @@ -66,7 +67,7 @@ logistic_regression_initModelWithOptimizer(DataList, DataRows, ResponsesList, Re |
|
|
BatchSize > 0,
|
|
|
convert_list_to_float_array(DataList, DataRows, array(Xsize, Xrownum, X)),
|
|
|
convert_list_to_float_array(ResponsesList, array(Ysize, Y)),
|
|
|
initModelWithOptimizerI(X, Xsize, Xrownum, Y, Ysize, Responses, Lambda, MaxIterations, Tolerance, StepSize, BatchSize).
|
|
|
initModelWithOptimizerI(X, Xsize, Xrownum, Y, Ysize, Optimizer, Lambda, MaxIterations, Tolerance, StepSize, BatchSize).
|
|
|
|
|
|
%% foreign c++ predicate definition
|
|
|
foreign(initModelWithOptimizer, c, initModelWithOptimizerI( +pointer(float_array), +integer, +integer,
|
... | ... | @@ -76,12 +77,17 @@ foreign(initModelWithOptimizer, c, initModelWithOptimizerI( +pointer(float_array |
|
|
```
|
|
|
|
|
|
### Parameters
|
|
|
|
|
|
| Name | Type | Description | Default |
|
|
|
|------|------|-------------|---------|
|
|
|
| data | +matrix | Input training variables. | - |
|
|
|
| responses | +vector | Outputs results from input training variables. | - |
|
|
|
| optimizer | +string | The optimizer to use: "lbfgs", "psgd" | lbfgs |
|
|
|
| lambda | +float | L2-regularization parameter. | 0.0 |
|
|
|
| maxIterations | +integer | Maximum iterations for optimizer (0 indicates no limit). | 10000 |
|
|
|
| tolerance | +float | Convergence tolerance for optimizer. | 1e-10 |
|
|
|
| stepSize | +float | Step size for SGD optimizer. | 0.01 |
|
|
|
| batchSize | +integer | Batch size for SGD. | 64 |
|
|
|
|
|
|
---
|
|
|
|
... | ... | @@ -104,6 +110,7 @@ foreign(classifyPoint, c, classifyPointI( +pointer(float_array), +integer, |
|
|
```
|
|
|
|
|
|
### Parameters
|
|
|
|
|
|
| Name | Type | Description | Default |
|
|
|
|------|------|-------------|---------|
|
|
|
| point | +vector | Point to classify. | - |
|
... | ... | @@ -134,10 +141,12 @@ foreign(classifyMatrix, c, classifyMatrixI( +pointer(float_array), +integer, +in |
|
|
```
|
|
|
|
|
|
### Parameters
|
|
|
|
|
|
| Name | Type | Description | Default |
|
|
|
|------|------|-------------|---------|
|
|
|
| data | +matrix | Set of points to classify. | - |
|
|
|
| predicLabels | -vector | Predicted labels for each point. | - |
|
|
|
| probabilities | -matrix | Class probabilities for each point. | - |
|
|
|
| decisionBoundary | +float | Decision boundary (default 0.5). | 0.5 |
|
|
|
|
|
|
---
|
... | ... | @@ -163,6 +172,7 @@ foreign(computeAccuracy, c, computeAccuracyI( +pointer(float_array), +integer, + |
|
|
```
|
|
|
|
|
|
### Parameters
|
|
|
|
|
|
| Name | Type | Description | Default |
|
|
|
|------|------|-------------|---------|
|
|
|
| data | +matrix | Input predictors. | - |
|
... | ... | @@ -190,6 +200,7 @@ foreign(computeError, c, computeErrorI( +pointer(float_array), +integer, +intege |
|
|
```
|
|
|
|
|
|
### Parameters
|
|
|
|
|
|
| Name | Type | Description | Default |
|
|
|
|------|------|-------------|---------|
|
|
|
| data | +matrix | Input predictors. | - |
|
... | ... | |