Skip to content

Instantly share code, notes, and snippets.

@oguiza
Created March 28, 2019 20:44
Show Gist options
  • Save oguiza/7f698965863916b60fee8e5f7f8906a3 to your computer and use it in GitHub Desktop.
Save oguiza/7f698965863916b60fee8e5f7f8906a3 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"def get_wf_idxs(arr, wf_folds, train_val_sz_ratio, test_set=False, plot_chart=True):\n",
" n_folds = int(1 + int(train_val_sz_ratio) + test_set + (wf_folds - 1))\n",
" fold_sz = arr.shape[-1] / n_folds\n",
" train_idx = []\n",
" valid_idx = []\n",
" test_idx = []\n",
" start = 0\n",
" idxs = np.arange(arr.shape[-1])\n",
" for i in range(wf_folds):\n",
" train_idx.append(idxs[start:int(start + fold_sz * train_val_sz_ratio)])\n",
" valid_idx.append(idxs[start + int(fold_sz * train_val_sz_ratio) : start + int(fold_sz * (train_val_sz_ratio + 1))])\n",
" if test_set:\n",
" test_idx.append(idxs[start + int(fold_sz * (train_val_sz_ratio + 1)) : start + int(fold_sz * (train_val_sz_ratio + 2))])\n",
" start += int(fold_sz)\n",
" if test_set is None:\n",
" test_idx = None\n",
" \n",
" if plot_chart:\n",
" df = pd.DataFrame()\n",
" for i in range(wf_folds):\n",
" if test_set:\n",
" df = df.append([[0, np.min(train_idx[i]), np.max(train_idx[i]), np.max(valid_idx[i]), np.max(test_idx[i]), len(idxs)]])\n",
" else:\n",
" df = df.append([[0, np.min(train_idx[i]), np.max(train_idx[i]), np.max(valid_idx[i]), len(idxs)]])\n",
"\n",
" df = df.diff(axis=1)\n",
" df.drop(df.columns[0], inplace=True, axis=1)\n",
" df = df.set_index(np.arange(wf_folds))\n",
" plt.style.use('classic')\n",
" if test_set:\n",
" df.plot(kind='barh', stacked = True, color=['lightgray', 'purple', 'orange', 'skyblue', 'lightgray'], figsize=(10, 5))\n",
" plt.legend([None, 'Train', 'Valid', 'Test'])\n",
" else:\n",
" df.plot(kind='barh', stacked = True, color=['lightgray', 'purple', 'orange', 'lightgray'], figsize=(10, 5))\n",
" plt.legend([None, 'Train', 'Valid'])\n",
" plt.gca().invert_yaxis()\n",
" plt.title('Walk-forward folds')\n",
" plt.show()\n",
"\n",
" return train_idx, valid_idx, test_idx\n",
"\n",
"def sliding_window(X, y, ws, ss=None, y_step=1):\n",
" if ss is None:\n",
" ss = ws\n",
" X_ = []\n",
" y_ = []\n",
" start = 0\n",
" for i in range((y.shape[-1] - y_step) // ss - 1):\n",
" X_.append(X[:, start : start + ws])\n",
" y_.append(y[start + ws])\n",
" start += ss\n",
" return np.array(X_), np.array(y_)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"# Get your data\n",
"n_feat = 3\n",
"total_len = 10000\n",
"X = np.arange(total_len)\n",
"\n",
"feat1 = [f'f1_{x}' for x in np.arange(total_len)]\n",
"feat2 = [f'f2_{x}' for x in np.arange(total_len)]\n",
"feat3 = [f'f3_{x}' for x in np.arange(total_len)]\n",
"y = np.array(feat1)\n",
"X = np.stack((feat1, feat2, feat3))"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAp0AAAFzCAYAAAB8c7JRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAMTQAADE0B0s6tTgAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzt3Xd8VFX+//F32kwaE4hgAhg6SFCQIliCJUKsUaOsyooKWFayX2FpIri6dgWlCF+lCQtEvqCIyirNBb75ikREUTC6NOVHCQihJGRInSST3x9sZhlDGWDOTMrr6YMH5N6bcz4zJ85955ZzA9LT0ysEAAAAGBTo7wIAAABQ+xE6AQAAYByhEwAAAMYROgEAAGAcoRMAAADGEToBAABgHKETAAAAxhE6gTpszZo1SkxM1I8//ui2/PDhw0pMTNS9995b5XsWL16sxMRE7d2795z6uu+++/T++++7vp49e7YSExPPr3BJ69at08CBA3XzzTcrMTFRRUVF591WdTV48GC99dZbZ93up59+0qBBg3TbbbcpMTFRu3bt8riP34/LhdYCAKcT7O8CAPjPFVdcIUnKzMx0/bvy69DQUOXm5mrv3r1q1qyZ27oGDRq4LfO10tJSvfbaa7riiis0dOhQhYSEyGq1+q0efxs3bpzq1aun1157TaGhoWrSpIm/SwKAKgidQB3WsGFDNWnSRJmZmW7LMzMz1aVLF+3Zs0c//vijW8D8+eef1alTJ1+X6ubQoUMqLi5WYmKiW1g+X6WlpQoMDFRQUJAXqvNcSUnJBYflsrIy/fbbb+rfv7+6du3qpcoAwPsInUAd16lTJ3355ZcqLy93ha7MzEzdfPPNqlevnjIzM3XnnXdKkvbu3avc3Fy30PnVV1/ps88+086dO1VUVKQmTZooOTlZd999twIDz+0KnoyMDL3yyitKTk7Wf/3XfykgIKDKNrNnz9b8+fMlSWPHjtXYsWN1++236+mnn1ZFRYUWL16szz//XAcPHlRUVJSuv/56Pf744woLC5MklZeXq3fv3nrkkUcUHByspUuX6vDhw/rwww/Vv39/PfTQQ3rwwQclSdu2bVNqaqquuOIKvf3225KkiooK3XPPPbrrrrv06KOPqry8XDNnztTGjRt14MABWa1WtW7dWk888YQuvfRSV93ff/+9Ro4cqVdeeUXr1q3T119/LZvN5nota9as0bx583Tw4EHFxcXp8ccfP+v7tWzZMo0fP16SNHfuXM2dO1ddu3bVhAkTJEmrVq3SBx98oKysLIWHh+uaa67Rn/70JzVo0OCM7XpSy5EjRzRz5kz98MMPstvtstlsateunZ555hlFRUWdtXYAdQ+hE6jjrrjiCq1cuVI7duxQfHy87Ha79uzZo06dOslmsyktLc21beUR0ZND52+//aYePXqoT58+Cg0N1a+//qp58+bp2LFjGjhwoMd1LFu2TJMmTdLAgQPVr1+/02531113qWXLlnrllVc0YMAAde/eXfXr15ckzZo1SwsWLFCfPn101VVXadeuXZozZ4527dqlCRMmuIXY5cuXKy4uToMHD1ZAQIAiIiLUsWNHbdq0yRU6N2/eLKvVqi1btriOSu7atUt5eXnq3LmzJMnpdOrYsWPq27evGjZsqJKSEq1bt06DBw/We++9p+bNm7vVP3nyZF177bV6/vnnVVpaKkn67rvv9Nprr+naa69VamqqcnNz9fbbb6u0tPSMlzEkJCTokksu0dChQ3XnnXfq1ltvVUREhCTps88+06RJk5SUlKQ//elPOnTokGbNmqWtW7dqxowZpz3C6mktr732mo4ePapBgwapUaNGys3N1caNG+VwOE5bL4C6jdAJ1HGVATIzM1Px8fHKzMyUxWJRu3btVK9ePR06dEgHDx5UbGysMjMzVa9ePbVq1cr1/Q888IDr3xUVFerYsaMiIiI0Y8YMj0Pn/PnzNXfuXI0YMUK33XbbGbdt1KiR2rRpI0lq0qSJOnToIEnKy8vTRx99pDvuuENPPfWUJKl79+6y2WwaN26cvvvuO/Xo0cPVTmBgoMaNG6eQkBDXss6dOystLU2lpaUKCQnR5s2bdeutt2rFihX6+eef1a1bN23atEkhISG67LLLJEkhISEaM2aMqw2n06nu3btr//79Wr58uVJTU93q79ixo4YNG+a2bM6cOa4gXRmM4+LiNGTIkDO+F/Xr11d4eLjrfal8L8rLyzVnzhxdeeWVevbZZ13bx8XFadiwYfriiy901113nbJNT2v517/+pT//+c/q3bu3a9mNN954xnoB1G3cvQ7UcU2aNFGjRo1cRzF/+uknxcfHKyQkRM2aNVNUVJTr7vbMzEx17NjR7bT50aNHNXHiRPXt21dJSUnq3bu33nzzTeXl5SkvL++s/U+ZMkXz58/XK6+8UiVwlpeXu/2pqKg4bTv/+te/VFpa6haCJOmmm25SYGCgNm/e7La8R48eboFTkrp06aLi4mJt3bpV5eXlyszM1FVXXaXLLrtMmzZtknTi6GeHDh3cjhR+//33Gj58uFJSUtSrVy/17t1bmzdvPuUd/gkJCW5fl5WVafv27br++uvdjsR27NhRjRo1Ou3rPZM9e/bo2LFj6tWrl9vyzp07q2HDhlXei/OppX379vrggw/06aefavfu3edVJ4C6hSOdANSpUyd9++23qqioUGZmprp37+5ad/nll7tuLMrOztY999zjWud0OjVmzBgVFxerf//+uuSSS2SxWPTzzz/rnXfe8ehU65o1a9SqVSt16dKlyrq+ffvqyJEjrq+fffZZJSUlnbIdu90uSYqOjnZbbrFYFBkZ6Vpf6ffbSVLbtm0VERGhTZs2KTg4WCUlJerUqZN++eUXffvtt3I6nfrxxx/Vp08f1/ds27ZNo0eP1g033KA+ffqoQYMGCgoK0qxZs075+n/fb25urpxO5ymvszzbtZenc7r3onLZ79+L86nlxRdf1Ny5c/X+++9rypQpatiwoe6++249+OCD53wtL4C6gdAJQJ06ddKaNWu0ZcsW/fLLL3rsscfc1n3++eeuo50n3y2+b98+/fLLL5oyZYo6duzoWr59+3aP+544caJGjBihZ599Vq+//rpCQ0Nd68aOHauysjLX140bNz5tOzabTZKUk5Pjdu1haWmp8vPzXesrneompaCgIHXq1MkVOtu1a6eIiAh16dJFaWlp+umnn3T8+HHX9ZyStHbtWsXGxuq5555za6uwsNDttZyu3wYNGigwMFC5ublVtj3VMk+c/F78Xk5Ojpo2bXrK7zuXWqKjozV8+HANHz5ce/fu1bJlyzR79mzVr19fycnJ51U3gNqNX0cBuELUggULVFFR4bpeUTpxpHPfvn36v//7P4WFhalt27audcXFxZJOHE2sVFFRoRUrVnjcd+vWrTVx4kTt2rVLo0ePdpvkvXXr1rr00ktdf34fHE922WWXKSQkROnp6W7L//d//1dOp9MtKJ5J586dtWXLFm3YsME1BVHl5QZpaWmyWq2Kj493bV9cXKzgYPff33fu3Klt27Z51F9luF27dq3b5QM//fSTDh8+7FEbv9e8eXPVr1+/ynvx448/6siRI6d9L863lmbNmik1NVXh4eHnNDE9gLqFI50A1KxZMzVo0EDr169Xu3btXNMLSVK7du0UGhqq9evXq1u3bm5zWbZo0UIXX3yxJkyYoP79+6uiokKfffbZaU/fnk6rVq1cRzxHjx6tsWPHutXgiaioKN13331auHChLBaLevTood27d+vvf/+7unTp4nbJwJl06dJFpaWl+umnn/Twww9LOhHGLr/8cm3cuFFdu3Z1C9lXXXWVPv30U02ZMkU9e/bUvn37lJaWppiYGI9rHzhwoJ555hk9//zzSk5OVm5urubOnXvep9eDgoI0cOBATZo0SW+88YZ69eqlw4cPa9asWWrevLluueWWC6olLy9Po0ePVq9evdSsWTMFBQXpq6++UmFhoa688srzqhlA7UfoBCDpP/N1nnyaXDoRuOLj47Vp06YqE7FbLBa99tpr+u///m+9+uqrCgsLU69evZSSkqK//vWv59R/y5YtNWnSJA0fPvy8g+fjjz+uqKgoff7551qyZImioqJ0++236/HHHz/l6fRTad26terVq6eioiK396Jz587auHFjlaOEV111lYYMGaKPPvpIS5cudd3p/dVXX53y9Pap9OjRQ88++6zS0tL0t7/9TU2bNtWQIUP0wQcfeP7if+euu+5SaGioPvzwQ6WnpyssLEzXXHONnnzyyTNOSO9JLaGhoWrdurWWLl2q7OxsBQUFKS4uTs8//7yuueaa864ZQO0WkJ6efvrbQQEAAAAv4JpOAAAAGEfoBAAAgHGETgAAABjn9RuJnE6njh49qrCwMI8v3AcAAIDvVFRUqKioSBdddJHPHujg9dB59OhR3X///d5uFgAAAF62aNGi837k7rnyeuisnOIkKyvrjBM5o/aofJIM6gbGu25hvOsWxrvusNvtiouLO+ep6S6E10Nn5Sl1m81G6KwjLBYLY12HMN51C+NdtzDedY8vL4XkRiIAAAAYR+jEBTvTI/VQ+zDedQvjXbcw3jCJ0IkLxodU3cJ41y2Md93CeMMkQicAAACM8/qNRAAAoO4qLi6Ww+HwdxnQiRvDQkND/V2GC6ETAAB4RXFxsVq2bKmDBw/6uxRIio2N1a5du6pN8CR0AgAAr3A4HDp48CBzdVcDlfNwOhwOQicAAKidmKsbp8KNRAAAADCO0AkAAADj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7d+/XytWrNCll16qffv2acqUKUpOTnbN82mz2fTee+/poosuUkhIiKZNm6bCwkI99dRTbnPKwTdCQ0M1f/58xcbGymKxaN68edqzZ4/+8pe/qEWLFox3LWKxWPT9999rw4YNatWqlRwOhz766CNt2LBBgwYNUocOHRjvGsxutysrK0u7du3S119/rWuvvVbHjh1TWFiY4uLijO+ro6OjtWnTJq1fv15t2rTRli1bNHPmTPXv39/1C8uZBKSnp3v1BP7//M//uE0OP3LkSCaHr+YSExNPuXzhwoWKjY2VdGLursoJZ6Ojo/Xwww/rjjvucG37+wlne/bsqWHDhlWZcHb69Ok6cOAAk8NXM4mJiWecHH7QoEG69tprXdsXFRVp8uTJ+uqrrxQUFKSbb75Zqampbjuc5cuXKy0tTTk5OYqPj9eIESPUrFkzn782nLB48WJ99NFHOn78uC699FINGTJELVu2lMR41zaHDx/W9OnTtWnTJhUVFal58+YaMGCArr76akmMd022cuVKjRs3rsrySZMmqXPnzj7ZV+fk5GjChAn6/vvvFR4ernvvvdfjyeG9HjoBAACA3+PZ6wAAADCO0AkAAADjCJ0AAAAwjtAJAAAA4widAAAAMI7QCQAAAOMInQAAADCO0AkAAADjCJ0AAAAw7v8D+0Ltth5ExAEAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 800x400 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Walk-forward\n",
"wf_folds = 5\n",
"train_val_sz_ratio = 4\n",
"test_set = False\n",
"train, valid, test = get_wf_idxs(X, wf_folds, train_val_sz_ratio, test_set)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((3, 8000), (8000,))"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# This might be part of a training loop\n",
"X_train = X[:, train[0]]\n",
"y_train = y[train[0]]\n",
"X_train.shape, y_train.shape"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"ws = 50 # window size\n",
"ss = 25 # slide size (if less thatn ws, then there is some overlapping data)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"X_train, y_train = sliding_window(X[:, train[0]], y[train[0]], ws, ss)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((176, 3, 50), (176,))"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X_train.shape, y_train.shape"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(array([['f1_0', 'f1_1', 'f1_2', 'f1_3', 'f1_4', 'f1_5', 'f1_6', 'f1_7',\n",
" 'f1_8', 'f1_9', 'f1_10', 'f1_11', 'f1_12', 'f1_13', 'f1_14',\n",
" 'f1_15', 'f1_16', 'f1_17', 'f1_18', 'f1_19', 'f1_20', 'f1_21',\n",
" 'f1_22', 'f1_23', 'f1_24', 'f1_25', 'f1_26', 'f1_27', 'f1_28',\n",
" 'f1_29', 'f1_30', 'f1_31', 'f1_32', 'f1_33', 'f1_34', 'f1_35',\n",
" 'f1_36', 'f1_37', 'f1_38', 'f1_39', 'f1_40', 'f1_41', 'f1_42',\n",
" 'f1_43', 'f1_44', 'f1_45', 'f1_46', 'f1_47', 'f1_48', 'f1_49'],\n",
" ['f2_0', 'f2_1', 'f2_2', 'f2_3', 'f2_4', 'f2_5', 'f2_6', 'f2_7',\n",
" 'f2_8', 'f2_9', 'f2_10', 'f2_11', 'f2_12', 'f2_13', 'f2_14',\n",
" 'f2_15', 'f2_16', 'f2_17', 'f2_18', 'f2_19', 'f2_20', 'f2_21',\n",
" 'f2_22', 'f2_23', 'f2_24', 'f2_25', 'f2_26', 'f2_27', 'f2_28',\n",
" 'f2_29', 'f2_30', 'f2_31', 'f2_32', 'f2_33', 'f2_34', 'f2_35',\n",
" 'f2_36', 'f2_37', 'f2_38', 'f2_39', 'f2_40', 'f2_41', 'f2_42',\n",
" 'f2_43', 'f2_44', 'f2_45', 'f2_46', 'f2_47', 'f2_48', 'f2_49'],\n",
" ['f3_0', 'f3_1', 'f3_2', 'f3_3', 'f3_4', 'f3_5', 'f3_6', 'f3_7',\n",
" 'f3_8', 'f3_9', 'f3_10', 'f3_11', 'f3_12', 'f3_13', 'f3_14',\n",
" 'f3_15', 'f3_16', 'f3_17', 'f3_18', 'f3_19', 'f3_20', 'f3_21',\n",
" 'f3_22', 'f3_23', 'f3_24', 'f3_25', 'f3_26', 'f3_27', 'f3_28',\n",
" 'f3_29', 'f3_30', 'f3_31', 'f3_32', 'f3_33', 'f3_34', 'f3_35',\n",
" 'f3_36', 'f3_37', 'f3_38', 'f3_39', 'f3_40', 'f3_41', 'f3_42',\n",
" 'f3_43', 'f3_44', 'f3_45', 'f3_46', 'f3_47', 'f3_48', 'f3_49']],\n",
" dtype='<U7'), 'f1_50')"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X_train[0], y_train[0]"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(array([['f1_4375', 'f1_4376', 'f1_4377', 'f1_4378', 'f1_4379', 'f1_4380',\n",
" 'f1_4381', 'f1_4382', 'f1_4383', 'f1_4384', 'f1_4385', 'f1_4386',\n",
" 'f1_4387', 'f1_4388', 'f1_4389', 'f1_4390', 'f1_4391', 'f1_4392',\n",
" 'f1_4393', 'f1_4394', 'f1_4395', 'f1_4396', 'f1_4397', 'f1_4398',\n",
" 'f1_4399', 'f1_4400', 'f1_4401', 'f1_4402', 'f1_4403', 'f1_4404',\n",
" 'f1_4405', 'f1_4406', 'f1_4407', 'f1_4408', 'f1_4409', 'f1_4410',\n",
" 'f1_4411', 'f1_4412', 'f1_4413', 'f1_4414', 'f1_4415', 'f1_4416',\n",
" 'f1_4417', 'f1_4418', 'f1_4419', 'f1_4420', 'f1_4421', 'f1_4422',\n",
" 'f1_4423', 'f1_4424'],\n",
" ['f2_4375', 'f2_4376', 'f2_4377', 'f2_4378', 'f2_4379', 'f2_4380',\n",
" 'f2_4381', 'f2_4382', 'f2_4383', 'f2_4384', 'f2_4385', 'f2_4386',\n",
" 'f2_4387', 'f2_4388', 'f2_4389', 'f2_4390', 'f2_4391', 'f2_4392',\n",
" 'f2_4393', 'f2_4394', 'f2_4395', 'f2_4396', 'f2_4397', 'f2_4398',\n",
" 'f2_4399', 'f2_4400', 'f2_4401', 'f2_4402', 'f2_4403', 'f2_4404',\n",
" 'f2_4405', 'f2_4406', 'f2_4407', 'f2_4408', 'f2_4409', 'f2_4410',\n",
" 'f2_4411', 'f2_4412', 'f2_4413', 'f2_4414', 'f2_4415', 'f2_4416',\n",
" 'f2_4417', 'f2_4418', 'f2_4419', 'f2_4420', 'f2_4421', 'f2_4422',\n",
" 'f2_4423', 'f2_4424'],\n",
" ['f3_4375', 'f3_4376', 'f3_4377', 'f3_4378', 'f3_4379', 'f3_4380',\n",
" 'f3_4381', 'f3_4382', 'f3_4383', 'f3_4384', 'f3_4385', 'f3_4386',\n",
" 'f3_4387', 'f3_4388', 'f3_4389', 'f3_4390', 'f3_4391', 'f3_4392',\n",
" 'f3_4393', 'f3_4394', 'f3_4395', 'f3_4396', 'f3_4397', 'f3_4398',\n",
" 'f3_4399', 'f3_4400', 'f3_4401', 'f3_4402', 'f3_4403', 'f3_4404',\n",
" 'f3_4405', 'f3_4406', 'f3_4407', 'f3_4408', 'f3_4409', 'f3_4410',\n",
" 'f3_4411', 'f3_4412', 'f3_4413', 'f3_4414', 'f3_4415', 'f3_4416',\n",
" 'f3_4417', 'f3_4418', 'f3_4419', 'f3_4420', 'f3_4421', 'f3_4422',\n",
" 'f3_4423', 'f3_4424']], dtype='<U7'), 'f1_4425')"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X_train[-1], y_train[-1]"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"X_valid, y_valid = sliding_window(X[:, valid[0]], y[valid[0]], ws, ss)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((43, 3, 50), (43,))"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X_valid.shape, y_valid.shape"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(array([['f1_4444', 'f1_4445', 'f1_4446', 'f1_4447', 'f1_4448', 'f1_4449',\n",
" 'f1_4450', 'f1_4451', 'f1_4452', 'f1_4453', 'f1_4454', 'f1_4455',\n",
" 'f1_4456', 'f1_4457', 'f1_4458', 'f1_4459', 'f1_4460', 'f1_4461',\n",
" 'f1_4462', 'f1_4463', 'f1_4464', 'f1_4465', 'f1_4466', 'f1_4467',\n",
" 'f1_4468', 'f1_4469', 'f1_4470', 'f1_4471', 'f1_4472', 'f1_4473',\n",
" 'f1_4474', 'f1_4475', 'f1_4476', 'f1_4477', 'f1_4478', 'f1_4479',\n",
" 'f1_4480', 'f1_4481', 'f1_4482', 'f1_4483', 'f1_4484', 'f1_4485',\n",
" 'f1_4486', 'f1_4487', 'f1_4488', 'f1_4489', 'f1_4490', 'f1_4491',\n",
" 'f1_4492', 'f1_4493'],\n",
" ['f2_4444', 'f2_4445', 'f2_4446', 'f2_4447', 'f2_4448', 'f2_4449',\n",
" 'f2_4450', 'f2_4451', 'f2_4452', 'f2_4453', 'f2_4454', 'f2_4455',\n",
" 'f2_4456', 'f2_4457', 'f2_4458', 'f2_4459', 'f2_4460', 'f2_4461',\n",
" 'f2_4462', 'f2_4463', 'f2_4464', 'f2_4465', 'f2_4466', 'f2_4467',\n",
" 'f2_4468', 'f2_4469', 'f2_4470', 'f2_4471', 'f2_4472', 'f2_4473',\n",
" 'f2_4474', 'f2_4475', 'f2_4476', 'f2_4477', 'f2_4478', 'f2_4479',\n",
" 'f2_4480', 'f2_4481', 'f2_4482', 'f2_4483', 'f2_4484', 'f2_4485',\n",
" 'f2_4486', 'f2_4487', 'f2_4488', 'f2_4489', 'f2_4490', 'f2_4491',\n",
" 'f2_4492', 'f2_4493'],\n",
" ['f3_4444', 'f3_4445', 'f3_4446', 'f3_4447', 'f3_4448', 'f3_4449',\n",
" 'f3_4450', 'f3_4451', 'f3_4452', 'f3_4453', 'f3_4454', 'f3_4455',\n",
" 'f3_4456', 'f3_4457', 'f3_4458', 'f3_4459', 'f3_4460', 'f3_4461',\n",
" 'f3_4462', 'f3_4463', 'f3_4464', 'f3_4465', 'f3_4466', 'f3_4467',\n",
" 'f3_4468', 'f3_4469', 'f3_4470', 'f3_4471', 'f3_4472', 'f3_4473',\n",
" 'f3_4474', 'f3_4475', 'f3_4476', 'f3_4477', 'f3_4478', 'f3_4479',\n",
" 'f3_4480', 'f3_4481', 'f3_4482', 'f3_4483', 'f3_4484', 'f3_4485',\n",
" 'f3_4486', 'f3_4487', 'f3_4488', 'f3_4489', 'f3_4490', 'f3_4491',\n",
" 'f3_4492', 'f3_4493']], dtype='<U7'), 'f1_4494')"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X_valid[0], y_valid[0]"
]
},
{
"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.1"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment