{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from sklearn.datasets import load_boston\n", "boston = load_boston()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
CRIMZNINDUSCHASNOXRMAGEDISRADTAXPTRATIOBLSTAT
00.0063218.02.310.00.5386.57565.24.09001.0296.015.3396.904.98
10.027310.07.070.00.4696.42178.94.96712.0242.017.8396.909.14
20.027290.07.070.00.4697.18561.14.96712.0242.017.8392.834.03
30.032370.02.180.00.4586.99845.86.06223.0222.018.7394.632.94
40.069050.02.180.00.4587.14754.26.06223.0222.018.7396.905.33
\n", "
" ], "text/plain": [ " CRIM ZN INDUS CHAS NOX RM AGE DIS RAD TAX \\\n", "0 0.00632 18.0 2.31 0.0 0.538 6.575 65.2 4.0900 1.0 296.0 \n", "1 0.02731 0.0 7.07 0.0 0.469 6.421 78.9 4.9671 2.0 242.0 \n", "2 0.02729 0.0 7.07 0.0 0.469 7.185 61.1 4.9671 2.0 242.0 \n", "3 0.03237 0.0 2.18 0.0 0.458 6.998 45.8 6.0622 3.0 222.0 \n", "4 0.06905 0.0 2.18 0.0 0.458 7.147 54.2 6.0622 3.0 222.0 \n", "\n", " PTRATIO B LSTAT \n", "0 15.3 396.90 4.98 \n", "1 17.8 396.90 9.14 \n", "2 17.8 392.83 4.03 \n", "3 18.7 394.63 2.94 \n", "4 18.7 396.90 5.33 " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "boston_df = pd.DataFrame(boston.data, columns=boston.feature_names)\n", "boston_df.head()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(379, 13)\n", "(379,)\n", "(127, 13)\n", "(127,)\n" ] } ], "source": [ "from sklearn.model_selection import train_test_split\n", "X_train, X_test, Y_train, Y_test = train_test_split(boston_df, boston.target, test_size = 0.25, random_state = 31)\n", "print(X_train.shape)\n", "print(Y_train.shape)\n", "print(X_test.shape)\n", "print(Y_test.shape)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
operation<=>
value0.0373140.0594380.0916260.1416620.2292700.4894781.3746824.8499669.8421020.0373140.0594380.0916260.1416620.2292700.4894781.3746824.8499669.842102
90011111111100000000
434000000000111111111
384000000000111111111
175001111111110000000
22000000111111111000
54111111111000000000
62000111111111000000
320000011111111100000
199111111111000000000
273000011111111100000
\n", "
" ], "text/plain": [ "operation <= \\\n", "value 0.037314 0.059438 0.091626 0.141662 0.229270 0.489478 1.374682 \n", "90 0 1 1 1 1 1 1 \n", "434 0 0 0 0 0 0 0 \n", "384 0 0 0 0 0 0 0 \n", "175 0 0 1 1 1 1 1 \n", "22 0 0 0 0 0 0 1 \n", "54 1 1 1 1 1 1 1 \n", "62 0 0 0 1 1 1 1 \n", "320 0 0 0 0 1 1 1 \n", "199 1 1 1 1 1 1 1 \n", "273 0 0 0 0 1 1 1 \n", "\n", "operation > \\\n", "value 4.849966 9.842102 0.037314 0.059438 0.091626 0.141662 0.229270 \n", "90 1 1 1 0 0 0 0 \n", "434 0 0 1 1 1 1 1 \n", "384 0 0 1 1 1 1 1 \n", "175 1 1 1 1 0 0 0 \n", "22 1 1 1 1 1 1 1 \n", "54 1 1 0 0 0 0 0 \n", "62 1 1 1 1 1 0 0 \n", "320 1 1 1 1 1 1 0 \n", "199 1 1 0 0 0 0 0 \n", "273 1 1 1 1 1 1 0 \n", "\n", "operation \n", "value 0.489478 1.374682 4.849966 9.842102 \n", "90 0 0 0 0 \n", "434 1 1 1 1 \n", "384 1 1 1 1 \n", "175 0 0 0 0 \n", "22 1 0 0 0 \n", "54 0 0 0 0 \n", "62 0 0 0 0 \n", "320 0 0 0 0 \n", "199 0 0 0 0 \n", "273 0 0 0 0 " ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from aix360.algorithms.rbm import FeatureBinarizer\n", "fb = FeatureBinarizer(negations=True)\n", "X_train_fb = fb.fit_transform(X_train)\n", "X_test_fb = fb.transform(X_test)\n", "X_train_fb['CRIM'][:10]" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "from aix360.algorithms.rbm import GLRMExplainer, LinearRuleRegression" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "linear_model = LinearRuleRegression()\n", "explainer = GLRMExplainer(linear_model)\n", "explainer.fit(X_train_fb, Y_train)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "Y_pred = explainer.predict(X_test_fb)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "R2 Score = 0.8249087941706609\n", "Explained Variance = 0.8289797066674642\n", "Mean abs. error = 2.754048495903457\n", "Max error = 11.399762504643611\n" ] } ], "source": [ "from sklearn.metrics import r2_score, explained_variance_score, mean_absolute_error, max_error\n", "print(f'R2 Score = {r2_score(Y_test, Y_pred)}')\n", "print(f'Explained Variance = {explained_variance_score(Y_test, Y_pred)}')\n", "print(f'Mean abs. error = {mean_absolute_error(Y_test, Y_pred)}')\n", "print(f'Max error = {max_error(Y_test, Y_pred)}')" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
rulecoefficient
0(intercept)21.944
1NOX <= 0.666.31439
2RM <= 7.16 AND DIS > 1.62-5.78581
3LSTAT <= 4.665.4635
4DIS <= 3.32 AND RAD > 2.00 AND B > 295.98 AND ...4.80349
5CHAS not AND PTRATIO > 16.10-3.9513
6RM <= 7.16 AND RAD <= 6.00-3.35462
7TAX > 293.00 AND LSTAT > 4.66-2.96268
8LSTAT <= 15.032.84329
9INDUS > 4.05 AND LSTAT > 4.66-2.56005
10DIS <= 7.24 AND RAD > 2.00 AND PTRATIO <= 20.9...2.51755
11LSTAT <= 9.482.50064
12CRIM <= 9.84 AND DIS <= 4.64 AND RAD > 1.00 AN...2.28817
13LSTAT <= 17.601.91807
14TAX > 330.00 AND LSTAT > 4.66-1.80772
15CRIM <= 9.84 AND CRIM > 0.06 AND PTRATIO <= 20.901.79055
16LSTAT <= 6.251.66632
17RM <= 7.16 AND B > 380.27-1.61764
18LSTAT <= 11.121.59846
19RAD > 2.00 AND LSTAT <= 22.791.24117
20RM <= 7.16-1.20717
21CHAS not AND RM <= 7.161.19303
22RM <= 6.51-1.13602
23CRIM <= 9.84 AND DIS <= 3.95 AND TAX <= 666.00...1.0065
24CRIM <= 9.84 AND RAD > 1.00 AND LSTAT <= 22.790.972651
25DIS <= 3.95 AND LSTAT <= 22.79-0.919471
26RM <= 6.74-0.795374
27PTRATIO <= 19.520.795212
28NOX <= 0.66 AND PTRATIO <= 20.90 AND LSTAT <= ...-0.775433
29RAD > 4.00 AND LSTAT <= 22.79-0.632437
30B <= 391.27 AND LSTAT <= 22.790.479933
31LSTAT <= 7.580.43504
32LSTAT <= 13.140.178565
\n", "
" ], "text/plain": [ " rule coefficient\n", "0 (intercept) 21.944\n", "1 NOX <= 0.66 6.31439\n", "2 RM <= 7.16 AND DIS > 1.62 -5.78581\n", "3 LSTAT <= 4.66 5.4635\n", "4 DIS <= 3.32 AND RAD > 2.00 AND B > 295.98 AND ... 4.80349\n", "5 CHAS not AND PTRATIO > 16.10 -3.9513\n", "6 RM <= 7.16 AND RAD <= 6.00 -3.35462\n", "7 TAX > 293.00 AND LSTAT > 4.66 -2.96268\n", "8 LSTAT <= 15.03 2.84329\n", "9 INDUS > 4.05 AND LSTAT > 4.66 -2.56005\n", "10 DIS <= 7.24 AND RAD > 2.00 AND PTRATIO <= 20.9... 2.51755\n", "11 LSTAT <= 9.48 2.50064\n", "12 CRIM <= 9.84 AND DIS <= 4.64 AND RAD > 1.00 AN... 2.28817\n", "13 LSTAT <= 17.60 1.91807\n", "14 TAX > 330.00 AND LSTAT > 4.66 -1.80772\n", "15 CRIM <= 9.84 AND CRIM > 0.06 AND PTRATIO <= 20.90 1.79055\n", "16 LSTAT <= 6.25 1.66632\n", "17 RM <= 7.16 AND B > 380.27 -1.61764\n", "18 LSTAT <= 11.12 1.59846\n", "19 RAD > 2.00 AND LSTAT <= 22.79 1.24117\n", "20 RM <= 7.16 -1.20717\n", "21 CHAS not AND RM <= 7.16 1.19303\n", "22 RM <= 6.51 -1.13602\n", "23 CRIM <= 9.84 AND DIS <= 3.95 AND TAX <= 666.00... 1.0065\n", "24 CRIM <= 9.84 AND RAD > 1.00 AND LSTAT <= 22.79 0.972651\n", "25 DIS <= 3.95 AND LSTAT <= 22.79 -0.919471\n", "26 RM <= 6.74 -0.795374\n", "27 PTRATIO <= 19.52 0.795212\n", "28 NOX <= 0.66 AND PTRATIO <= 20.90 AND LSTAT <= ... -0.775433\n", "29 RAD > 4.00 AND LSTAT <= 22.79 -0.632437\n", "30 B <= 391.27 AND LSTAT <= 22.79 0.479933\n", "31 LSTAT <= 7.58 0.43504\n", "32 LSTAT <= 13.14 0.178565" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "explainer.explain()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "\n", "fb = FeatureBinarizer(negations=True)\n", "figs, _ = explainer.visualize(boston_df, fb)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }