Last active
November 15, 2022 15:34
-
-
Save cmarinbe/b026d08eaaec20bcef19 to your computer and use it in GitHub Desktop.
Checking imbalance effect
This file contains 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
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Check that the ROC curve is invariant under imbalance of the test data" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"%matplotlib inline" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# imports\n", | |
"import numpy as np\n", | |
"from collections import OrderedDict\n", | |
"\n", | |
"from sklearn import datasets\n", | |
"from sklearn.cross_validation import train_test_split\n", | |
"from sklearn.metrics import roc_curve, auc\n", | |
"\n", | |
"from scikit_learn.general_tools.compare_train_test import compare_train_test\n", | |
"from scikit_learn.imbalance.imbalance_base import plot_rocs\n", | |
"\n", | |
"# functions\n", | |
"def build_bdt(min_samples_leaf, max_depth=3,\n", | |
" alg=\"SAMME\", n_estim=100, learn_r=0.1):\n", | |
" from sklearn.tree import DecisionTreeClassifier\n", | |
" from sklearn.ensemble import AdaBoostClassifier\n", | |
" dt = DecisionTreeClassifier(max_depth=max_depth,\n", | |
" min_samples_leaf=min_samples_leaf)\n", | |
" bdt = AdaBoostClassifier(dt,\n", | |
" algorithm=alg,\n", | |
" n_estimators=n_estim,\n", | |
" learning_rate=learn_r)\n", | |
" return bdt\n", | |
"\n", | |
"def do_plots(y_test, pred, y_red, pred_red):\n", | |
" # plot bdt outputs\n", | |
" plt = compare_train_test(y_test, pred, y_red, pred_red,\n", | |
" labels=('full', 'reduced'))\n", | |
" plt.show()\n", | |
"\n", | |
" # plot rocs\n", | |
" colors = OrderedDict([('full', 'b'),\n", | |
" ('reduced', 'r')])\n", | |
"\n", | |
" plot_rocs([y_test, y_red],\n", | |
" [pred, pred_red],\n", | |
" colors)\n", | |
"\n", | |
"def roc_imabalance(n, rdm_state, plots=False):\n", | |
" # create random balanced sample\n", | |
" X, y = datasets.make_classification(n_samples=n,\n", | |
" random_state=rdm_state)\n", | |
"\n", | |
" # split samples\n", | |
" X_train,X_test,y_train,y_test=train_test_split(X, y,\n", | |
" test_size=0.33,\n", | |
" random_state=rdm_state)\n", | |
"\n", | |
" # make samples\n", | |
" n_sig_test = X_test[y_test==1].shape[0]\n", | |
" n_bkg_test = X_test[y_test==0].shape[0]\n", | |
"\n", | |
" #as samples are shulfed we keep the first 100\n", | |
" X_bkg_red = X_test[y_test==0][:1000,:]\n", | |
" y_bkg_red = y_test[y_test==0][:1000]\n", | |
" n_bkg_red = X_bkg_red.shape[0]\n", | |
" X_red = np.concatenate((X_test[y_test==1], X_bkg_red))\n", | |
" y_red = np.concatenate((np.ones(n_sig_test),\n", | |
" np.zeros(n_bkg_red)))\n", | |
"\n", | |
" print \"n sig test is: %s\" %n_sig_test\n", | |
" print \"n bkg test is: %s\" %n_bkg_test\n", | |
" print \"n bkg reduced is: %s\" %n_bkg_red\n", | |
" \n", | |
" # build bdt\n", | |
" bdt = build_bdt(0.05*len(X_train))\n", | |
"\n", | |
" # train bdt\n", | |
" bdt.fit(X_train, y_train)\n", | |
" \n", | |
" # apply to full test set\n", | |
" pred = bdt.predict_proba(X_test)[:,1]\n", | |
" pred_red = bdt.predict_proba(X_red)[:,1]\n", | |
" \n", | |
" # plots\n", | |
" if plots:\n", | |
" do_plots(y_test, pred, y_red, pred_red)\n", | |
" \n", | |
" # get roc area\n", | |
" areas = []\n", | |
" for y, dec in zip([y_test, y_red], [pred, pred_red]):\n", | |
" fpr, tpr, thresholds = roc_curve(y, dec)\n", | |
" roc_auc = auc(fpr, tpr)\n", | |
" areas.append(roc_auc)\n", | |
" \n", | |
" return areas" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"## Toy 0\n", | |
"n sig test is: 16416\n", | |
"n bkg test is: 16584\n", | |
"n bkg reduced is: 1000\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x116f0a050>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n112nPp9PH3/8ce3cubNmZmbqVVddpQUFBf5trrjiCm3ZsqU2bdpUBw0apEuWLAnL61Jm9+7d2qBB\nA/3hhx/8y6677jq99957g9Y/4YQTdPLkyf7ypEmTtF27dv5yt27d9KOPPvKX77rrLr3++utVVXXZ\nsmWampqqhYWFIcV266236qhRo8ot69q1q37xxRchbV9bKvvdd5cf0qfG9Bm/5fhNXfD5558zcOBA\nnn/+eXbt2kXXrl0Pm74J1aJFizj66KPLLWvRogUffvghu3bt4tVXX+X2229n3rx5/vWbN29m+/bt\nrF27lvHjx/Pss88yZcoUvvzySzZu3Eh6ejo333yzv/4FF1zAqlWr2Lp1K3369OGaa66pNJ6bbrqJ\n9PT0oI/s7Oyg26xcuZKEhAS6dOniX3b88cezZMmSSo+jAZ+AfD4feXl5FBYWAnDOOecwadIk9u7d\ny/r16/noo48477zzAJg9ezYdOnTgwQcfpFmzZvTq1Yv33nuv0mN8+eWXHHfcceWWd+/enQULFlQa\nW30Q2x2/wvwDluP3glDaLBKeR3UFdlbhsmPHDlJSUsotO//88+nUqRMAgwYN4uyzz2bmzJn+9XFx\ncTz00EMkJiaSlJTE+PHjefTRR2ndujWJiYn84Q9/4J133sHnjmuek5NDkyZN/OsWLFjg72QreuGF\nF9i+fXvQx/z584Nus3v3blJTU8stS0lJqfQY5557Ln/961/Ztm0bmzZt4tlnn0VEKCoqAmDMmDEs\nXryY1NRU2rVrR79+/bjkEmcakLy8PBYvXkxaWhobN25k3Lhx/OpXv2L58uWHHGfMmDEAjBgx4pDY\nduzYETS2+iKmO/7QB4U2XqAankd1RWIsoYyMjEM6yI8++oj+/fuTmZlJeno606ZNIz8/37++WbNm\nNGjQwF9evXo1l156qf/MvEePHiQkJLB582ZKS0u599576dKlC02bNqVTp06ISFjvbElOTmbXrl3l\nlu3cufOQf2hlRo8eTe/evcnOzubUU0/l0ksvJSEhgRYtWqCqnHPOOVx55ZUUFRWxbds2CgoKuOee\newBo1KgRiYmJ3H///SQkJDBo0CBOO+00Pvnkk3LHGDduHP/617/48MMPSUxMLLeusLCQ9PT0sLU/\nGmK641eF3g3sPn4vqG9tbtKkCXv27PGXN23aVK399OrVi5UrV/rL+/fv5/LLL+fuu+9my5YtbN++\n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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x10d143990>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"## Toy 1\n", | |
"n sig test is: 16591\n", | |
"n bkg test is: 16409\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 2\n", | |
"n sig test is: 16544\n", | |
"n bkg test is: 16456\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 3\n", | |
"n sig test is: 16411\n", | |
"n bkg test is: 16589\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 4\n", | |
"n sig test is: 16387\n", | |
"n bkg test is: 16613\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 5\n", | |
"n sig test is: 16488\n", | |
"n bkg test is: 16512\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 6\n", | |
"n sig test is: 16520\n", | |
"n bkg test is: 16480\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 7\n", | |
"n sig test is: 16523\n", | |
"n bkg test is: 16477\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 8\n", | |
"n sig test is: 16625\n", | |
"n bkg test is: 16375\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 9\n", | |
"n sig test is: 16501\n", | |
"n bkg test is: 16499\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 10\n", | |
"n sig test is: 16596\n", | |
"n bkg test is: 16404\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 11\n", | |
"n sig test is: 16388\n", | |
"n bkg test is: 16612\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 12\n", | |
"n sig test is: 16593\n", | |
"n bkg test is: 16407\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 13\n", | |
"n sig test is: 16508\n", | |
"n bkg test is: 16492\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 14\n", | |
"n sig test is: 16552\n", | |
"n bkg test is: 16448\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 15\n", | |
"n sig test is: 16377\n", | |
"n bkg test is: 16623\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 16\n", | |
"n sig test is: 16461\n", | |
"n bkg test is: 16539\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 17\n", | |
"n sig test is: 16571\n", | |
"n bkg test is: 16429\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 18\n", | |
"n sig test is: 16640\n", | |
"n bkg test is: 16360\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 19\n", | |
"n sig test is: 16458\n", | |
"n bkg test is: 16542\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 20\n", | |
"n sig test is: 16395\n", | |
"n bkg test is: 16605\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 21\n", | |
"n sig test is: 16645\n", | |
"n bkg test is: 16355\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 22\n", | |
"n sig test is: 16684\n", | |
"n bkg test is: 16316\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 23\n", | |
"n sig test is: 16574\n", | |
"n bkg test is: 16426\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 24\n", | |
"n sig test is: 16420\n", | |
"n bkg test is: 16580\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 25\n", | |
"n sig test is: 16582\n", | |
"n bkg test is: 16418\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 26\n", | |
"n sig test is: 16484\n", | |
"n bkg test is: 16516\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 27\n", | |
"n sig test is: 16506\n", | |
"n bkg test is: 16494\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 28\n", | |
"n sig test is: 16592\n", | |
"n bkg test is: 16408\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 29\n", | |
"n sig test is: 16456\n", | |
"n bkg test is: 16544\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 30\n", | |
"n sig test is: 16354\n", | |
"n bkg test is: 16646\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 31\n", | |
"n sig test is: 16526\n", | |
"n bkg test is: 16474\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 32\n", | |
"n sig test is: 16551\n", | |
"n bkg test is: 16449\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 33\n", | |
"n sig test is: 16504\n", | |
"n bkg test is: 16496\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 34\n", | |
"n sig test is: 16524\n", | |
"n bkg test is: 16476\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 35\n", | |
"n sig test is: 16593\n", | |
"n bkg test is: 16407\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 36\n", | |
"n sig test is: 16549\n", | |
"n bkg test is: 16451\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 37\n", | |
"n sig test is: 16471\n", | |
"n bkg test is: 16529\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 38\n", | |
"n sig test is: 16514\n", | |
"n bkg test is: 16486\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 39\n", | |
"n sig test is: 16521\n", | |
"n bkg test is: 16479\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 40\n", | |
"n sig test is: 16636\n", | |
"n bkg test is: 16364\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 41\n", | |
"n sig test is: 16632\n", | |
"n bkg test is: 16368\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 42\n", | |
"n sig test is: 16444\n", | |
"n bkg test is: 16556\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 43\n", | |
"n sig test is: 16581\n", | |
"n bkg test is: 16419\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 44\n", | |
"n sig test is: 16379\n", | |
"n bkg test is: 16621\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 45\n", | |
"n sig test is: 16568\n", | |
"n bkg test is: 16432\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 46\n", | |
"n sig test is: 16556\n", | |
"n bkg test is: 16444\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 47\n", | |
"n sig test is: 16599\n", | |
"n bkg test is: 16401\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 48\n", | |
"n sig test is: 16417\n", | |
"n bkg test is: 16583\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 49\n", | |
"n sig test is: 16524\n", | |
"n bkg test is: 16476\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 50\n", | |
"n sig test is: 16523\n", | |
"n bkg test is: 16477\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 51\n", | |
"n sig test is: 16485\n", | |
"n bkg test is: 16515\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 52\n", | |
"n sig test is: 16518\n", | |
"n bkg test is: 16482\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 53\n", | |
"n sig test is: 16542\n", | |
"n bkg test is: 16458\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 54\n", | |
"n sig test is: 16497\n", | |
"n bkg test is: 16503\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 55\n", | |
"n sig test is: 16431\n", | |
"n bkg test is: 16569\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 56\n", | |
"n sig test is: 16523\n", | |
"n bkg test is: 16477\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 57\n", | |
"n sig test is: 16373\n", | |
"n bkg test is: 16627\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 58\n", | |
"n sig test is: 16695\n", | |
"n bkg test is: 16305\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 59\n", | |
"n sig test is: 16303\n", | |
"n bkg test is: 16697\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 60\n", | |
"n sig test is: 16484\n", | |
"n bkg test is: 16516\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 61\n", | |
"n sig test is: 16460\n", | |
"n bkg test is: 16540\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 62\n", | |
"n sig test is: 16588\n", | |
"n bkg test is: 16412\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 63\n", | |
"n sig test is: 16543\n", | |
"n bkg test is: 16457\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 64\n", | |
"n sig test is: 16538\n", | |
"n bkg test is: 16462\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 65\n", | |
"n sig test is: 16626\n", | |
"n bkg test is: 16374\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 66\n", | |
"n sig test is: 16469\n", | |
"n bkg test is: 16531\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 67\n", | |
"n sig test is: 16559\n", | |
"n bkg test is: 16441\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 68\n", | |
"n sig test is: 16542\n", | |
"n bkg test is: 16458\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 69\n", | |
"n sig test is: 16464\n", | |
"n bkg test is: 16536\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 70\n", | |
"n sig test is: 16442\n", | |
"n bkg test is: 16558\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 71\n", | |
"n sig test is: 16316\n", | |
"n bkg test is: 16684\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 72\n", | |
"n sig test is: 16501\n", | |
"n bkg test is: 16499\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 73\n", | |
"n sig test is: 16620\n", | |
"n bkg test is: 16380\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 74\n", | |
"n sig test is: 16542\n", | |
"n bkg test is: 16458\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 75\n", | |
"n sig test is: 16462\n", | |
"n bkg test is: 16538\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 76\n", | |
"n sig test is: 16658\n", | |
"n bkg test is: 16342\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 77\n", | |
"n sig test is: 16372\n", | |
"n bkg test is: 16628\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 78\n", | |
"n sig test is: 16536\n", | |
"n bkg test is: 16464\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 79\n", | |
"n sig test is: 16475\n", | |
"n bkg test is: 16525\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 80\n", | |
"n sig test is: 16499\n", | |
"n bkg test is: 16501\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 81\n", | |
"n sig test is: 16440\n", | |
"n bkg test is: 16560\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 82\n", | |
"n sig test is: 16526\n", | |
"n bkg test is: 16474\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 83\n", | |
"n sig test is: 16441\n", | |
"n bkg test is: 16559\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 84\n", | |
"n sig test is: 16477\n", | |
"n bkg test is: 16523\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 85\n", | |
"n sig test is: 16581\n", | |
"n bkg test is: 16419\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 86\n", | |
"n sig test is: 16510\n", | |
"n bkg test is: 16490\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 87\n", | |
"n sig test is: 16440\n", | |
"n bkg test is: 16560\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 88\n", | |
"n sig test is: 16603\n", | |
"n bkg test is: 16397\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 89\n", | |
"n sig test is: 16483\n", | |
"n bkg test is: 16517\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 90\n", | |
"n sig test is: 16426\n", | |
"n bkg test is: 16574\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 91\n", | |
"n sig test is: 16572\n", | |
"n bkg test is: 16428\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 92\n", | |
"n sig test is: 16687\n", | |
"n bkg test is: 16313\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 93\n", | |
"n sig test is: 16486\n", | |
"n bkg test is: 16514\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 94\n", | |
"n sig test is: 16542\n", | |
"n bkg test is: 16458\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 95\n", | |
"n sig test is: 16519\n", | |
"n bkg test is: 16481\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 96\n", | |
"n sig test is: 16424\n", | |
"n bkg test is: 16576\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 97\n", | |
"n sig test is: 16500\n", | |
"n bkg test is: 16500\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 98\n", | |
"n sig test is: 16524\n", | |
"n bkg test is: 16476\n", | |
"n bkg reduced is: 1000\n", | |
"## Toy 99\n", | |
"n sig test is: 16643\n", | |
"n bkg test is: 16357\n", | |
"n bkg reduced is: 1000\n", | |
"### Results\n", | |
"Mean area with full set is: 0.9757 +- 0.0133\n", | |
"Mean area with redu set is: 0.9756 +- 0.0134\n" | |
] | |
} | |
], | |
"source": [ | |
"# run toys\n", | |
"n_toys = 100\n", | |
"n_samples = 100000\n", | |
"rdm_state = 500\n", | |
"plots = True\n", | |
"\n", | |
"areas = {'full': [], 'red': []}\n", | |
"for i in range(n_toys):\n", | |
" print \"## Toy %s\" %i\n", | |
" if i>0: plots = False \n", | |
" a_full, a_red = roc_imabalance(n_samples, rdm_state, plots)\n", | |
" areas['full'].append(a_full)\n", | |
" areas['red'].append(a_red)\n", | |
" rdm_state += 1\n", | |
"\n", | |
"print \"### Results\"\n", | |
"print \"Mean area with full set is: %0.4f +- %0.4f\" %(np.mean(areas['full']), np.std(areas['full']))\n", | |
"print \"Mean area with redu set is: %0.4f +- %0.4f\" %(np.mean(areas['red']), np.std(areas['red']))" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"This shows that the area under a ROC curve is and invariant measure under imbalanced samples." | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 2", | |
"language": "python", | |
"name": "python2" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 2 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython2", | |
"version": "2.7.2" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 0 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment