Created
March 22, 2018 06:49
-
-
Save padjiman/2cb53fcea28ad384e0bdea9f107caa7f to your computer and use it in GitHub Desktop.
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": "code", | |
"execution_count": 125, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"import pandas as pd\n", | |
"import numpy as np\n", | |
"from sklearn import datasets\n", | |
"from sklearn.model_selection import train_test_split\n", | |
"import matplotlib.pyplot as plt" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 126, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"#directory = \"/Users/padjiman/data/KDDCUP1998/\"\n", | |
"directory = \"/Users/padjiman/data/bankVW/\"\n", | |
"data_file = \"train.vw\"\n", | |
"data = pd.read_csv(directory+data_file, header=None)\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 127, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"train, test = train_test_split(data, test_size=0.20 , random_state = 26 )\n", | |
"train.to_csv(directory+'split_train.vw', index=False, header=None)\n", | |
"test.to_csv(directory+'split_test.vw', index=False, header=None)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 128, | |
"metadata": { | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"creating features for following interactions: ic \n", | |
"final_regressor = model.vw\n", | |
"Num weight bits = 26\n", | |
"learning rate = 0.5\n", | |
"initial_t = 0\n", | |
"power_t = 0.5\n", | |
"decay_learning_rate = 1\n", | |
"using cache_file = split_train.vw.cache\n", | |
"ignoring text input in favor of cache input\n", | |
"num sources = 1\n", | |
"average since example example current current current\n", | |
"loss last counter weight label predict features\n", | |
"0.693147 0.693147 1 1.0 1.0000 0.0000 60\n", | |
"1.109843 1.526538 2 2.0 -1.0000 1.2815 60\n", | |
"0.760195 0.410548 4 4.0 -1.0000 -0.2754 60\n", | |
"0.465710 0.171224 8 8.0 -1.0000 -0.7350 50\n", | |
"0.318235 0.170760 16 16.0 -1.0000 -2.7830 60\n", | |
"0.531552 0.744869 32 32.0 -1.0000 -6.1178 60\n", | |
"2.579228 4.626905 64 64.0 -1.0000 -3.2457 60\n", | |
"2.194169 1.809109 128 128.0 -1.0000 -2.9788 60\n", | |
"2.114863 2.035556 256 256.0 -1.0000 -1.4744 60\n", | |
"1.616420 1.117978 512 512.0 -1.0000 -1.9029 60\n", | |
"1.143370 0.670321 1024 1024.0 -1.0000 -3.5995 60\n", | |
"0.766199 0.389027 2048 2048.0 -1.0000 -3.3793 60\n", | |
"0.530801 0.295404 4096 4096.0 -1.0000 -4.4217 60\n", | |
"0.389938 0.249075 8192 8192.0 -1.0000 -2.8836 60\n", | |
"0.318798 0.247658 16384 16384.0 -1.0000 -3.9569 70\n", | |
"0.263437 0.263437 32768 32768.0 -1.0000 -4.6966 60 h\n", | |
"0.252186 0.240939 65536 65536.0 -1.0000 -4.0019 60 h\n", | |
"\n", | |
"finished run\n", | |
"number of examples per pass = 32552\n", | |
"passes used = 4\n", | |
"weighted example sum = 130208.000000\n", | |
"weighted label sum = -99792.000000\n", | |
"average loss = 0.239227 h\n", | |
"best constant = -2.023110\n", | |
"best constant's loss = 0.360496\n", | |
"total feature number = 7949680\n", | |
"creating features for following interactions: ic \n", | |
"only testing\n", | |
"predictions = preds.txt\n", | |
"Num weight bits = 26\n", | |
"learning rate = 0.5\n", | |
"initial_t = 0\n", | |
"power_t = 0.5\n", | |
"using no cache\n", | |
"Reading datafile = split_test.vw\n", | |
"num sources = 1\n", | |
"average since example example current current current\n", | |
"loss last counter weight label predict features\n", | |
"1.358600 1.358600 1 1.0 -1.0000 0.1029 60\n", | |
"7.592927 13.827254 2 2.0 -1.0000 0.0088 60\n", | |
"9.232505 10.872083 4 4.0 1.0000 0.1225 60\n", | |
"9.071785 8.911065 8 8.0 -1.0000 0.1698 60\n", | |
"9.430997 9.790208 16 16.0 -1.0000 0.0333 60\n", | |
"8.353756 7.276516 32 32.0 1.0000 0.2188 60\n", | |
"8.469951 8.586146 64 64.0 -1.0000 0.0321 60\n", | |
"7.585703 6.701455 128 128.0 -1.0000 0.0199 60\n", | |
"7.449527 7.313351 256 256.0 -1.0000 0.2331 60\n", | |
"7.174785 6.900042 512 512.0 -1.0000 0.1774 60\n", | |
"7.090911 7.007037 1024 1024.0 -1.0000 0.1080 60\n", | |
"7.169777 7.248644 2048 2048.0 -1.0000 0.0220 60\n", | |
"7.188963 7.208148 4096 4096.0 -1.0000 0.0207 60\n", | |
"7.211928 7.234893 8192 8192.0 -1.0000 0.0065 60\n", | |
"\n", | |
"finished run\n", | |
"number of examples per pass = 9043\n", | |
"passes used = 1\n", | |
"weighted example sum = 9043.000000\n", | |
"weighted label sum = -6955.000000\n", | |
"average loss = 7.205263\n", | |
"best constant = -0.769103\n", | |
"best constant's loss = 0.408480\n", | |
"total feature number = 552460\n" | |
] | |
} | |
], | |
"source": [ | |
"!cd $directory && vw split_train.vw -c --passes 4 -f model.vw --loss_function logistic --interactions ic -b 26\n", | |
"!cd $directory && vw split_test.vw -t -i model.vw -p preds.txt --link logistic" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 129, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"0.914318312778\n" | |
] | |
} | |
], | |
"source": [ | |
"preds = pd.read_csv(directory+'preds.txt', header=None)\n", | |
"test_split = pd.read_csv(directory+'split_test.vw', header=None, sep = '|')\n", | |
"from sklearn import metrics\n", | |
"fpr, tpr, thresholds = metrics.roc_curve(test_split[0].values, preds[0].values)\n", | |
"auc = metrics.auc(fpr, tpr)\n", | |
"print(auc)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 133, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\nTkSuQmCC\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x11de67320>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.title('ROC Curve')\n", | |
"plt.plot(fpr, tpr, 'b',\n", | |
"label='AUC = %0.2f'% auc)\n", | |
"plt.legend(loc='lower right')\n", | |
"plt.plot([0,1],[0,1],'r--')\n", | |
"plt.xlim([0,1.1])\n", | |
"plt.ylim([0,1.1])\n", | |
"plt.ylabel('True Positive Rate')\n", | |
"plt.xlabel('False Positive Rate')\n", | |
"plt.show()\n", | |
"\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"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.5.3" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment