Skip to content
Snippets Groups Projects
Commit d993da85 authored by Steve Reis's avatar Steve Reis
Browse files

fix(exareme2): Issue with Logistic regression (exareme)

parent ba4ebd29
No related branches found
No related tags found
No related merge requests found
......@@ -43,7 +43,7 @@ const createExperiment = (): Experiment => ({
id: 'dummy-id',
name: 'Testing purpose',
algorithm: {
name: 'LOGISTIC_REGRESSION',
name: LogisticRegressionHandler.ALGO_NAME,
},
datasets: ['desd-synthdata'],
domain: 'dementia',
......
......@@ -34,6 +34,8 @@ const roundNumber = (val: any, name: string) =>
: val;
export default class LogisticRegressionHandler extends BaseHandler {
public static readonly ALGO_NAME = 'logistic_regression';
private getModel(data: any): TableResult | undefined {
return {
name: 'Model',
......@@ -73,13 +75,16 @@ export default class LogisticRegressionHandler extends BaseHandler {
name: lookupDict[name],
type: 'string',
})),
data: [fields.map((name) => roundNumber(data[name], name))],
data: data['indep_vars'].map((_var: string, i: number) =>
fields.map((name) => roundNumber(data[name][i], name)),
),
};
}
canHandle(exp: Experiment, data: any): boolean {
return (
exp.algorithm.name.toLowerCase() === 'logistic_regression' &&
exp.algorithm.name.toLowerCase() ===
LogisticRegressionHandler.ALGO_NAME &&
!!data &&
!!data[0] &&
!!data[0]['summary']
......
......@@ -4,9 +4,11 @@ import AnovaOneWayHandler from './algorithms/anova-one-way.handler';
import DescriptiveHandler from './algorithms/descriptive.handler';
import LinearRegressionCVHandler from './algorithms/linear-regression-cv.handler';
import LinearRegressionHandler from './algorithms/linear-regression.handler';
import LogisticRegressionHandler from './algorithms/logistic-regression.handler';
import PCAHandler from './algorithms/PCA.handler';
import PearsonHandler from './algorithms/pearson.handler';
import RawHandler from './algorithms/raw.handler';
import TTestPairedHandler from './algorithms/ttest-paired.handler';
import ResultHandler from './result-handler.interface';
const start = new PearsonHandler() as ResultHandler;
......@@ -17,6 +19,8 @@ start
.setNext(new PCAHandler())
.setNext(new LinearRegressionHandler())
.setNext(new LinearRegressionCVHandler())
.setNext(new LogisticRegressionHandler())
.setNext(new TTestPairedHandler())
.setNext(new RawHandler()); // should be last handler as it works as a fallback (if other handlers could not process the results)
export default (exp: Experiment, data: unknown, domain: Domain): Experiment => {
......
......@@ -13,7 +13,7 @@ const transformToAlgorithms = jsonata(`
'PEARSON','ID3','KMEANS','NAIVE_BAYES',
'TTEST_ONESAMPLE','PCA','CALIBRATION_BELT','CART',
'KAPLAN_MEIER','THREE_C', 'ONE_WAY_ANOVA', 'PEARSON', 'LINEAR_REGRESSION_CV'];
$linkedVars:= ['positive_level', 'negative_level', 'outcome_neg', 'outcome_pos'];
$linkedVars:= ['positive_class', 'positive_level', 'negative_level', 'outcome_neg', 'outcome_pos'];
$linkedCoVars:= ['referencevalues', 'xlevels'];
$truthy:= function($val) {(
$v:= $lowercase($val);
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment