{ "cells": [ { "cell_type": "markdown", "id": "f110e018", "metadata": {}, "source": [ "# Visualising predictions\n", "\n", "Splink contains a variety of tools to help you visualise your predictions.\n", "\n", "The idea is that, by developing an understanding of how your model works, you can gain confidence that the predictions it makes are sensible, or alternatively find examples of where your model isn't working, which may help you improve the model specification and fix these problems.\n", "\n" ] }, { "cell_type": "code", "execution_count": 1, "id": "fb29d421", "metadata": {}, "outputs": [], "source": [ "# Rerun our predictions to we're ready to view the charts\n", "from splink.duckdb.duckdb_linker import DuckDBLinker\n", "import pandas as pd \n", "import altair as alt\n", "alt.renderers.enable('mimetype')\n", "\n", "df = pd.read_csv(\"./data/fake_1000.csv\")\n", "linker = DuckDBLinker(df)\n", "linker.load_settings_from_json(\"./demo_settings/saved_model_from_demo.json\")\n", "df_predictions = linker.predict(threshold_match_probability=0.2)" ] }, { "cell_type": "markdown", "id": "7b0dedd9", "metadata": {}, "source": [ "## Waterfall chart\n", "\n", "The waterfall chart provides a means of visualising individual predictions to understand how Splink computed the final matchweight for a particular pairwise record comparison.\n", "\n", "To plot a waterfall chart, the user chooses one or more records from the results of `linker.predict()`, and provides these records to the [`linker.waterfall_chart()`](https://moj-analytical-services.github.io/splink/linkerqa.html#splink.linker.Linker.waterfall_chart) function.\n", "\n", "For an introduction to waterfall charts and how to interpret them, please see [this](https://www.youtube.com/watch?v=msz3T741KQI&t=507s) video." ] }, { "cell_type": "code", "execution_count": 2, "id": "bbfdc70c", "metadata": {}, "outputs": [ { "data": { "application/vnd.vegalite.v4+json": { "$schema": "https://vega.github.io/schema/vega-lite/v5.2.0.json", "config": { "view": { "continuousHeight": 300, "continuousWidth": 400 } }, "data": { "values": [ { "bar_sort_order": 0, "bayes_factor": 0.0033430420247643373, "bayes_factor_description": null, "column_name": "Prior", "comparison_vector_value": null, "label_for_charts": "Starting match weight (prior)", "log2_bayes_factor": -8.224622793739668, "m_probability": null, "record_number": 0, "sql_condition": null, "term_frequency_adjustment": null, "u_probability": null, "value_l": "", "value_r": "" }, { "bar_sort_order": 1, "bayes_factor": 85.80338234594069, "bayes_factor_description": "If comparison level is `exact match` then comparison is 85.80 times more likely to be a match", "column_name": "first_name", "comparison_vector_value": 1, "label_for_charts": "Exact match", "log2_bayes_factor": 6.422962614378335, "m_probability": 0.4971080217684876, "record_number": 0, "sql_condition": "\"first_name_l\" = \"first_name_r\"", "term_frequency_adjustment": false, "u_probability": 0.0057935713975033705, "value_l": "Grace", "value_r": "Grace" }, { "bar_sort_order": 2, "bayes_factor": 1, "bayes_factor_description": "If comparison level is `null` then comparison is 1.00 times more likely to be a match", "column_name": "surname", "comparison_vector_value": -1, "label_for_charts": "Null", "log2_bayes_factor": 0, "m_probability": null, "record_number": 0, "sql_condition": "\"surname_l\" IS NULL OR \"surname_r\" IS NULL", "term_frequency_adjustment": false, "u_probability": null, "value_l": "nan", "value_r": "Kelly" }, { "bar_sort_order": 3, "bayes_factor": 92.7048728526088, "bayes_factor_description": "If comparison level is `levenshtein <= 1` then comparison is 92.70 times more likely to be a match", "column_name": "dob", "comparison_vector_value": 1, "label_for_charts": "levenshtein <= 1", "log2_bayes_factor": 6.534573268209908, "m_probability": 0.1484762728370111, "record_number": 0, "sql_condition": "levenshtein(\"dob_l\", \"dob_r\") <= 1", "term_frequency_adjustment": false, "u_probability": 0.0016016016016016017, "value_l": "1997-04-26", "value_r": "1991-04-26" }, { "bar_sort_order": 4, "bayes_factor": 1, "bayes_factor_description": "If comparison level is `null` then comparison is 1.00 times more likely to be a match", "column_name": "city", "comparison_vector_value": -1, "label_for_charts": "Null", "log2_bayes_factor": 0, "m_probability": null, "record_number": 0, "sql_condition": "\"city_l\" IS NULL OR \"city_r\" IS NULL", "term_frequency_adjustment": false, "u_probability": null, "value_l": "Hull", "value_r": "nan" }, { "bar_sort_order": 5, "bayes_factor": 1, "bayes_factor_description": "If comparison level is `null` then comparison is 1.00 times more likely to be a match", "column_name": "tf_city", "comparison_vector_value": -1, "label_for_charts": "Null", "log2_bayes_factor": 0, "m_probability": null, "record_number": 0, "sql_condition": "\"city_l\" IS NULL OR \"city_r\" IS NULL", "term_frequency_adjustment": true, "u_probability": null, "value_l": "", "value_r": "" }, { "bar_sort_order": 6, "bayes_factor": 255.301619971695, "bayes_factor_description": "If comparison level is `exact match` then comparison is 255.30 times more likely to be a match", "column_name": "email", "comparison_vector_value": 3, "label_for_charts": "Exact match", "log2_bayes_factor": 7.99605888191739, "m_probability": 0.560098900557462, "record_number": 0, "sql_condition": "\"email_l\" = \"email_r\"", "term_frequency_adjustment": false, "u_probability": 0.0021938713143283602, "value_l": "grace.kelly52@jones.com", "value_r": "grace.kelly52@jones.com" }, { "bar_sort_order": 7, "bayes_factor": 6788.946358023842, "bayes_factor_description": null, "column_name": "Final score", "comparison_vector_value": null, "label_for_charts": "Final score", "log2_bayes_factor": 12.728971970765965, "m_probability": null, "record_number": 0, "sql_condition": null, "term_frequency_adjustment": null, "u_probability": null, "value_l": "", "value_r": "" }, { "bar_sort_order": 0, "bayes_factor": 0.0033430420247643373, "bayes_factor_description": null, "column_name": "Prior", "comparison_vector_value": null, "label_for_charts": "Starting match weight (prior)", "log2_bayes_factor": -8.224622793739668, "m_probability": null, "record_number": 1, "sql_condition": null, "term_frequency_adjustment": null, "u_probability": null, "value_l": "", "value_r": "" }, { "bar_sort_order": 1, "bayes_factor": 85.80338234594069, "bayes_factor_description": "If comparison level is `exact match` then comparison is 85.80 times more likely to be a match", "column_name": "first_name", "comparison_vector_value": 1, "label_for_charts": "Exact match", "log2_bayes_factor": 6.422962614378335, "m_probability": 0.4971080217684876, "record_number": 1, "sql_condition": "\"first_name_l\" = \"first_name_r\"", "term_frequency_adjustment": false, "u_probability": 0.0057935713975033705, "value_l": "Thomas", "value_r": "Thomas" }, { "bar_sort_order": 2, "bayes_factor": 89.48089949369762, "bayes_factor_description": "If comparison level is `exact match` then comparison is 89.48 times more likely to be a match", "column_name": "surname", "comparison_vector_value": 3, "label_for_charts": "Exact match", "log2_bayes_factor": 6.483507853838869, "m_probability": 0.43755941072712773, "record_number": 1, "sql_condition": "\"surname_l\" = \"surname_r\"", "term_frequency_adjustment": false, "u_probability": 0.004889975550122249, "value_l": "Gabriel", "value_r": "Gabriel" }, { "bar_sort_order": 3, "bayes_factor": 92.7048728526088, "bayes_factor_description": "If comparison level is `levenshtein <= 1` then comparison is 92.70 times more likely to be a match", "column_name": "dob", "comparison_vector_value": 1, "label_for_charts": "levenshtein <= 1", "log2_bayes_factor": 6.534573268209908, "m_probability": 0.1484762728370111, "record_number": 1, "sql_condition": "levenshtein(\"dob_l\", \"dob_r\") <= 1", "term_frequency_adjustment": false, "u_probability": 0.0016016016016016017, "value_l": "1976-09-15", "value_r": "1976-08-15" }, { "bar_sort_order": 4, "bayes_factor": 1, "bayes_factor_description": "If comparison level is `null` then comparison is 1.00 times more likely to be a match", "column_name": "city", "comparison_vector_value": -1, "label_for_charts": "Null", "log2_bayes_factor": 0, "m_probability": null, "record_number": 1, "sql_condition": "\"city_l\" IS NULL OR \"city_r\" IS NULL", "term_frequency_adjustment": false, "u_probability": null, "value_l": "Loodon", "value_r": "nan" }, { "bar_sort_order": 5, "bayes_factor": 1, "bayes_factor_description": "If comparison level is `null` then comparison is 1.00 times more likely to be a match", "column_name": "tf_city", "comparison_vector_value": -1, "label_for_charts": "Null", "log2_bayes_factor": 0, "m_probability": null, "record_number": 1, "sql_condition": "\"city_l\" IS NULL OR \"city_r\" IS NULL", "term_frequency_adjustment": true, "u_probability": null, "value_l": "", "value_r": "" }, { "bar_sort_order": 6, "bayes_factor": 1, "bayes_factor_description": "If comparison level is `null` then comparison is 1.00 times more likely to be a match", "column_name": "email", "comparison_vector_value": -1, "label_for_charts": "Null", "log2_bayes_factor": 0, "m_probability": null, "record_number": 1, "sql_condition": "\"email_l\" IS NULL OR \"email_r\" IS NULL", "term_frequency_adjustment": false, "u_probability": null, "value_l": "gabriel.t54@nnichls.info", "value_r": "nan" }, { "bar_sort_order": 7, "bayes_factor": 2379.4640503957107, "bayes_factor_description": null, "column_name": "Final score", "comparison_vector_value": null, "label_for_charts": "Final score", "log2_bayes_factor": 11.216420942687444, "m_probability": null, "record_number": 1, "sql_condition": null, "term_frequency_adjustment": null, "u_probability": null, "value_l": "", "value_r": "" }, { "bar_sort_order": 0, "bayes_factor": 0.0033430420247643373, "bayes_factor_description": null, "column_name": "Prior", "comparison_vector_value": null, "label_for_charts": "Starting match weight (prior)", "log2_bayes_factor": -8.224622793739668, "m_probability": null, "record_number": 2, "sql_condition": null, "term_frequency_adjustment": null, "u_probability": null, "value_l": "", "value_r": "" }, { "bar_sort_order": 1, "bayes_factor": 85.80338234594069, "bayes_factor_description": "If comparison level is `exact match` then comparison is 85.80 times more likely to be a match", "column_name": "first_name", "comparison_vector_value": 1, "label_for_charts": "Exact match", "log2_bayes_factor": 6.422962614378335, "m_probability": 0.4971080217684876, "record_number": 2, "sql_condition": "\"first_name_l\" = \"first_name_r\"", "term_frequency_adjustment": false, "u_probability": 0.0057935713975033705, "value_l": "Thomas", "value_r": "Thomas" }, { "bar_sort_order": 2, "bayes_factor": 89.48089949369762, "bayes_factor_description": "If comparison level is `exact match` then comparison is 89.48 times more likely to be a match", "column_name": "surname", "comparison_vector_value": 3, "label_for_charts": "Exact match", "log2_bayes_factor": 6.483507853838869, "m_probability": 0.43755941072712773, "record_number": 2, "sql_condition": "\"surname_l\" = \"surname_r\"", "term_frequency_adjustment": false, "u_probability": 0.004889975550122249, "value_l": "Gabriel", "value_r": "Gabriel" }, { "bar_sort_order": 3, "bayes_factor": 92.7048728526088, "bayes_factor_description": "If comparison level is `levenshtein <= 1` then comparison is 92.70 times more likely to be a match", "column_name": "dob", "comparison_vector_value": 1, "label_for_charts": "levenshtein <= 1", "log2_bayes_factor": 6.534573268209908, "m_probability": 0.1484762728370111, "record_number": 2, "sql_condition": "levenshtein(\"dob_l\", \"dob_r\") <= 1", "term_frequency_adjustment": false, "u_probability": 0.0016016016016016017, "value_l": "1976-09-15", "value_r": "1976-08-15" }, { "bar_sort_order": 4, "bayes_factor": 1, "bayes_factor_description": "If comparison level is `null` then comparison is 1.00 times more likely to be a match", "column_name": "city", "comparison_vector_value": -1, "label_for_charts": "Null", "log2_bayes_factor": 0, "m_probability": null, "record_number": 2, "sql_condition": "\"city_l\" IS NULL OR \"city_r\" IS NULL", "term_frequency_adjustment": false, "u_probability": null, "value_l": "London", "value_r": "nan" }, { "bar_sort_order": 5, "bayes_factor": 1, "bayes_factor_description": "If comparison level is `null` then comparison is 1.00 times more likely to be a match", "column_name": "tf_city", "comparison_vector_value": -1, "label_for_charts": "Null", "log2_bayes_factor": 0, "m_probability": null, "record_number": 2, "sql_condition": "\"city_l\" IS NULL OR \"city_r\" IS NULL", "term_frequency_adjustment": true, "u_probability": null, "value_l": "", "value_r": "" }, { "bar_sort_order": 6, "bayes_factor": 1, "bayes_factor_description": "If comparison level is `null` then comparison is 1.00 times more likely to be a match", "column_name": "email", "comparison_vector_value": -1, "label_for_charts": "Null", "log2_bayes_factor": 0, "m_probability": null, "record_number": 2, "sql_condition": "\"email_l\" IS NULL OR \"email_r\" IS NULL", "term_frequency_adjustment": false, "u_probability": null, "value_l": "gabriel.t54@nichols.info", "value_r": "nan" }, { "bar_sort_order": 7, "bayes_factor": 2379.4640503957107, "bayes_factor_description": null, "column_name": "Final score", "comparison_vector_value": null, "label_for_charts": "Final score", "log2_bayes_factor": 11.216420942687444, "m_probability": null, "record_number": 2, "sql_condition": null, "term_frequency_adjustment": null, "u_probability": null, "value_l": "", "value_r": "" }, { "bar_sort_order": 0, "bayes_factor": 0.0033430420247643373, "bayes_factor_description": null, "column_name": "Prior", "comparison_vector_value": null, "label_for_charts": "Starting match weight (prior)", "log2_bayes_factor": -8.224622793739668, "m_probability": null, "record_number": 3, "sql_condition": null, "term_frequency_adjustment": null, "u_probability": null, "value_l": "", "value_r": "" }, { "bar_sort_order": 1, "bayes_factor": 85.80338234594069, "bayes_factor_description": "If comparison level is `exact match` then comparison is 85.80 times more likely to be a match", "column_name": "first_name", "comparison_vector_value": 1, "label_for_charts": "Exact match", "log2_bayes_factor": 6.422962614378335, "m_probability": 0.4971080217684876, "record_number": 3, "sql_condition": "\"first_name_l\" = \"first_name_r\"", "term_frequency_adjustment": false, "u_probability": 0.0057935713975033705, "value_l": "Theodore", "value_r": "Theodore" }, { "bar_sort_order": 2, "bayes_factor": 0.2679937130198923, "bayes_factor_description": "If comparison level is `all other comparisons` then comparison is 3.73 times less likely to be a match", "column_name": "surname", "comparison_vector_value": 0, "label_for_charts": "All other comparisons", "log2_bayes_factor": -1.8997289386125742, "m_probability": 0.2647071056028749, "record_number": 3, "sql_condition": "ELSE", "term_frequency_adjustment": false, "u_probability": 0.9877362517949315, "value_l": "Morris", "value_r": "Marshall" }, { "bar_sort_order": 3, "bayes_factor": 0.46419793122630476, "bayes_factor_description": "If comparison level is `all other comparisons` then comparison is 2.15 times less likely to be a match", "column_name": "dob", "comparison_vector_value": 0, "label_for_charts": "All other comparisons", "log2_bayes_factor": -1.107188001796095, "m_probability": 0.4626431701873826, "record_number": 3, "sql_condition": "ELSE", "term_frequency_adjustment": false, "u_probability": 0.9966506506506506, "value_l": "1978-08-19", "value_r": "1972-07-25" }, { "bar_sort_order": 4, "bayes_factor": 10.264353562890939, "bayes_factor_description": "If comparison level is `exact match` then comparison is 10.26 times more likely to be a match", "column_name": "city", "comparison_vector_value": 1, "label_for_charts": "Exact match", "log2_bayes_factor": 3.3595708659307335, "m_probability": 0.5660541687277061, "record_number": 3, "sql_condition": "\"city_l\" = \"city_r\"", "term_frequency_adjustment": false, "u_probability": 0.0551475711801453, "value_l": "Birmingham", "value_r": "Birmingham" }, { "bar_sort_order": 5, "bayes_factor": 1.1208743842364532, "bayes_factor_description": "Term frequency adjustment on city makes comparison 1.12 times more likely to be a match", "column_name": "tf_city", "comparison_vector_value": 1, "label_for_charts": "Term freq adjustment on city with weight {cl.tf_adjustment_weight}", "log2_bayes_factor": 0.16462460517844008, "m_probability": null, "record_number": 3, "sql_condition": "\"city_l\" = \"city_r\"", "term_frequency_adjustment": true, "u_probability": null, "value_l": "Birmingham", "value_r": "Birmingham" }, { "bar_sort_order": 6, "bayes_factor": 1, "bayes_factor_description": "If comparison level is `null` then comparison is 1.00 times more likely to be a match", "column_name": "email", "comparison_vector_value": -1, "label_for_charts": "Null", "log2_bayes_factor": 0, "m_probability": null, "record_number": 3, "sql_condition": "\"email_l\" IS NULL OR \"email_r\" IS NULL", "term_frequency_adjustment": false, "u_probability": null, "value_l": "t.m39@brooks-sawyer.com", "value_r": "nan" }, { "bar_sort_order": 7, "bayes_factor": 0.4105467305139934, "bayes_factor_description": null, "column_name": "Final score", "comparison_vector_value": null, "label_for_charts": "Final score", "log2_bayes_factor": -1.2843816486608277, "m_probability": null, "record_number": 3, "sql_condition": null, "term_frequency_adjustment": null, "u_probability": null, "value_l": "", "value_r": "" }, { "bar_sort_order": 0, "bayes_factor": 0.0033430420247643373, "bayes_factor_description": null, "column_name": "Prior", "comparison_vector_value": null, "label_for_charts": "Starting match weight (prior)", "log2_bayes_factor": -8.224622793739668, "m_probability": null, "record_number": 4, "sql_condition": null, "term_frequency_adjustment": null, "u_probability": null, "value_l": "", "value_r": "" }, { "bar_sort_order": 1, "bayes_factor": 85.80338234594069, "bayes_factor_description": "If comparison level is `exact match` then comparison is 85.80 times more likely to be a match", "column_name": "first_name", "comparison_vector_value": 1, "label_for_charts": "Exact match", "log2_bayes_factor": 6.422962614378335, "m_probability": 0.4971080217684876, "record_number": 4, "sql_condition": "\"first_name_l\" = \"first_name_r\"", "term_frequency_adjustment": false, "u_probability": 0.0057935713975033705, "value_l": "Theodore", "value_r": "Theodore" }, { "bar_sort_order": 2, "bayes_factor": 0.2679937130198923, "bayes_factor_description": "If comparison level is `all other comparisons` then comparison is 3.73 times less likely to be a match", "column_name": "surname", "comparison_vector_value": 0, "label_for_charts": "All other comparisons", "log2_bayes_factor": -1.8997289386125742, "m_probability": 0.2647071056028749, "record_number": 4, "sql_condition": "ELSE", "term_frequency_adjustment": false, "u_probability": 0.9877362517949315, "value_l": "Morris", "value_r": "Marshall" }, { "bar_sort_order": 3, "bayes_factor": 0.46419793122630476, "bayes_factor_description": "If comparison level is `all other comparisons` then comparison is 2.15 times less likely to be a match", "column_name": "dob", "comparison_vector_value": 0, "label_for_charts": "All other comparisons", "log2_bayes_factor": -1.107188001796095, "m_probability": 0.4626431701873826, "record_number": 4, "sql_condition": "ELSE", "term_frequency_adjustment": false, "u_probability": 0.9966506506506506, "value_l": "1978-08-19", "value_r": "1972-07-25" }, { "bar_sort_order": 4, "bayes_factor": 10.264353562890939, "bayes_factor_description": "If comparison level is `exact match` then comparison is 10.26 times more likely to be a match", "column_name": "city", "comparison_vector_value": 1, "label_for_charts": "Exact match", "log2_bayes_factor": 3.3595708659307335, "m_probability": 0.5660541687277061, "record_number": 4, "sql_condition": "\"city_l\" = \"city_r\"", "term_frequency_adjustment": false, "u_probability": 0.0551475711801453, "value_l": "Birmingham", "value_r": "Birmingham" }, { "bar_sort_order": 5, "bayes_factor": 1.1208743842364532, "bayes_factor_description": "Term frequency adjustment on city makes comparison 1.12 times more likely to be a match", "column_name": "tf_city", "comparison_vector_value": 1, "label_for_charts": "Term freq adjustment on city with weight {cl.tf_adjustment_weight}", "log2_bayes_factor": 0.16462460517844008, "m_probability": null, "record_number": 4, "sql_condition": "\"city_l\" = \"city_r\"", "term_frequency_adjustment": true, "u_probability": null, "value_l": "Birmingham", "value_r": "Birmingham" }, { "bar_sort_order": 6, "bayes_factor": 1, "bayes_factor_description": "If comparison level is `null` then comparison is 1.00 times more likely to be a match", "column_name": "email", "comparison_vector_value": -1, "label_for_charts": "Null", "log2_bayes_factor": 0, "m_probability": null, "record_number": 4, "sql_condition": "\"email_l\" IS NULL OR \"email_r\" IS NULL", "term_frequency_adjustment": false, "u_probability": null, "value_l": "t.m39@brooks-sawyer.com", "value_r": "nan" }, { "bar_sort_order": 7, "bayes_factor": 0.4105467305139934, "bayes_factor_description": null, "column_name": "Final score", "comparison_vector_value": null, "label_for_charts": "Final score", "log2_bayes_factor": -1.2843816486608277, "m_probability": null, "record_number": 4, "sql_condition": null, "term_frequency_adjustment": null, "u_probability": null, "value_l": "", "value_r": "" } ] }, "height": 450, "layer": [ { "layer": [ { "encoding": { "color": { "value": "black" }, "size": { "value": 0.5 }, "y": { "field": "zero", "type": "quantitative" } }, "mark": "rule" }, { "encoding": { "color": { "condition": { "test": "(datum.log2_bayes_factor < 0)", "value": "red" }, "value": "green" }, "opacity": { "condition": { "test": "datum.column_name == 'Prior match weight' || datum.column_name == 'Final score'", "value": 1 }, "value": 0.5 }, "tooltip": [ { "field": "column_name", "title": "Comparison column", "type": "nominal" }, { "field": "value_l", "title": "Value (L)", "type": "nominal" }, { "field": "value_r", "title": "Value (R)", "type": "nominal" }, { "field": "label_for_charts", "title": "Label", "type": "ordinal" }, { "field": "sql_condition", "title": "SQL condition", "type": "nominal" }, { "field": "comparison_vector_value", "title": "Comparison vector value", "type": "nominal" }, { "field": "bayes_factor", "format": ",.4f", "title": "Bayes factor = m/u", "type": "quantitative" }, { "field": "log2_bayes_factor", "format": ",.4f", "title": "Match weight = log2(m/u)", "type": "quantitative" }, { "field": "prob", "format": ".4f", "title": "Adjusted match score", "type": "quantitative" }, { "field": "bayes_factor_description", "title": "Match weight description", "type": "nominal" } ], "x": { "axis": { "grid": true, "labelAlign": "center", "labelAngle": -20, "labelExpr": "datum.value == 'Prior' || datum.value == 'Final score' ? '' : datum.value", "labelPadding": 10, "tickBand": "extent", "title": "Column" }, "field": "column_name", "sort": { "field": "bar_sort_order", "order": "ascending" }, "type": "nominal" }, "y": { "axis": { "grid": false, "orient": "left", "title": "log2(Bayes factor)" }, "field": "previous_sum", "type": "quantitative" }, "y2": { "field": "sum" } }, "mark": { "type": "bar", "width": 60 } }, { "encoding": { "color": { "value": "white" }, "text": { "condition": { "field": "log2_bayes_factor", "format": ".2f", "test": "abs(datum.log2_bayes_factor) > 1", "type": "nominal" }, "value": "" }, "x": { "axis": { "labelAngle": 0, "title": "Column" }, "field": "column_name", "sort": { "field": "bar_sort_order", "order": "ascending" }, "type": "nominal" }, "y": { "axis": { "orient": "left" }, "field": "center", "type": "quantitative" } }, "mark": { "fontWeight": "bold", "type": "text" } }, { "encoding": { "color": { "value": "black" }, "text": { "field": "column_name", "type": "nominal" }, "x": { "axis": { "labelAngle": 0, "title": "Column" }, "field": "column_name", "sort": { "field": "bar_sort_order", "order": "ascending" }, "type": "nominal" }, "y": { "field": "sum_top", "type": "quantitative" } }, "mark": { "baseline": "bottom", "dy": -25, "fontWeight": "bold", "type": "text" } }, { "encoding": { "color": { "value": "grey" }, "text": { "field": "value_l", "type": "nominal" }, "x": { "axis": { "labelAngle": 0, "title": "Column" }, "field": "column_name", "sort": { "field": "bar_sort_order", "order": "ascending" }, "type": "nominal" }, "y": { "field": "sum_top", "type": "quantitative" } }, "mark": { "baseline": "bottom", "dy": -13, "fontSize": 8, "type": "text" } }, { "encoding": { "color": { "value": "grey" }, "text": { "field": "value_r", "type": "nominal" }, "x": { "axis": { "labelAngle": 0, "title": "Column" }, "field": "column_name", "sort": { "field": "bar_sort_order", "order": "ascending" }, "type": "nominal" }, "y": { "field": "sum_top", "type": "quantitative" } }, "mark": { "baseline": "bottom", "dy": -5, "fontSize": 8, "type": "text" } } ] }, { "encoding": { "x": { "axis": { "labelAngle": 0, "title": "Column" }, "field": "column_name", "sort": { "field": "bar_sort_order", "order": "ascending" }, "type": "nominal" }, "x2": { "field": "lead" }, "y": { "axis": { "labelExpr": "format(1 / (1 + pow(2, -1*datum.value)), '.2r')", "orient": "right", "title": "Probability" }, "field": "sum", "scale": { "zero": false }, "type": "quantitative" } }, "mark": { "color": "black", "strokeWidth": 2, "type": "rule", "x2Offset": 30, "xOffset": -30 } } ], "params": [ { "bind": { "input": "range", "max": 4, "min": 0, "step": 1 }, "description": "Filter by the interation number", "name": "record_number", "value": 0 } ], "resolve": { "axis": { "y": "independent" } }, "title": { "subtitle": "How each comparison contributes to the final match score", "text": "Match weights waterfall chart" }, "transform": [ { "filter": "(datum.record_number == record_number)" }, { "frame": [ null, 0 ], "window": [ { "as": "sum", "field": "log2_bayes_factor", "op": "sum" }, { "as": "lead", "field": "column_name", "op": "lead" } ] }, { "as": "sum", "calculate": "datum.column_name === \"Final score\" ? datum.sum - datum.log2_bayes_factor : datum.sum" }, { "as": "lead", "calculate": "datum.lead === null ? datum.column_name : datum.lead" }, { "as": "previous_sum", "calculate": "datum.column_name === \"Final score\" || datum.column_name === \"Prior match weight\" ? 0 : datum.sum - datum.log2_bayes_factor" }, { "as": "top_label", "calculate": "datum.sum > datum.previous_sum ? datum.column_name : \"\"" }, { "as": "bottom_label", "calculate": "datum.sum < datum.previous_sum ? datum.column_name : \"\"" }, { "as": "sum_top", "calculate": "datum.sum > datum.previous_sum ? datum.sum : datum.previous_sum" }, { "as": "sum_bottom", "calculate": "datum.sum < datum.previous_sum ? datum.sum : datum.previous_sum" }, { "as": "center", "calculate": "(datum.sum + datum.previous_sum) / 2" }, { "as": "text_log2_bayes_factor", "calculate": "(datum.log2_bayes_factor > 0 ? \"+\" : \"\") + datum.log2_bayes_factor" }, { "as": "dy", "calculate": "datum.sum < datum.previous_sum ? 4 : -4" }, { "as": "baseline", "calculate": "datum.sum < datum.previous_sum ? \"top\" : \"bottom\"" }, { "as": "prob", "calculate": "1. / (1 + pow(2, -1.*datum.sum))" }, { "as": "zero", "calculate": "0*datum.sum" } ], "width": { "step": 75 } }, "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsQAAAIoCAYAAABu0/16AAAAAXNSR0IArs4c6QAAIABJREFUeF7snQeYFUX2tw8ZJCkSBEUw56yLogIqi5hzxIA5ra4Cilkwoyi6uquY15xwlUXXxRyQRUFcFBWVv6uoCAYUERFBvuet/Xr2Mt47c+rOvTN9L7/y4QFnTldX/ep099unT1XVW7JkyRJTkQJSQApIASkgBaSAFJACy6gC9QTEy+jIq9tSQApIASkgBaSAFJACQQEBsRxBCkgBKSAFpIAUkAJSYJlWQEC8TA+/Oi8FpIAUkAJSQApIASkgIJYPSAEpIAWkgBSQAlJACizTCgiIl+nhV+elgBSQAlJACkgBKSAFBMTyASmwDCqQubhMvXr1KhTI9fNSlWjhwoX2008/WdOmTa1Jkyal2o2itHvu3Lmh3latWlVZf+ITiZ/w/5k+U5TGqVIpIAWkQC0rICCuZcF1OimQBgXWWWcd++CDD0JTxo0bZ927dw//7tOnjz3zzDPh32PGjLHddtutyuZOmTLFXn/9devWrZtttNFGVdr++9//tk033dT22Wcfe+yxx2pFhj//+c/2hz/8wYYOHWoXXnhhtec88MAD7ZFHHrGJEyfaFlts8Rv7p59+2j777LPQhxVXXLHa+gpt8NVXX9kTTzxhq666ahirfMr3339vPXr0MMbuyCOPtLvuuitnNVOnTrUNN9zQdtxxR3vuueds5MiRduKJJ9pll11m5557rvv0xRj7uh4Ld+dlKAWkQEkoICAuiWFSI6VAYRXIBOJhw4bZWWedZT///HOIpCbl73//u+2+++5VnnjEiBE2YMAAu+GGGwJ4VlUmT55sm2++eYBsYLs2yvPPP28PPvig7bHHHuFPdWXvvfcOwDlhwgT73e9+9xvzPffc09DlzTfftM0226y66gr+e0B9q622qtFLxeOPPx6Op55LL720SrB+5513wotOAsQ333yznXTSSeG48847z92/Yox9XY+Fu/MylAJSoCQUEBCXxDCpkVKgsAokQNyyZUvbbrvt7KmnnrJ//etfts022xg/++GHHwL4AcSTJk2yCy64IPzdpUuXYH/22WeH/z/99NNDpHnttdcOUH3MMccEoLz66qvtww8/tF69ehmQecghh1gCRdtvv32wp37qu+KKK2ynnXZaqoP/+Mc/ws932GGHEN299dZb7Z577rF99903nPPGG2+0hx9+OPz797//vQ0ZMsQAPQr1Dx8+3Nq2bRsi0dddd50dffTR1r9//5A+AcjRxhYtWtgf//jHECGlDvqYAPFFF11kf/vb3+zbb781wOuqq64yos2AINpsu+22ds011wSoBBI5N1FQ+nvcccdZ79698+4PLwxXXnllaDvnJ/p+0EEHBUDv169fiOgzRkcddZRdf/31Nn36dDvnnHPspZdespVWWin0gb40bNjQBg4caG+88UaA2Jtuusm23nrr0HfGbPXVV7djjz02vNBkO98BBxxgsUBck7F/4IEHgsb4zSabbBIgfNCgQaEfRLRXXnnl4Ht/+ctfgl/Sn8yxQCcVKSAFpEC+CgiI81VOx0mBElYgAWKghxQBcm2BqzPPPDNED4FBgHWXXXaxTp062ezZs8PPSRcAsIDLI444IgAL0VLAELBq165dBQwChy+++GJQiYgw9RAhpqyyyiohd/Xdd98N/z9v3jxr3rx5haJA3pprrmnt27e3WbNm2a677mpAMkA3fvz4AEaAIcAGMNMHILtNmzYB7Pk3dQOrmSkTl1xySUidACg7duxYkTZy2GGHBeBOgJiGZLb/8ssvt+WXXz6AN1oQbea86AEwA+FAHKBOm2k/wJ2UmP7QfkAVYAW8aReF/tKOJ598MpwDyGW81l133dAO2vvpp5/a//3f/4XfAY59+/a1f/7znxXtAJxfeOGFoNHGG28c0h8aN26c9XwfffRReIHwRohJqUheBGLHnvbTD8Zlr732srFjxwad//rXvwY/q5yzjPbAc+ZY1EXEvoRvAWq6FJAClRQQEMslpMAyqEACxH/605/stNNOCykCF198sc2cOTOkAtx+++0BiIkY82+ircDZvffeG6Kk/PvVV1+1yikT+++/v40aNcpuueWWECl99NFH7e677w6QAwwnQAxoAWJAJlE+gBEAzCxJGz/55JOQx4odhagp4AtU024ih5T33nsvTJwDyoBCAI2fZQIx0Eru7Pvvv2/Uf+qppwaIrQzERISBTSLTxx9/fIgwo0Plz/RoR7rIzjvvHKCSwqQz9OEFILY/M2bMCLrT7p49e9qiRYvs4IMPDsD77LPPWuvWrZdKmeBFgLxngBx4/Oabb8LvKUya44UHIOZvUmNWW221ij7xcnD++edXeb4OHTq4gbgmY8/Y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3IbuMNTO2/48+9OEP9kfn/5j1uF/4cgXrFfXXnbwowdbu+btbFjvYXbykyfbcx8/ZzPOmGH/+e4/ttr1q8W6joA4QjEBcYRYaTeNuWmmvS/Fbp+08itc11q9//77dtJJJ9m7775re++9t91yyy2WAPG4cePsjDPOsDfeeMPWXnttu+CCC+ywww6zBIgHDBhgDz/8cIA/IoVrrbWWv+N5WNa1VjQZ0CNySVrArrvuapdffnnoyU477WQHHnigAYUXXXSRtWzZ0k4++WR7/vnnrVu3bnbDDTeEyCfAvNdeewXoK2apDa14CUj6ii/861//sn/+85/Wvn17u+yyy4wvCdkKGtH/Rx991Dp27GgHHHCAnXnmmSG6ft9994U6DjroIHvmmWdslVVWseOPP97+/ve/Bz379+9vTz/9tF144YU2dOhQ22WXXWosY4xWAuLaBeJkcGcOnGkrtVipAohXabWKLf51sc2cN9PePeVdW6/tetb/8f7213//9Tf+cMiGh9j9+91vL/znBdvxrztW/P7ELU+0S3e81FZstqKd/ezZNmzcsBr5kiLEVcsnIK6Re6Xr4JibZrpaXvutkVZ+zetaKyD4iSeesGOOOcbGjx8fwBggJmWiU6dOoSN/+MMfArxMmTLFPvvss/ApnAgx4LPZZpsFgAFqgONilrrWavr06bbmmmsGSANs//KXv9jVV18dtEtSJvj5PvvsE0CP31966aX24osv2g8//GCPP/64HX744fbUU08VBOSq0ro2tHruueeW6uuHH34YXq522223AKtbbLFF1ibefffdduSRR4Z0CCLKRIaB6ccee6wiZeKBBx4IL2Noec4559jvfve7EHl++eWXA2iTsvPNN98E3WtaYrQSEKcDiBlzUh3GHzPe1myzps2YO8O6XtfVfl3y62/c4YuBX1iH5h2s/dXtl8oTJt/37O3OtqYNm9rTHz1tu9xXs5crAbGAuKb3opI5PuamWTKdKlJDpZVf2LrU6scff7QWLVqEqNudd95pzz77rP3+978PQLzffvsFYLn55pvthBNOMKLF2223XUilePPNNwMQz5o1K0Dx7rvvHqCG+oo5IaoutWJEeUkgEvrBBx+EaPg//vGPAHQbbbTRUjnEmWkE6EREnZeOhx56KEQ6AblGjRr5nSQPy9rSKrOvX331VfCHc889N0SIcxVeGiZM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JSAWEHt9PcavvHWWq5208o9sjFYC4nggJnvgp59+qpL95s6dm3VeGXPQ5syZY+3atfMPaC1autYhJkL8zTff/KZZzz33nC233HIFaS6rWWy00Ub29NNPW/fu3QXEeagacyPIo/qyOkRa+YczRisBsYDY61kxfuWts1ztpJV/ZGO0EhDHAfGdd95p1113XcUCC/fdd99ScPvkk08aNs2aNTOYjgUXNttss4rBGzhwoL399ts2duxY/4DWoqULiJP2QP0///xzwemeHOQDDzzQPv74Y7vpppsExHk6QMyNIM9TlM1h0so/lDFaCYgFxF7PivErb53laiet/CMbo5WA2A/ERHcbNWpk3333XUidPe2008JiC+ecc07F4HTu3NkeffRR69atWwDjRx55xJ566qnw+9GjR9vNN98cVioraSDGwc4+++zQOQrrD59//vnWo0cPv5dWYTlgwABjP/IbbrjBLrzwQgFxnqrG3AjyPEXZHCat/EMZo5WAWEDs9awYv/LWWa520so/sjFaCYj9QEzAkpXHpk+fHgYDXnvrrbfs9ttvrxgcmPCKK66wbbfdNqxANnLkyGDPmJx44omBGy+99NLSBmKit8Awf7do0aICjL/88ssap0yMGjXKnnjiCbv77rutb9++SwHxq6++auPGjfvNlTB48OCKn8U4v/+SKk1LaeEfN2lVHK0ExAJir2fpGvQqpY2E/ErFaSUg/i0QV9aaTdgAXOaMHXDAATZt2rRgcs8999hLL71kt912W8Uh/GzQoEG26667Gmy37rrrhgUZmIcGOBNdHjJkSOkCMQnQbdq0CVR/3nnnhY7/7W9/s3333dfefPPNpfJDYpw2sd1mm23CJh8rrriivfHGG7b22msbeSlbbrll1uo0qS63ynrA+D1QWhVHKwGxgNjrWboGvUrFQZ6/1vK0jPErAbE/QsxEOuaMMamuXr16NmLEiOBAZ5xxxlKORCSZQCapEa+88ooddNBBtvPOO9tWW21l33//vX3wwQd2/PHHh+hx2kq1OcRJ3sjhhx8e3gQaNGhgV155ZQh907G11lqrRn1iKbcFCxaEOo455hg7+eSTbc8998wZeRYQC4hr5HD//+CYm2YhzlfKdcRoJSAWEHt9PcavvHWWq5208o9sjFYCYj8QMwKbbLKJ/eUvfwkLIAC5Q4cONSLIU6dODcAL/PJn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xuIvf/mLHXjggdauXTu/lxbIUkAsIC6EK8XcNAtxvlKuI0YrAbGA2OvrMX7lrbNc7aSVf2RjtBIQlx8Qk+a7ySabBADOLCeddFJg16qKK0JMkjJRYqLD7AfNOm8HHHBAyMkoVJkzZ05IhG7QoEGVVQqIBcSF8LmYm2YhzlfKdcRoJSAWEHt9PcavvHWWq5208o9sjFYC4ngg/vXXX8OOb6Ql5CpsgNG6deulfu05zj/KVVt+/fXX9vjjjwdmZYUJFoYgzbdFixY1B2KiwY888kioiB0/JkyYYO+88459+umnIUG5JoU6SMEg2kwom72nCXPnKgJiAXFN/C05NuamWYjzlXIdMVoJiAXEXl+P8StvneVqJ638IxujlYA4DojvvPPOsATvyiuvbERi77vvvqUyBV5//XW7/PLLbfnll7fZs2fb0KFDQ7pCdcf5R9dn+dFHH9nf/va3wJPbbrutkUZB1Li6Um2EOFllgo79+OOPIYK7yy67WI8ePezf//53jaPEl156acjroP4FCxaERZQ///zzMJEvWxEQC4irc2rP72Nump76ytkmRisBsYDYey3E+JW3znK1k1b+kY3RSkDsB+KEBb/77rsQ/T3ttNOsY8eOIUiaFCax/e53vzPSE2A1VnoYMWJEWKmsquP8o1u9JRkMBFjJbKCwZPAee+xhAwYMqJgLl6uWaoGYhGQit8ccc0yIBvOHk5177rlGmgNvAjUphN7JTW7atKk98cQTodHQPT8TEMcpG3MjiKu5/KyllX9MY7QSEAuIvZ4V41feOsvVTlr5RzZGKwGxH4g//vhj6927t02fPj0Mxg033GBvvfWW3X777RWDw/JmrOiw1157BZ5jqd4OHTpUe5x/dKu3ZCWJDTfc0J555hm74IILrE+fPkbb77nnHiNtIxdbUnO1QIwRW95de+21S7XksMMOCycoRFm4cKFdccUVgd7J+2BpN8qrr75q48aN+80pBg8eXPGzGOcvRFvTXIe08I+OtCqOVgJiAbHXs3QNepUyLRPplypKKwHxb4G4stTbbbddSDuYMmVKmDtG+gEF/nvppZfstttuqziEnYxJryUNlnSK448/3n7/+99Xe1zE8FZrSiR7tdVWs6uvvtq++uor+8c//mH7779/COoWbJUJllh77LHHwtvBZpttFsLlyy23XLWNq86ANAlylBs3bhze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elP7IgIiIAIiIAIiIAIi4E1AQuyNTAuIgAiIgAiIgAiIgAjEEgEJcSz1pvZFBERABERABERABETAm4CE2BuZFhABERABERABERABEYglAhLiWOpN7YsIiIAIiIAIiIAIiIA3AQmxNzItIAIiIAIiIAIiIAIiEEsEJMSx1JvaFxEQgagR2Ldvn3v9OF6xrSYCIiACIhDbBCTEsd2/2jsREAFPAuvWrbPOnTvbvHnz3JIXXHCBvf7669a4ceNk19SvXz979tlnbdeuXXbuued6fqrCRUAEREAEMpKAhDgj6euzRUAEQkUAb2WsWbOmrVy50tq3b2958uSxsWPHum388ccfrUqVKklu76OPPmrPPfec7dy504oXLx6q/dLGiIAIiIAIJE9AQqwMEQEREIH/Evjwww/tpptusptvvtlmzJjhfjt9+nTr06ePQXg7depko0ePtqFDh9p//vMfq1Onjv397393Eh1fiF999VW3/Ny5cy1fvnxunRUrVrRXXnnF2rRp43535MgRW7RokXXp0sVy5Mjh1nvRRRfZxIkTrUCBAnbDDTfYNddcY99995398ssv7rPxGWoiIAIiIALRJyAhjj5TrVEERCCTEnjhhResZ8+eBqG97777ztqLNWvWWLVq1ax27drWqlUre/75561MmTK2du3aM4QY4oqR5d9//93JbalSpeySSy6xzz//3CpXruxkumvXrgYBh+zib3gt+tSpU916evXqFTfK/MADD9icOXOcGG/cuNHOO++8TEpXmy0CIiAC4SUgIQ5v32jLREAE0pnA008/bf3793di2rZt27M+fdCgQTZgwAD79ttv7dJLL7VnnnnGHnvsMfvqq69sypQpcSUTKQlxwYIF7ZtvvrGIgGOkGKJdtGhRV7+MEWiUXUCaX3vtNXvzzTftzjvvdKPOGL1WEwEREAERiC4BCXF0eWptIiACmZjAW2+9ZXfccYfdc889NmbMGLcnKHuAKHfv3t2N1A4bNszWr19vlSpVcuUS3bp1czEffPBBnBA//vjjTmT37NljRYoUscKFC7uyisgIccmSJV25xMsvv2wPPfSQE+oLL7zQChUq5D4btcgQYog1pPudd95xgi4hzsTJpU0XAREINQEJcai7RxsnAiKQngQOHDjgZpXYsWOHG53Ffw8fPtxtAsocMDKMumGM1qIWGMIK6d28ebMbWY48VIdZKTByjNHk3bt328iRI61Ro0YS4vTsTH2WCIiACHgQkBB7wFKoCIhA7BPADBMYJUbNLhpGbVEO0aJFCzt16pShphc1xpEWKa+IP+0aJLhevXpOrFEfvGnTJld3/Omnn7oa4sgI8ahRo+zBBx90I8R4oA6lFPFHiLHOIUOG2LRp05yAa4Q49vNPeygCIpAxBCTEGcNdnyoCIhByAlu2bLH9+/e7UeJcuXKdsbV79+51souZI3Lnzp3onkCeI3MSZ8+ePeR7q80TAREQgaxNQEKctftfey8CIiACIiACIiACWZ6AhDjLp4AAiIAIiIAIiIAIiEDWJiAhztr9r70XAREQAREQAREQgSxPQEKc5VNAAERABERABERABEQgaxOQEGft/tfei4AIiIAIiIAIiECWJyAhzvIpIAAiIAIiIAIiIAIikLUJ/D9gyEbaG05puAAAAABJRU5ErkJggg==", "text/plain": [ "\n", "\n", "If you see this message, it means the renderer has not been properly enabled\n", "for the frontend that you are using. For more information, see\n", "https://altair-viz.github.io/user_guide/troubleshooting.html\n" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "records_to_view = df_predictions.as_record_dict(limit=5)\n", "linker.waterfall_chart(records_to_view, filter_nulls=False)\n" ] }, { "cell_type": "markdown", "id": "48b76176", "metadata": {}, "source": [ "## Comparison viewer dashboard\n", "\n", "The [comparison viewer dashboard](https://moj-analytical-services.github.io/splink/linkerqa.html#splink.linker.Linker.comparison_viewer_dashboard) takes this one step further by producing an interactive dashboard that contains example predictions from across the spectrum of match scores.\n", "\n", "An in-depth video describing how to interpret the dashboard can be found [here](https://www.youtube.com/watch?v=DNvCMqjipis).\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "da85169c", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "linker.comparison_viewer_dashboard(df_predictions, \"scv.html\", overwrite=True)\n", "\n", "# You can view the scv.html file in your browser, or inline in a notbook as follows\n", "from IPython.display import IFrame\n", "IFrame(\n", " src=\"./scv.html\", width=\"100%\", height=1200\n", ") " ] }, { "cell_type": "markdown", "id": "d34df82c", "metadata": {}, "source": [ "## Cluster studio dashboard\n", "\n", "Cluster studio is an interactive dashboards that visualises the results of clustering your predictions.\n", "\n", "It provides examples of clusters of different sizes. The shape and size of clusters can be indicative of problems with record linkage, so it provides a tool to help you find potential false positive and negative links." ] }, { "cell_type": "code", "execution_count": 4, "id": "e2153d91", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Completed iteration 1, root rows count 13\n", "Completed iteration 2, root rows count 1\n", "Completed iteration 3, root rows count 0\n" ] }, { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_clusters = linker.cluster_pairwise_predictions_at_threshold(df_predictions, threshold_match_probability=0.5)\n", "\n", "linker.cluster_studio_dashboard(df_predictions, df_clusters, \"cluster_studio.html\", sampling_method=\"by_cluster_size\", overwrite=True)\n", "\n", "# You can view the scv.html file in your browser, or inline in a notbook as follows\n", "from IPython.display import IFrame\n", "IFrame(\n", " src=\"./cluster_studio.html\", width=\"100%\", height=1200\n", ")" ] } ], "metadata": { "kernelspec": { "display_name": "splink_demos", "language": "python", "name": "splink_demos" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.3" }, "vscode": { "interpreter": { "hash": "3b53fa520a31e303a9636a08ff10a3bbc14893ee50cb37445791fa59628fc75b" } } }, "nbformat": 4, "nbformat_minor": 5 }