3.0.5 • Published 4 years ago
prediction-explainer v3.0.5
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