Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save radekosmulski/dd87a2ef602ad72d8688bc346cfc1f52 to your computer and use it in GitHub Desktop.
Save radekosmulski/dd87a2ef602ad72d8688bc346cfc1f52 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "abf6913a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<sklearn.metrics._plot.confusion_matrix.ConfusionMatrixDisplay at 0x7fee738ece50>"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 720x720 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay\n",
"from matplotlib import pyplot as plt\n",
"\n",
"cm = confusion_matrix(np.random.randint(0,3,10), np.random.randint(0,5,10), normalize='true')\n",
"\n",
"cmp = ConfusionMatrixDisplay(cm)\n",
"fig, ax = plt.subplots(figsize=(10,10))\n",
"cmp.plot(ax=ax)"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "446b3378",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 288x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"\n",
"df = pd.DataFrame(data={'a': np.random.randn(10), 'b': np.random.randn(10), 'c': np.random.randn(10)})\n",
"plt.matshow(df.corr())\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "a9c77b98",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>a</th>\n",
" <th>b</th>\n",
" <th>c</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>a</th>\n",
" <td>1.000000</td>\n",
" <td>-0.326411</td>\n",
" <td>0.149319</td>\n",
" </tr>\n",
" <tr>\n",
" <th>b</th>\n",
" <td>-0.326411</td>\n",
" <td>1.000000</td>\n",
" <td>-0.431481</td>\n",
" </tr>\n",
" <tr>\n",
" <th>c</th>\n",
" <td>0.149319</td>\n",
" <td>-0.431481</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" a b c\n",
"a 1.000000 -0.326411 0.149319\n",
"b -0.326411 1.000000 -0.431481\n",
"c 0.149319 -0.431481 1.000000"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.corr()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "0dfb698e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style type=\"text/css\">\n",
"#T_2932e_row0_col0, #T_2932e_row1_col1, #T_2932e_row2_col2 {\n",
" background-color: #b40426;\n",
" color: #f1f1f1;\n",
"}\n",
"#T_2932e_row0_col1 {\n",
" background-color: #506bda;\n",
" color: #f1f1f1;\n",
"}\n",
"#T_2932e_row0_col2 {\n",
" background-color: #c1d4f4;\n",
" color: #000000;\n",
"}\n",
"#T_2932e_row1_col0, #T_2932e_row1_col2, #T_2932e_row2_col1 {\n",
" background-color: #3b4cc0;\n",
" color: #f1f1f1;\n",
"}\n",
"#T_2932e_row2_col0 {\n",
" background-color: #b2ccfb;\n",
" color: #000000;\n",
"}\n",
"</style>\n",
"<table id=\"T_2932e_\">\n",
" <thead>\n",
" <tr>\n",
" <th class=\"blank level0\" >&nbsp;</th>\n",
" <th class=\"col_heading level0 col0\" >a</th>\n",
" <th class=\"col_heading level0 col1\" >b</th>\n",
" <th class=\"col_heading level0 col2\" >c</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th id=\"T_2932e_level0_row0\" class=\"row_heading level0 row0\" >a</th>\n",
" <td id=\"T_2932e_row0_col0\" class=\"data row0 col0\" >1.00</td>\n",
" <td id=\"T_2932e_row0_col1\" class=\"data row0 col1\" >-0.33</td>\n",
" <td id=\"T_2932e_row0_col2\" class=\"data row0 col2\" >0.15</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_2932e_level0_row1\" class=\"row_heading level0 row1\" >b</th>\n",
" <td id=\"T_2932e_row1_col0\" class=\"data row1 col0\" >-0.33</td>\n",
" <td id=\"T_2932e_row1_col1\" class=\"data row1 col1\" >1.00</td>\n",
" <td id=\"T_2932e_row1_col2\" class=\"data row1 col2\" >-0.43</td>\n",
" </tr>\n",
" <tr>\n",
" <th id=\"T_2932e_level0_row2\" class=\"row_heading level0 row2\" >c</th>\n",
" <td id=\"T_2932e_row2_col0\" class=\"data row2 col0\" >0.15</td>\n",
" <td id=\"T_2932e_row2_col1\" class=\"data row2 col1\" >-0.43</td>\n",
" <td id=\"T_2932e_row2_col2\" class=\"data row2 col2\" >1.00</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n"
],
"text/plain": [
"<pandas.io.formats.style.Styler at 0x7fee43625a30>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# https://stackoverflow.com/a/50703596/1105837\n",
"\n",
"df.corr().style.format(precision=2).background_gradient(cmap='coolwarm')\n",
"# 'RdBu_r', 'BrBG_r', & PuOr_r are other good diverging colormaps"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"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.13"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment