def __set_up_model_explanations(self, best_model, X_train, X_test, y_train,
                                 y_test):
     return automl_setup_model_explanations(best_model,
                                            X=X_train,
                                            X_test=X_test,
                                            y=y_train,
                                            task='classification')
Exemplo n.º 2
0
def run(raw_data):
    # Get predictions and explanations for each data point
    data = pd.read_json(raw_data, orient="records")
    # Make prediction
    predictions = automl_model.predict(data)
    # Setup for inferencing explanations
    automl_explainer_setup_obj = automl_setup_model_explanations(
        automl_model, X_test=data, task="regression")
    # Retrieve model explanations for engineered explanations
    engineered_local_importance_values = scoring_explainer.explain(
        automl_explainer_setup_obj.X_test_transform)
    # Retrieve model explanations for raw explanations
    raw_local_importance_values = scoring_explainer.explain(
        automl_explainer_setup_obj.X_test_transform, get_raw=True)
    # You can return any data type as long as it is JSON-serializable
    return {
        "predictions": predictions.tolist(),
        "engineered_local_importance_values":
        engineered_local_importance_values,
        "raw_local_importance_values": raw_local_importance_values,
    }
Exemplo n.º 3
0
def run(raw_data):

    try:
        columns = deploy_parameters.get("dataset_columns")
        data = json.loads(raw_data)["data"]
                
        input_data = pd.DataFrame.from_records(
            data, columns=columns)

        inputs_dc.collect(input_data)
        pred_array = heart_disease_model.predict(input_data)
        automl_explainer_setup_obj = automl_setup_model_explanations(heart_disease_model,
                                                                     X_test=input_data, task='classification')

        local_importance_values = explainer_model.explain(
            automl_explainer_setup_obj.X_test_transform)

        iterator = map(lambda x, y: {"prediction": HeartDiseaseTreatment(x).name, "local_importance": dict(
            zip(columns, y))}, pred_array.tolist(), local_importance_values)

        return json.dumps({"results": [*iterator]})
    except Exception as e:
        result = str(e)
        return json.dumps({"error": result})
Exemplo n.º 4
0
def run(raw_data):
    data = pd.read_json(raw_data)

    # Make prediction
    pred = model.predict(data)

    # Get raw feature importance values
    automl_explainer_setup_obj = automl_setup_model_explanations(
        model, X_test=data, task='classification')
    raw_local_importance_values = scoring_explainer.explain(
        automl_explainer_setup_obj.X_test_transform, get_raw=True)

    # Combine explanations with feature names, reverse sorted by importance score
    num_records = data.shape[0]
    explanations = []
    for i in range(num_records):
        exp_dict = dict(
            zip(automl_explainer_setup_obj.raw_feature_names,
                raw_local_importance_values[i]))
        sorted_exp_dict = dict(
            sorted(exp_dict.items(), key=lambda item: item[1], reverse=True))
        explanations.append(sorted_exp_dict)

    return {"result": pred.tolist(), "explanations": explanations}
Exemplo n.º 5
0
train_dataset = Dataset.get_by_name(workspace=ws,
                                    name='<<train_dataset_name>>')
# Drop the lablled column to get the training set.
X_train = train_dataset.drop_columns(columns=['<<target_column_name>>'])
y_train = train_dataset.keep_columns(columns=['<<target_column_name>>'],
                                     validate=True)

# Get the train dataset from the workspace
test_dataset = Dataset.get_by_name(workspace=ws, name='<<test_dataset_name>>')
# Drop the lablled column to get the testing set.
X_test = test_dataset.drop_columns(columns=['<<target_column_name>>'])

# Setup the class for explaining the AtuoML models
automl_explainer_setup_obj = automl_setup_model_explanations(fitted_model,
                                                             '<<task>>',
                                                             X=X_train,
                                                             X_test=X_test,
                                                             y=y_train)

# Initialize the Mimic Explainer
explainer = MimicWrapper(
    ws,
    automl_explainer_setup_obj.automl_estimator,
    LGBMExplainableModel,
    init_dataset=automl_explainer_setup_obj.X_transform,
    run=automl_run,
    features=automl_explainer_setup_obj.engineered_feature_names,
    feature_maps=[automl_explainer_setup_obj.feature_map],
    classes=automl_explainer_setup_obj.classes)

# Compute the engineered explanations
Exemplo n.º 6
0
                                    name="<<train_dataset_name>>")
# Drop the labeled column to get the training set.
X_train = train_dataset.drop_columns(columns=["<<target_column_name>>"])
y_train = train_dataset.keep_columns(columns=["<<target_column_name>>"],
                                     validate=True)

# Get the test dataset from the workspace
test_dataset = Dataset.get_by_name(workspace=ws, name="<<test_dataset_name>>")
# Drop the labeled column to get the testing set.
X_test = test_dataset.drop_columns(columns=["<<target_column_name>>"])

# Setup the class for explaining the AutoML models
automl_explainer_setup_obj = automl_setup_model_explanations(
    fitted_model,
    "<<task>>",
    X=X_train,
    X_test=X_test,
    y=y_train,
    automl_run=automl_run)

# Initialize the Mimic Explainer
explainer = MimicWrapper(
    ws,
    automl_explainer_setup_obj.automl_estimator,
    LGBMExplainableModel,
    init_dataset=automl_explainer_setup_obj.X_transform,
    run=automl_explainer_setup_obj.automl_run,
    features=automl_explainer_setup_obj.engineered_feature_names,
    feature_maps=[automl_explainer_setup_obj.feature_map],
    classes=automl_explainer_setup_obj.classes,
)
train_dataset = Dataset.get_by_name(workspace=ws,
                                    name='machineData_train_dataset')
# Drop the lablled column to get the training set.
X_train = train_dataset.drop_columns(columns=['<<target_column_name>>'])
y_train = train_dataset.keep_columns(columns=['<<target_column_name>>'],
                                     validate=True)

# Get the train dataset from the workspace
test_dataset = Dataset.get_by_name(workspace=ws, name='<<test_dataset_name>>')
# Drop the lablled column to get the testing set.
X_test = test_dataset.drop_columns(columns=['<<target_column_name>>'])

# Setup the class for explaining the AtuoML models
automl_explainer_setup_obj = automl_setup_model_explanations(fitted_model,
                                                             'classification',
                                                             X=X_train,
                                                             X_test=X_test,
                                                             y=y_train)

# Initialize the Mimic Explainer
explainer = MimicWrapper(
    ws,
    automl_explainer_setup_obj.automl_estimator,
    LGBMExplainableModel,
    init_dataset=automl_explainer_setup_obj.X_transform,
    run=automl_run,
    features=automl_explainer_setup_obj.engineered_feature_names,
    feature_maps=[automl_explainer_setup_obj.feature_map],
    classes=automl_explainer_setup_obj.classes)

# Compute the engineered explanations