3.0.5 • Published 4 years ago

prediction-explainer v3.0.5

Weekly downloads
42
License
Apache-2.0
Repository
github
Last release
4 years ago

Javascript Prediction Explainer

Provides functions to explain predictions

Predicting

Predict on a person or population:

function predict(
    link: string,
    intercept: number,
    coefficients: number[],
    featureValues: number[]
): number

Note: In case of a population, featureValues are the averages(empirical means) of each feature in that population.

Calculate relative prediction between two predictions:

function predict_relative(
    link: string,
    intercept: number,
    coefficients: number[],
    featureValues1: number[],
    featureValues2: number[]
): number[]

This returns an array of 3 elements: prediction1, prediction2, relative_prediction

Feature Contributions

Get feature contributions for a person or population:

function calculate_feature_contributions(
    link: string,
    intercept: number,
    coefficients: number[],
    featureValues: number[]
): number[]

Compare feature contributions between two predictions:

function compare_feature_contributions(
    link: string,
    featureContributions1: number[],
    featureContributions2: number[]
): number[]

Get a json structure when comparing feature contributions between two predictions:

function compare_feature_contributions_json(
    link: string,
    intercept: number,
    coefficients: number[],
    featureValues1: number[],
    featureValues2: number[],
    featureNames: string[],
    oheFeatureNames: string[],
    maxFeatures: number,
    collapseOheFeatures: boolean
): PredictionExplanationItem[]

The PredictionExplanationItem structure is:

interface PredictionExplanationItem {
    feature_name: string;
    ohe_feature_name: string;
    population_contribution: number;
    row_contribution: number;
    value: number;
    relative_contribution: number;
}

Example reply:

[
    {
        feature_name: 'sex_ohe_male',
        ohe_feature_name: 'sex',
        population_contribution: 1.410004327,
        relative_contribution: 0,
        row_contribution: 1.410004327,
        value: 1
    },
    {
        feature_name: 'sex_ohe_female',
        ohe_feature_name: 'sex',
        population_contribution: 0,
        relative_contribution: 0,
        row_contribution: 0,
        value: 0
    },
    {
        feature_name: 'age_ohe_1',
        ohe_feature_name: 'age',
        population_contribution: 7.66672495444632,
        relative_contribution: 0,
        row_contribution: 7.66672495444632,
        value: 1
    },
    {
        feature_name: 'age_ohe_2',
        ohe_feature_name: 'age',
        population_contribution: 0,
        relative_contribution: 0,
        row_contribution: 0,
        value: 0
    },
    {
        feature_name: 'age_ohe_3',
        ohe_feature_name: 'age',
        population_contribution: 0,
        relative_contribution: 0,
        row_contribution: 0,
        value: 0
    },
    {
        feature_name: 'age_ohe_4',
        ohe_feature_name: 'age',
        population_contribution: 0,
        relative_contribution: 0,
        row_contribution: 0,
        value: 0
    },
    {
        feature_name: 'age_ohe_5',
        ohe_feature_name: 'age',
        population_contribution: 0,
        relative_contribution: 0,
        row_contribution: 0,
        value: 0
    },
    {
        feature_name: 'age_ohe_6',
        ohe_feature_name: 'age',
        population_contribution: 0,
        relative_contribution: 0,
        row_contribution: 0,
        value: 0
    },
    {
        feature_name: 'age_ohe_7',
        ohe_feature_name: 'age',
        population_contribution: 0,
        relative_contribution: 0,
        row_contribution: 0,
        value: 0
    },
    {
        feature_name: 'age_ohe_8',
        ohe_feature_name: 'age',
        population_contribution: 0,
        relative_contribution: 0,
        row_contribution: 0,
        value: 0
    },
    {
        feature_name: 'age_ohe_9',
        ohe_feature_name: 'age',
        population_contribution: 0,
        relative_contribution: 0,
        row_contribution: 0,
        value: 0
    },
    {
        feature_name: 'age_ohe_10',
        ohe_feature_name: 'age',
        population_contribution: 0,
        relative_contribution: 0,
        row_contribution: 0,
        value: 0
    },
    {
        feature_name: 'age_ohe_11',
        ohe_feature_name: 'age',
        population_contribution: 0,
        relative_contribution: 0,
        row_contribution: 0,
        value: 0
    },
    {
        feature_name: 'age_ohe_12',
        ohe_feature_name: 'age',
        population_contribution: 0,
        relative_contribution: 0,
        row_contribution: 0,
        value: 0
    }
]

Install

Requires node 8.16.0

once node is installed, install the package

npm install

Test

npm run test

Build

npm run build
3.0.5

4 years ago

3.0.4

4 years ago

3.0.3

4 years ago

3.0.2

4 years ago

3.0.1

4 years ago

3.0.0

4 years ago

2.1.0

4 years ago

2.0.0

4 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago