Skip to content

Instantly share code, notes, and snippets.

@aakashns
Created March 28, 2018 10:07
Show Gist options
  • Save aakashns/ec6865e9a14e8f811c1f12ed33698056 to your computer and use it in GitHub Desktop.
Save aakashns/ec6865e9a14e8f811c1f12ed33698056 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Definitions and Imports"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from fastai.structured import *\n",
"from fastai.column_data import *"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Data Setup"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"feat_arr = np.random.randn(10000, 4)\n",
"lab_arr = np.random.randint(0,3,size=10000)\n",
"cat_arr = np.random.randint(0,4,size=10000)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df = pd.DataFrame(feat_arr, columns=['Col1', 'Col2', 'Col3', 'Col4'])\n",
"cat_series = pd.Series(cat_arr, name='Cat1')\n",
"cat_series = cat_series.map({0: 'L0', 1: 'L1', 2: 'L2', 3: 'L3'})\n",
"lab_series = pd.Series(lab_arr, name='Label')\n",
"lab_series = lab_series.map({0:'V1', 1: 'V2', 2: 'V3'})\n",
"trn_df = pd.concat([df, lab_series], axis=1)\n",
"trn_df = pd.concat([trn_df, cat_series], axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"cat_vars = ['Cat1']\n",
"cont_vars = ['Col1', 'Col2', 'Col3', 'Col4']"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"for v in cat_vars + ['Label'] :\n",
" trn_df[v] = trn_df[v].astype('category').cat.as_ordered()\n",
"\n",
"for v in cont_vars:\n",
" trn_df[v] = trn_df[v].astype('float32')"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df, y, nas = proc_df(trn_df, 'Label', do_scale=False)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.max(y)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 1\n",
"1 2\n",
"2 0\n",
"3 2\n",
"4 1\n",
"5 1\n",
"6 0\n",
"7 0\n",
"8 2\n",
"9 2\n",
"10 2\n",
"11 0\n",
"12 1\n",
"13 1\n",
"14 2\n",
"15 2\n",
"16 1\n",
"17 1\n",
"18 1\n",
"19 0\n",
"20 2\n",
"21 1\n",
"22 1\n",
"23 2\n",
"24 1\n",
"25 1\n",
"26 2\n",
"27 1\n",
"28 1\n",
"29 0\n",
" ..\n",
"9970 1\n",
"9971 2\n",
"9972 0\n",
"9973 0\n",
"9974 2\n",
"9975 0\n",
"9976 0\n",
"9977 2\n",
"9978 0\n",
"9979 1\n",
"9980 0\n",
"9981 0\n",
"9982 0\n",
"9983 0\n",
"9984 2\n",
"9985 0\n",
"9986 2\n",
"9987 1\n",
"9988 1\n",
"9989 2\n",
"9990 1\n",
"9991 1\n",
"9992 2\n",
"9993 0\n",
"9994 2\n",
"9995 0\n",
"9996 0\n",
"9997 0\n",
"9998 1\n",
"9999 0\n",
"Length: 10000, dtype: int8"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"trn_df['Label'].cat.codes"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"y = y-1"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"val_idxs = get_cv_idxs(len(trn_df), val_pct=0.15)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Model Training"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"md = ColumnarModelData.from_data_frame('.', val_idxs, df, y, cat_flds=cat_vars, bs=32,\n",
" test_df=None, is_reg=False)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"cat_sz = [(c, len(trn_df[c].cat.categories)+1) for c in cat_vars]"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[('Cat1', 5)]"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cat_sz"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"emb_szs = [(c, min(50, (c+1)//2)) for _,c in cat_sz]"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"m = md.get_learner(emb_szs, len(df.columns)-len(cat_vars),\n",
" 0.04, 3, [100,50], [0.001,0.01], y_range=None)\n",
"lr = 1e-3"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "41f61547cf6a45048e1c38992759e2cf",
"version_major": 2,
"version_minor": 0
},
"text/html": [
"<p>Failed to display Jupyter Widget of type <code>HBox</code>.</p>\n",
"<p>\n",
" If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n",
" that the widgets JavaScript is still loading. If this message persists, it\n",
" likely means that the widgets JavaScript library is either not installed or\n",
" not enabled. See the <a href=\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\">Jupyter\n",
" Widgets Documentation</a> for setup instructions.\n",
"</p>\n",
"<p>\n",
" If you're reading this message in another frontend (for example, a static\n",
" rendering on GitHub or <a href=\"https://nbviewer.jupyter.org/\">NBViewer</a>),\n",
" it may mean that your frontend doesn't currently support widgets.\n",
"</p>\n"
],
"text/plain": [
"HBox(children=(IntProgress(value=0, description='Epoch', max=1), HTML(value='')))"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" 81%|████████ | 216/266 [00:01<00:00, 188.05it/s, loss=15.2]\n",
" \r"
]
}
],
"source": [
"m.lr_find()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1c24042d68>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"m.sched.plot()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "b54ccbbbcede43f386da418c317b141f",
"version_major": 2,
"version_minor": 0
},
"text/html": [
"<p>Failed to display Jupyter Widget of type <code>HBox</code>.</p>\n",
"<p>\n",
" If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n",
" that the widgets JavaScript is still loading. If this message persists, it\n",
" likely means that the widgets JavaScript library is either not installed or\n",
" not enabled. See the <a href=\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\">Jupyter\n",
" Widgets Documentation</a> for setup instructions.\n",
"</p>\n",
"<p>\n",
" If you're reading this message in another frontend (for example, a static\n",
" rendering on GitHub or <a href=\"https://nbviewer.jupyter.org/\">NBViewer</a>),\n",
" it may mean that your frontend doesn't currently support widgets.\n",
"</p>\n"
],
"text/plain": [
"HBox(children=(IntProgress(value=0, description='Epoch', max=3), HTML(value='')))"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"torch.Size([64, 3]) \n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([28, 3])\n",
"torch.Size([28])\n",
"epoch trn_loss val_loss \n",
" 0 1.100075 1.099707 \n",
"torch.Size([64, 3]) \n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([28, 3])\n",
"torch.Size([28])\n",
" 1 1.099718 1.099609 \n",
"torch.Size([64, 3]) \n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([64, 3])\n",
"torch.Size([64])\n",
"torch.Size([28, 3])\n",
"torch.Size([28])\n",
" 2 1.098962 1.100644 \n",
"\n"
]
},
{
"data": {
"text/plain": [
"[1.1006438]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"m.fit(0.01, 3)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"d = PassthruDataset([], [], is_reg=False)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"d.is_reg"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda env:fastai]",
"language": "python",
"name": "conda-env-fastai-py"
},
"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.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment