Last active
February 4, 2022 21:48
-
-
Save firmai/037fc3049ba48187eb72b08ecab71022 to your computer and use it in GitHub Desktop.
FinML Bankruptcy Prediction.ipynb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"nbformat": 4, | |
"nbformat_minor": 0, | |
"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.6.3" | |
}, | |
"nav_menu": { | |
"height": "252px", | |
"width": "333px" | |
}, | |
"toc": { | |
"navigate_menu": true, | |
"number_sections": true, | |
"sideBar": true, | |
"threshold": 6, | |
"toc_cell": false, | |
"toc_section_display": "block", | |
"toc_window_display": false | |
}, | |
"colab": { | |
"name": "FinML Bankruptcy Prediction.ipynb", | |
"provenance": [], | |
"include_colab_link": true | |
} | |
}, | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "view-in-github", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"<a href=\"https://colab.research.google.com/gist/firmai/037fc3049ba48187eb72b08ecab71022/finml-bankruptcy-prediction.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "MQbJboNoCiT-" | |
}, | |
"source": [ | |
"# Bankuptcy Prediction Ensemble Models" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "xEiHxOZECiUA" | |
}, | |
"source": [ | |
"# To support both python 2 and python 3\n", | |
"from __future__ import division, print_function, unicode_literals\n", | |
"\n", | |
"import warnings\n", | |
"warnings.filterwarnings('ignore')\n", | |
"\n", | |
"# Common imports\n", | |
"import numpy as np\n", | |
"import os\n", | |
"\n", | |
"# to make this notebook's output stable across runs\n", | |
"np.random.seed(42)\n", | |
"\n", | |
"# To plot pretty figures\n", | |
"%matplotlib inline\n", | |
"import matplotlib as mpl\n", | |
"import matplotlib.pyplot as plt\n", | |
"mpl.rc('axes', labelsize=14)\n", | |
"mpl.rc('xtick', labelsize=12)\n", | |
"mpl.rc('ytick', labelsize=12)\n", | |
"\n", | |
"# Where to save the figures\n", | |
"PROJECT_ROOT_DIR = \"../..\"\n", | |
"CHAPTER_ID = \"ensembles\"\n", | |
"\n", | |
"def image_path(fig_id):\n", | |
" return os.path.join(PROJECT_ROOT_DIR, \"images\", CHAPTER_ID, fig_id)\n", | |
"\n", | |
"def save_fig(fig_id, tight_layout=True):\n", | |
" path = os.path.join(PROJECT_ROOT_DIR, \"images\", CHAPTER_ID, fig_id + \".png\")\n", | |
" print(\"Saving figure\", fig_id)\n", | |
" if tight_layout:\n", | |
" plt.tight_layout()\n", | |
" try:\n", | |
" plt.savefig(path, format='png', dpi=300)\n", | |
" except:\n", | |
" plt.savefig(fig_id + \".png\", format='png', dpi=300)" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "O_POrE0zCiUM" | |
}, | |
"source": [ | |
"# Voting classifiers" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "16KFyF3kCiUO" | |
}, | |
"source": [ | |
"heads_proba = 0.51\n", | |
"coin_tosses = (np.random.rand(10000, 10) < heads_proba).astype(np.int32)\n", | |
"cumulative_heads_ratio = np.cumsum(coin_tosses, axis=0) / np.arange(1, 10001).reshape(-1, 1)" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "k_MM11xcCiUV", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 283 | |
}, | |
"outputId": "397a7ecc-216a-4783-b0f4-f60ec96b7d51" | |
}, | |
"source": [ | |
"plt.figure(figsize=(8,3.5))\n", | |
"plt.plot(cumulative_heads_ratio)\n", | |
"plt.plot([0, 10000], [0.51, 0.51], \"k--\", linewidth=2, label=\"51%\")\n", | |
"plt.plot([0, 10000], [0.5, 0.5], \"k-\", label=\"50%\")\n", | |
"plt.xlabel(\"Number of coin tosses\")\n", | |
"plt.ylabel(\"Heads ratio\")\n", | |
"plt.legend(loc=\"lower right\")\n", | |
"plt.axis([0, 10000, 0.42, 0.58])\n", | |
"save_fig(\"law_of_large_numbers_plot\")\n", | |
"plt.show()" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"Saving figure law_of_large_numbers_plot\n" | |
] | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 576x252 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "BKe_bt9CCiUy" | |
}, | |
"source": [ | |
"from sklearn.model_selection import train_test_split\n", | |
"from sklearn.datasets import make_moons\n", | |
"\n", | |
"X, y = make_moons(n_samples=500, noise=0.30, random_state=42)\n", | |
"X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "2ABrYv8GCiU9" | |
}, | |
"source": [ | |
"from sklearn.ensemble import RandomForestClassifier\n", | |
"from sklearn.ensemble import VotingClassifier\n", | |
"from sklearn.linear_model import LogisticRegression\n", | |
"from sklearn.svm import SVC\n", | |
"\n", | |
"log_clf = LogisticRegression(solver=\"liblinear\", random_state=42)\n", | |
"rnd_clf = RandomForestClassifier(n_estimators=10, random_state=42)\n", | |
"svm_clf = SVC(gamma=\"auto\", random_state=42)\n", | |
"\n", | |
"voting_clf = VotingClassifier(\n", | |
" estimators=[('lr', log_clf), ('rf', rnd_clf), ('svc', svm_clf)],\n", | |
" voting='hard')" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "Gwh5mVzpCiVG", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "0c1d5027-443d-4426-dcb9-83d656393910" | |
}, | |
"source": [ | |
"voting_clf.fit(X_train, y_train)" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"VotingClassifier(estimators=[('lr',\n", | |
" LogisticRegression(random_state=42,\n", | |
" solver='liblinear')),\n", | |
" ('rf',\n", | |
" RandomForestClassifier(n_estimators=10,\n", | |
" random_state=42)),\n", | |
" ('svc', SVC(gamma='auto', random_state=42))])" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 6 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "CUst3fhKCiVR", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "ee1b5476-29de-452e-82d0-be91cd57de81" | |
}, | |
"source": [ | |
"from sklearn.metrics import accuracy_score\n", | |
"\n", | |
"for clf in (log_clf, rnd_clf, svm_clf, voting_clf):\n", | |
" clf.fit(X_train, y_train)\n", | |
" y_pred = clf.predict(X_test)\n", | |
" print(clf.__class__.__name__, accuracy_score(y_test, y_pred))" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"LogisticRegression 0.864\n", | |
"RandomForestClassifier 0.872\n", | |
"SVC 0.888\n", | |
"VotingClassifier 0.896\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "q9OJfU84CiVh", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "40d91f53-e720-42b7-884a-87025897bf97" | |
}, | |
"source": [ | |
"log_clf = LogisticRegression(solver=\"liblinear\", random_state=42)\n", | |
"rnd_clf = RandomForestClassifier(n_estimators=10, random_state=42)\n", | |
"svm_clf = SVC(gamma=\"auto\", probability=True, random_state=42)\n", | |
"\n", | |
"voting_clf = VotingClassifier(\n", | |
" estimators=[('lr', log_clf), ('rf', rnd_clf), ('svc', svm_clf)],\n", | |
" voting='soft')\n", | |
"voting_clf.fit(X_train, y_train)" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"VotingClassifier(estimators=[('lr',\n", | |
" LogisticRegression(random_state=42,\n", | |
" solver='liblinear')),\n", | |
" ('rf',\n", | |
" RandomForestClassifier(n_estimators=10,\n", | |
" random_state=42)),\n", | |
" ('svc',\n", | |
" SVC(gamma='auto', probability=True,\n", | |
" random_state=42))],\n", | |
" voting='soft')" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 8 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "ERSkG-ttCiV0", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "21b51a21-87ca-495b-8609-bebc304a5009" | |
}, | |
"source": [ | |
"from sklearn.metrics import accuracy_score\n", | |
"\n", | |
"for clf in (log_clf, rnd_clf, svm_clf, voting_clf):\n", | |
" clf.fit(X_train, y_train)\n", | |
" y_pred = clf.predict(X_test)\n", | |
" print(clf.__class__.__name__, accuracy_score(y_test, y_pred))" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"LogisticRegression 0.864\n", | |
"RandomForestClassifier 0.872\n", | |
"SVC 0.888\n", | |
"VotingClassifier 0.912\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "PJkiyPPvCiWF" | |
}, | |
"source": [ | |
"# Bagging ensembles" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "_OouZmQXCiWI" | |
}, | |
"source": [ | |
"from sklearn.ensemble import BaggingClassifier\n", | |
"from sklearn.tree import DecisionTreeClassifier\n", | |
"\n", | |
"bag_clf = BaggingClassifier(\n", | |
" DecisionTreeClassifier(random_state=42), n_estimators=500,\n", | |
" max_samples=100, bootstrap=True, n_jobs=-1, random_state=42)\n", | |
"bag_clf.fit(X_train, y_train)\n", | |
"y_pred = bag_clf.predict(X_test)" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "pImCzp0OCiWc", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "8539a87d-0cbc-45c3-d7a5-64845d8b17ec" | |
}, | |
"source": [ | |
"from sklearn.metrics import accuracy_score\n", | |
"print(accuracy_score(y_test, y_pred))" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"0.904\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "XKvReSfZCiWp", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "08de39ad-5c13-4ac2-a24b-bc81f85bd772" | |
}, | |
"source": [ | |
"tree_clf = DecisionTreeClassifier(random_state=42)\n", | |
"tree_clf.fit(X_train, y_train)\n", | |
"y_pred_tree = tree_clf.predict(X_test)\n", | |
"print(accuracy_score(y_test, y_pred_tree))" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"0.856\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "p1urKSwoCiXK" | |
}, | |
"source": [ | |
"from matplotlib.colors import ListedColormap\n", | |
"\n", | |
"def plot_decision_boundary(clf, X, y, axes=[-1.5, 2.5, -1, 1.5], alpha=0.5, contour=True):\n", | |
" x1s = np.linspace(axes[0], axes[1], 100)\n", | |
" x2s = np.linspace(axes[2], axes[3], 100)\n", | |
" x1, x2 = np.meshgrid(x1s, x2s)\n", | |
" X_new = np.c_[x1.ravel(), x2.ravel()]\n", | |
" y_pred = clf.predict(X_new).reshape(x1.shape)\n", | |
" custom_cmap = ListedColormap(['#fafab0','#9898ff','#a0faa0'])\n", | |
" plt.contourf(x1, x2, y_pred, alpha=0.3, cmap=custom_cmap)\n", | |
" if contour:\n", | |
" custom_cmap2 = ListedColormap(['#7d7d58','#4c4c7f','#507d50'])\n", | |
" plt.contour(x1, x2, y_pred, cmap=custom_cmap2, alpha=0.8)\n", | |
" plt.plot(X[:, 0][y==0], X[:, 1][y==0], \"yo\", alpha=alpha)\n", | |
" plt.plot(X[:, 0][y==1], X[:, 1][y==1], \"bs\", alpha=alpha)\n", | |
" plt.axis(axes)\n", | |
" plt.xlabel(r\"$x_1$\", fontsize=18)\n", | |
" plt.ylabel(r\"$x_2$\", fontsize=18, rotation=0)" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "ygeGJkNNCiXd", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 313 | |
}, | |
"outputId": "6f938b32-7193-4763-e8a4-e7ccc0e4f9af" | |
}, | |
"source": [ | |
"plt.figure(figsize=(11,4))\n", | |
"plt.subplot(121)\n", | |
"plot_decision_boundary(tree_clf, X, y)\n", | |
"plt.title(\"Decision Tree\", fontsize=14)\n", | |
"plt.subplot(122)\n", | |
"plot_decision_boundary(bag_clf, X, y)\n", | |
"plt.title(\"Decision Trees with Bagging\", fontsize=14)\n", | |
"save_fig(\"decision_tree_without_and_with_bagging_plot\")\n", | |
"plt.show()" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"Saving figure decision_tree_without_and_with_bagging_plot\n" | |
] | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 792x288 with 2 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "y84O9csnCiXt" | |
}, | |
"source": [ | |
"# Random Forests" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "EZuuhxcUCiX_" | |
}, | |
"source": [ | |
"bag_clf = BaggingClassifier(\n", | |
" DecisionTreeClassifier(splitter=\"random\", max_leaf_nodes=16, random_state=42),\n", | |
" n_estimators=500, max_samples=1.0, bootstrap=True, n_jobs=-1, random_state=42)" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "5BneKOnsCiYO" | |
}, | |
"source": [ | |
"bag_clf.fit(X_train, y_train)\n", | |
"y_pred = bag_clf.predict(X_test)" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "nUV1RunOCiYm" | |
}, | |
"source": [ | |
"from sklearn.ensemble import RandomForestClassifier\n", | |
"\n", | |
"rnd_clf = RandomForestClassifier(n_estimators=500, max_leaf_nodes=16, n_jobs=-1, random_state=42)\n", | |
"rnd_clf.fit(X_train, y_train)\n", | |
"\n", | |
"y_pred_rf = rnd_clf.predict(X_test)" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "P-ZOWZOaCiY6", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "e8e5dcf5-de0d-4fb7-c177-07d99dcb51fc" | |
}, | |
"source": [ | |
"np.sum(y_pred == y_pred_rf) / len(y_pred) # almost identical predictions" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"0.976" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 18 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "mudM1tu3CiZL", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "df213641-99eb-4d12-cf54-5ff2c8590342" | |
}, | |
"source": [ | |
"from sklearn.datasets import load_iris\n", | |
"iris = load_iris()\n", | |
"rnd_clf = RandomForestClassifier(n_estimators=500, n_jobs=-1, random_state=42)\n", | |
"rnd_clf.fit(iris[\"data\"], iris[\"target\"])\n", | |
"for name, score in zip(iris[\"feature_names\"], rnd_clf.feature_importances_):\n", | |
" print(name, score)" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"sepal length (cm) 0.11249225099876375\n", | |
"sepal width (cm) 0.02311928828251033\n", | |
"petal length (cm) 0.4410304643639577\n", | |
"petal width (cm) 0.4233579963547682\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "5eO6hYj4CiZU", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "d74e35bc-b8d8-40de-bbb0-30c185fd8729" | |
}, | |
"source": [ | |
"rnd_clf.feature_importances_" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"array([0.11249225, 0.02311929, 0.44103046, 0.423358 ])" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 20 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "1LmjZvTRCiZd", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 302 | |
}, | |
"outputId": "d4b98927-cbc8-4c9a-e264-f9922b0fee15" | |
}, | |
"source": [ | |
"features = iris['feature_names']\n", | |
"importances = rnd_clf.feature_importances_\n", | |
"indices = np.argsort(importances)\n", | |
"\n", | |
"plt.title('Feature Importances')\n", | |
"plt.barh(range(len(indices)), importances[indices], color='b', align='center')\n", | |
"plt.yticks(range(len(indices)), [features[i] for i in indices])\n", | |
"plt.xlabel('Relative Importance')\n", | |
"plt.show()" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "DpLnpBSBCiZw", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 295 | |
}, | |
"outputId": "1959b12d-c17b-4768-f6ef-03f9dd47868e" | |
}, | |
"source": [ | |
"plt.figure(figsize=(6, 4))\n", | |
"\n", | |
"for i in range(15):\n", | |
" tree_clf = DecisionTreeClassifier(max_leaf_nodes=16, random_state=42 + i)\n", | |
" indices_with_replacement = np.random.randint(0, len(X_train), len(X_train))\n", | |
" tree_clf.fit(X[indices_with_replacement], y[indices_with_replacement])\n", | |
" plot_decision_boundary(tree_clf, X, y, axes=[-1.5, 2.5, -1, 1.5], alpha=0.02, contour=False)\n", | |
"\n", | |
"plt.show()" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "MEf2FUrXCiZ4" | |
}, | |
"source": [ | |
"### Applying a Random Forest and XGBoost model to Bankruptcy" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "MlfqmnywCiZ6" | |
}, | |
"source": [ | |
"The following datasets have been set up so that we can predict a bankruptcy one (df_1) and two (df_2) years in advance. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "6vOfzU9xCiZ8" | |
}, | |
"source": [ | |
"from pathlib import Path\n", | |
"import pandas as pd\n", | |
"import numpy as np\n", | |
"\n", | |
"\n", | |
"df_1 = pd.read_csv(\"https://open-data.s3.filebase.com/one_year.csv\")\n", | |
"df_2 = pd.read_csv(\"https://open-data.s3.filebase.com/two_year.csv\")\n" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "PTF0jlPLCiaE" | |
}, | |
"source": [ | |
"## Lets put the files in a dictionary\n", | |
"df = {}\n", | |
"df[0] = df_1\n", | |
"df[1] = df_2" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "7r5vPUXuCiaY" | |
}, | |
"source": [ | |
"### Dealing With Imbalanced Data" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "BKX633UACiaa" | |
}, | |
"source": [ | |
"Data Imbalance is a condition where the samples belonging to one or more 'majority' class labels of a labelled dataset heavily outnumber the sample belonging to the other 'minority' classes. It critically affects the modeling as the models won't have sufficient data belonging to minority classes to train on and this leads to biased models, ultimately leading to poor performance on test data." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "px57XmNVCiad", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "36919341-22fc-47a9-f110-09f19a504b3e" | |
}, | |
"source": [ | |
"\n", | |
"def check_data_imbalance(dfs):\n", | |
" for i in range(len(dfs)):\n", | |
" print('Dataset: '+str(i+1)+'year')\n", | |
" print(dfs[i].groupby('Y').size())\n", | |
" minority_percent = (dfs[i]['Y'].tolist().count(1) / len(dfs[i]['Y'].tolist()))*100\n", | |
" print('Minority (label 1) percentage: '+ str(minority_percent) + '%')\n", | |
" print('-'*64)\n", | |
" \n", | |
"check_data_imbalance(df)\n", | |
"\n" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"Dataset: 1year\n", | |
"Y\n", | |
"0.0 6756\n", | |
"1.0 271\n", | |
"dtype: int64\n", | |
"Minority (label 1) percentage: 3.856553294435748%\n", | |
"----------------------------------------------------------------\n", | |
"Dataset: 2year\n", | |
"Y\n", | |
"0.0 9773\n", | |
"1.0 400\n", | |
"dtype: int64\n", | |
"Minority (label 1) percentage: 3.931976801336872%\n", | |
"----------------------------------------------------------------\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "hLD4euNBCia1" | |
}, | |
"source": [ | |
"#### Oversampling with SMOTE (Synthetic Minority Over Sampling Technique)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "In3bBl3HCia4", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "6d493c3a-f06a-47a3-fdb3-c85d0168dc21" | |
}, | |
"source": [ | |
"from collections import OrderedDict\n", | |
"from imblearn.over_sampling import SMOTE \n", | |
"from collections import Counter\n", | |
"from xgboost import XGBClassifier\n", | |
"\n", | |
"def set_new_headers(dataframes):\n", | |
" cols = ['X' + str(i+1) for i in range(len(dataframes[0].columns)-1)]\n", | |
" cols.append('Y')\n", | |
" for df in dataframes:\n", | |
" df.columns = cols\n", | |
"\n", | |
"# Split the features and labels into separate dataframes for all the original dataframes\n", | |
"def split_dataframes_features_labels(dfs):\n", | |
" feature_dfs = [dfs[i].iloc[:,0:64] for i in range(len(dfs))]\n", | |
" label_dfs = [dfs[i].iloc[:,64] for i in range(len(dfs))]\n", | |
" return feature_dfs, label_dfs\n", | |
"\n", | |
"# Performs the SMOTE oversampling fro given dataframes.\n", | |
"def oversample_data_SMOTE(dfs, verbose=False):\n", | |
" smote = SMOTE(sampling_strategy='auto' , random_state=42, k_neighbors=10)\n", | |
" #Split the features and labels for each dataframe\n", | |
" feature_dfs, label_dfs = split_dataframes_features_labels(dfs)\n", | |
" resampled_feature_arrays = []\n", | |
" resampled_label_arrays = []\n", | |
" for i in range(len(dfs)):\n", | |
" if verbose: print('Dataset: ' + str(i+1) + 'year:')\n", | |
" if verbose: print('Original dataset shape {}'.format(Counter(label_dfs[i])))\n", | |
" dfi_features_res, dfi_label_res = smote.fit_resample(feature_dfs[i], label_dfs[i])\n", | |
" if verbose: print('Resampled dataset shape {}\\n'.format(Counter(dfi_label_res)))\n", | |
" # Append the resampled feature and label arrays of ith dataframe to their respective list of arrays \n", | |
" resampled_feature_arrays.append(dfi_features_res)\n", | |
" resampled_label_arrays.append(dfi_label_res) \n", | |
" return resampled_feature_arrays, resampled_label_arrays\n", | |
"\n", | |
"# Utility Function to convert the arrays of features and labels to pandas dataframes, and then join them.\n", | |
"# Also re-assign the columns headers.\n", | |
"def restructure_arrays_to_dataframes(feature_arrays, label_arrays):\n", | |
" resampled_dfs = []\n", | |
" for i in range(len(feature_arrays)):\n", | |
" feature_df = pd.DataFrame(data=feature_arrays[i])\n", | |
" label_df = pd.DataFrame(data=label_arrays[i])\n", | |
" # Must set the column header for label_df, otherwise it wont join with feature_df, as columns overlap (with col names '0')\n", | |
" label_df.columns=['Y'] \n", | |
" resampled_dfs.append(feature_df.join(label_df))\n", | |
" # re-assign the column headers for features and labels \n", | |
" set_new_headers(resampled_dfs) \n", | |
" return resampled_dfs\n", | |
"\n", | |
"# Perform SMOTE oversampling on all the imputed dataframes, and return them in a dictionary.\n", | |
"def perform_oversampling(dfs):\n", | |
"\n", | |
" smote_feature_arrays, smote_label_arrays = oversample_data_SMOTE(dfs, verbose=True)\n", | |
" oversampled_dataframes = restructure_arrays_to_dataframes(smote_feature_arrays, smote_label_arrays)\n", | |
" print('-'*100)\n", | |
" return oversampled_dataframes\n", | |
"\n", | |
"oversampled_df = perform_oversampling(df)" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"Dataset: 1year:\n", | |
"Original dataset shape Counter({0.0: 6756, 1.0: 271})\n", | |
"Resampled dataset shape Counter({0.0: 6756, 1.0: 6756})\n", | |
"\n", | |
"Dataset: 2year:\n", | |
"Original dataset shape Counter({0.0: 9773, 1.0: 400})\n", | |
"Resampled dataset shape Counter({0.0: 9773, 1.0: 9773})\n", | |
"\n", | |
"----------------------------------------------------------------------------------------------------\n" | |
] | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "Q2AhvJxvCibD" | |
}, | |
"source": [ | |
"### Building Classification Model" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "MoCpTos5CibF" | |
}, | |
"source": [ | |
"#### Cross-Validation" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "pr6vmcsBCibG" | |
}, | |
"source": [ | |
"def prepare_kfold_cv_data(k, X, y, verbose=False):\n", | |
" X = X.values\n", | |
" y = y.values\n", | |
" kf = KFold(n_splits=k, shuffle=True, random_state=42)\n", | |
" X_train = []\n", | |
" y_train = []\n", | |
" X_test = []\n", | |
" y_test = []\n", | |
" \n", | |
" for train_index, test_index in kf.split(X):\n", | |
" X_train.append(X[train_index])\n", | |
" y_train.append(y[train_index])\n", | |
" X_test.append(X[test_index])\n", | |
" y_test.append(y[test_index])\n", | |
" return X_train, y_train, X_test, y_test" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "pYFtklx6CibP" | |
}, | |
"source": [ | |
"#### Random Forest Model" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "56paVfDiCibR" | |
}, | |
"source": [ | |
"# Random Forest Classifier\n", | |
"rf_classifier = RandomForestClassifier(n_estimators = 5, criterion = 'entropy')" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "9BAfDevhCibf" | |
}, | |
"source": [ | |
"#### XGBoost Model" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "0Yr5XPirCibv" | |
}, | |
"source": [ | |
"# eXtreme Gradient Boosting Classifier (XGBClassifier)\n", | |
"xgb_classifier = XGBClassifier()" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "8hyV0vklCib1" | |
}, | |
"source": [ | |
"# creating a dictionary of models\n", | |
"models_dictionary = OrderedDict()\n", | |
"\n", | |
"models_dictionary['Random Forest'] = rf_classifier\n", | |
"models_dictionary['Extreme Gradient Boosting'] = xgb_classifier\n" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "v8jZ91IECib_" | |
}, | |
"source": [ | |
"#### Perform Data Modeling" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "zHY2ZjKHCicB" | |
}, | |
"source": [ | |
"import numpy\n" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "Qe3-OMC-CicS" | |
}, | |
"source": [ | |
"feature_dfs, label_dfs = split_dataframes_features_labels(oversampled_df) " | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "DDCMYYfJCicZ" | |
}, | |
"source": [ | |
"from sklearn.model_selection import KFold\n", | |
"from sklearn.metrics import accuracy_score\n", | |
"from sklearn.metrics import precision_score\n", | |
"from sklearn.metrics import recall_score\n", | |
"from sklearn.metrics import classification_report\n", | |
"from sklearn.metrics import confusion_matrix\n", | |
"from sklearn.metrics import roc_curve\n", | |
"from sklearn.metrics import precision_recall_curve\n", | |
"from sklearn.metrics import roc_auc_score\n", | |
"\n", | |
"def perform_data_modeling(_models_, _imputers_, verbose=False, k_folds=5):\n", | |
" \n", | |
" # 2 Models\n", | |
" # 2 datasets (year_1, year_2)\n", | |
" # 7 metrics, averaged over all the K-Folds\n", | |
" model_results = OrderedDict()\n", | |
" \n", | |
" # Iterate over the models\n", | |
" for model_name, clf in _models_.items():\n", | |
" if verbose: print(\"-\"*120, \"\\n\", \"Model: \" + '\\033[1m' + model_name + '\\033[0m' + \" Classifier\")\n", | |
"\n", | |
" # call the split_dataframes_features_labels function to get a list of features and labels for all the dataframes\n", | |
" feature_dfs, label_dfs = split_dataframes_features_labels(oversampled_df) \n", | |
"\n", | |
" year_results = OrderedDict()\n", | |
"\n", | |
" # Iterate over dataframe_list individually\n", | |
" for df_index in range(len(oversampled_df)):\n", | |
" if verbose: print('\\t\\tDataset: ' + '\\033[1m' + str(df_index+1) + 'year' + '\\033[0m')\n", | |
"\n", | |
" # Calling the 'prepare_kfold_cv_data' returns lists of features and labels \n", | |
" # for train and test sets respectively.\n", | |
" # The number of items in the list is equal to k_folds\n", | |
" X_train_list, y_train_list, X_test_list, y_test_list = prepare_kfold_cv_data(k_folds, feature_dfs[df_index], label_dfs[df_index], verbose)\n", | |
"\n", | |
" metrics_results = OrderedDict()\n", | |
" accuracy_list = np.zeros([k_folds])\n", | |
" precision_list = np.zeros([k_folds,2])\n", | |
" recall_list = np.zeros([k_folds,2])\n", | |
" roc_au_list = np.zeros([k_folds,2])\n", | |
" TN_list = np.zeros([k_folds])\n", | |
" FP_list = np.zeros([k_folds])\n", | |
" FN_list = np.zeros([k_folds])\n", | |
" TP_list = np.zeros([k_folds]) \n", | |
"\n", | |
" # Iterate over all the k-folds\n", | |
" for k_index in range(k_folds):\n", | |
" X_train = X_train_list[k_index]\n", | |
" y_train = y_train_list[k_index]\n", | |
" X_test = X_test_list[k_index]\n", | |
" y_test = y_test_list[k_index]\n", | |
"\n", | |
"\n", | |
" # Fit the model and \n", | |
" clf = clf.fit(X_train, y_train)\n", | |
" y_test_predicted = clf.predict(X_test)\n", | |
" \n", | |
" y_test_predicted_prob = clf.predict_proba(X_test)\n", | |
"\n", | |
" #code for calculating accuracy \n", | |
" _accuracy_ = accuracy_score(y_test, y_test_predicted, normalize=True)\n", | |
" accuracy_list[k_index] = _accuracy_\n", | |
"\n", | |
" #code for calculating recall \n", | |
" _recalls_ = recall_score(y_test, y_test_predicted, average=None)\n", | |
" recall_list[k_index] = _recalls_\n", | |
" \n", | |
" _roc_au_ = roc_auc_score(y_test, y_test_predicted)\n", | |
" roc_au_list[k_index] = _roc_au_\n", | |
"\n", | |
" #code for calculating precision \n", | |
" _precisions_ = precision_score(y_test, y_test_predicted, average=None)\n", | |
" precision_list[k_index] = _precisions_\n", | |
"\n", | |
" #code for calculating confusion matrix \n", | |
" _confusion_matrix_ = confusion_matrix(y_test, y_test_predicted)\n", | |
" TN_list[k_index] = _confusion_matrix_[0][0]\n", | |
" FP_list[k_index] = _confusion_matrix_[0][1]\n", | |
" FN_list[k_index] = _confusion_matrix_[1][0]\n", | |
" TP_list[k_index] = _confusion_matrix_[1][1]\n", | |
"\n", | |
" # creating a metrics dictionary\n", | |
" metrics_results['Accuracy'] = np.mean(accuracy_list)\n", | |
" metrics_results['Precisions'] = np.mean(precision_list, axis=0)\n", | |
" metrics_results['Recalls'] = np.mean(recall_list, axis=0)\n", | |
" metrics_results['ROC AUC'] = np.mean(roc_au_list, axis=0)\n", | |
" metrics_results['TN'] = np.mean(TN_list)\n", | |
" metrics_results['FP'] = np.mean(FP_list)\n", | |
" metrics_results['FN'] = np.mean(FN_list)\n", | |
" metrics_results['TP'] = np.mean(TP_list)\n", | |
"\n", | |
" if verbose:\n", | |
" print('\\t\\t\\tAccuracy:', metrics_results['Accuracy'])\n", | |
" print('\\t\\t\\tPrecision:', metrics_results['Precisions'])\n", | |
" print('\\t\\t\\tRecall:', metrics_results['Recalls'])\n", | |
" print('\\t\\t\\tRoc AUC:', metrics_results['ROC AUC'][0])\n", | |
"\n", | |
" year_results[str(df_index+1)+'year'] = metrics_results \n", | |
" \n", | |
" \n", | |
" model_results[model_name] = year_results \n", | |
" \n", | |
" return model_results" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "mSogbF8nCich" | |
}, | |
"source": [ | |
"### Randomising Order\n", | |
"oversampled_df[0] = oversampled_df[0].sample(len(oversampled_df[0]))\n", | |
"oversampled_df[1] = oversampled_df[1].sample(len(oversampled_df[1]))" | |
], | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "FV8Zl0RKCicr", | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"outputId": "c429ad59-0007-437a-b777-689b92c06566" | |
}, | |
"source": [ | |
"### We would expect XGBoost to perform better, so some hyperperamater tuning might be necessary. \n", | |
"results = perform_data_modeling(models_dictionary, oversampled_df, verbose=True, k_folds=5)" | |
], | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"name": "stdout", | |
"text": [ | |
"------------------------------------------------------------------------------------------------------------------------ \n", | |
" Model: \u001b[1mRandom Forest\u001b[0m Classifier\n", | |
"\t\tDataset: \u001b[1m1year\u001b[0m\n", | |
"\t\t\tAccuracy: 0.9732087301632941\n", | |
"\t\t\tPrecision: [0.97991346 0.9667839 ]\n", | |
"\t\t\tRecall: [0.96622022 0.98015476]\n", | |
"\t\t\tRoc AUC: 0.9731874915956616\n", | |
"\t\tDataset: \u001b[1m2year\u001b[0m\n", | |
"\t\t\tAccuracy: 0.959889153432403\n", | |
"\t\t\tPrecision: [0.96905784 0.95100134]\n", | |
"\t\t\tRecall: [0.95025611 0.96953907]\n", | |
"\t\t\tRoc AUC: 0.9598975915851865\n", | |
"------------------------------------------------------------------------------------------------------------------------ \n", | |
" Model: \u001b[1mExtreme Gradient Boosting\u001b[0m Classifier\n", | |
"\t\tDataset: \u001b[1m1year\u001b[0m\n", | |
"\t\t\tAccuracy: 0.9611455101152788\n", | |
"\t\t\tPrecision: [0.95667298 0.96580417]\n", | |
"\t\t\tRecall: [0.96611121 0.95618838]\n", | |
"\t\t\tRoc AUC: 0.9611497966442037\n", | |
"\t\tDataset: \u001b[1m2year\u001b[0m\n", | |
"\t\t\tAccuracy: 0.9461270109832448\n", | |
"\t\t\tPrecision: [0.93883722 0.95359509]\n", | |
"\t\t\tRecall: [0.95440124 0.93795133]\n", | |
"\t\t\tRoc AUC: 0.9461762828462217\n" | |
] | |
} | |
] | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment