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 => ({ ...@@ -43,7 +43,7 @@ const createExperiment = (): Experiment => ({
id: 'dummy-id', id: 'dummy-id',
name: 'Testing purpose', name: 'Testing purpose',
algorithm: { algorithm: {
name: 'LOGISTIC_REGRESSION', name: LogisticRegressionHandler.ALGO_NAME,
}, },
datasets: ['desd-synthdata'], datasets: ['desd-synthdata'],
domain: 'dementia', domain: 'dementia',
......
...@@ -34,6 +34,8 @@ const roundNumber = (val: any, name: string) => ...@@ -34,6 +34,8 @@ const roundNumber = (val: any, name: string) =>
: val; : val;
export default class LogisticRegressionHandler extends BaseHandler { export default class LogisticRegressionHandler extends BaseHandler {
public static readonly ALGO_NAME = 'logistic_regression';
private getModel(data: any): TableResult | undefined { private getModel(data: any): TableResult | undefined {
return { return {
name: 'Model', name: 'Model',
...@@ -73,13 +75,16 @@ export default class LogisticRegressionHandler extends BaseHandler { ...@@ -73,13 +75,16 @@ export default class LogisticRegressionHandler extends BaseHandler {
name: lookupDict[name], name: lookupDict[name],
type: 'string', 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 { canHandle(exp: Experiment, data: any): boolean {
return ( return (
exp.algorithm.name.toLowerCase() === 'logistic_regression' && exp.algorithm.name.toLowerCase() ===
LogisticRegressionHandler.ALGO_NAME &&
!!data && !!data &&
!!data[0] && !!data[0] &&
!!data[0]['summary'] !!data[0]['summary']
......
...@@ -4,9 +4,11 @@ import AnovaOneWayHandler from './algorithms/anova-one-way.handler'; ...@@ -4,9 +4,11 @@ import AnovaOneWayHandler from './algorithms/anova-one-way.handler';
import DescriptiveHandler from './algorithms/descriptive.handler'; import DescriptiveHandler from './algorithms/descriptive.handler';
import LinearRegressionCVHandler from './algorithms/linear-regression-cv.handler'; import LinearRegressionCVHandler from './algorithms/linear-regression-cv.handler';
import LinearRegressionHandler from './algorithms/linear-regression.handler'; import LinearRegressionHandler from './algorithms/linear-regression.handler';
import LogisticRegressionHandler from './algorithms/logistic-regression.handler';
import PCAHandler from './algorithms/PCA.handler'; import PCAHandler from './algorithms/PCA.handler';
import PearsonHandler from './algorithms/pearson.handler'; import PearsonHandler from './algorithms/pearson.handler';
import RawHandler from './algorithms/raw.handler'; import RawHandler from './algorithms/raw.handler';
import TTestPairedHandler from './algorithms/ttest-paired.handler';
import ResultHandler from './result-handler.interface'; import ResultHandler from './result-handler.interface';
const start = new PearsonHandler() as ResultHandler; const start = new PearsonHandler() as ResultHandler;
...@@ -17,6 +19,8 @@ start ...@@ -17,6 +19,8 @@ start
.setNext(new PCAHandler()) .setNext(new PCAHandler())
.setNext(new LinearRegressionHandler()) .setNext(new LinearRegressionHandler())
.setNext(new LinearRegressionCVHandler()) .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) .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 => { export default (exp: Experiment, data: unknown, domain: Domain): Experiment => {
......
...@@ -13,7 +13,7 @@ const transformToAlgorithms = jsonata(` ...@@ -13,7 +13,7 @@ const transformToAlgorithms = jsonata(`
'PEARSON','ID3','KMEANS','NAIVE_BAYES', 'PEARSON','ID3','KMEANS','NAIVE_BAYES',
'TTEST_ONESAMPLE','PCA','CALIBRATION_BELT','CART', 'TTEST_ONESAMPLE','PCA','CALIBRATION_BELT','CART',
'KAPLAN_MEIER','THREE_C', 'ONE_WAY_ANOVA', 'PEARSON', 'LINEAR_REGRESSION_CV']; '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']; $linkedCoVars:= ['referencevalues', 'xlevels'];
$truthy:= function($val) {( $truthy:= function($val) {(
$v:= $lowercase($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