diff --git "a/ARIMA and emporal Convolutional Network.ipynb" "b/ARIMA and emporal Convolutional Network.ipynb" new file mode 100644--- /dev/null +++ "b/ARIMA and emporal Convolutional Network.ipynb" @@ -0,0 +1 @@ +{"cells":[{"cell_type":"code","metadata":{"source_hash":"ac95151","execution_start":1759533000389,"execution_millis":7251,"execution_context_id":"5aa4c20f-7ffd-4eb7-a626-c3e18a456547","cell_id":"ce20d64493e74bc0b9f9dfaf6850ed0e","deepnote_cell_type":"code"},"source":"!pip install pmdarima","block_group":"ce20d64493e74bc0b9f9dfaf6850ed0e","execution_count":1,"outputs":[{"name":"stdout","text":"Collecting pmdarima\n Downloading pmdarima-2.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl (2.1 MB)\n\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.1/2.1 MB\u001b[0m \u001b[31m45.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n\u001b[?25hCollecting Cython!=0.29.18,!=0.29.31,>=0.29\n Downloading cython-3.1.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.4 MB)\n\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.4/3.4 MB\u001b[0m \u001b[31m110.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n\u001b[?25hRequirement already satisfied: scipy>=1.3.2 in /root/venv/lib/python3.10/site-packages (from pmdarima) (1.9.3)\nRequirement already satisfied: urllib3 in /root/venv/lib/python3.10/site-packages (from pmdarima) (2.5.0)\nRequirement already satisfied: scikit-learn>=0.22 in /root/venv/lib/python3.10/site-packages (from pmdarima) (1.1.3)\nRequirement already satisfied: numpy>=1.21.2 in /root/venv/lib/python3.10/site-packages (from pmdarima) (1.25.2)\nRequirement already satisfied: pandas>=0.19 in /root/venv/lib/python3.10/site-packages (from pmdarima) (2.1.4)\nCollecting statsmodels>=0.13.2\n Downloading statsmodels-0.14.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (10.7 MB)\n\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m10.7/10.7 MB\u001b[0m \u001b[31m70.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n\u001b[?25hRequirement already satisfied: packaging>=17.1 in /root/venv/lib/python3.10/site-packages (from pmdarima) (25.0)\nRequirement already satisfied: setuptools!=50.0.0,>=38.6.0 in /root/venv/lib/python3.10/site-packages (from pmdarima) (65.5.0)\nRequirement already satisfied: joblib>=0.11 in /root/venv/lib/python3.10/site-packages (from pmdarima) (1.5.2)\nRequirement already satisfied: pytz>=2020.1 in /root/venv/lib/python3.10/site-packages (from pandas>=0.19->pmdarima) (2025.2)\nRequirement already satisfied: tzdata>=2022.1 in /root/venv/lib/python3.10/site-packages (from pandas>=0.19->pmdarima) (2025.2)\nRequirement already satisfied: python-dateutil>=2.8.2 in /root/venv/lib/python3.10/site-packages (from pandas>=0.19->pmdarima) (2.9.0.post0)\nRequirement already satisfied: threadpoolctl>=2.0.0 in /root/venv/lib/python3.10/site-packages (from scikit-learn>=0.22->pmdarima) (3.6.0)\nCollecting patsy>=0.5.6\n Downloading patsy-1.0.1-py2.py3-none-any.whl (232 kB)\n\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m232.9/232.9 kB\u001b[0m \u001b[31m55.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n\u001b[?25hRequirement already satisfied: six>=1.5 in /root/venv/lib/python3.10/site-packages (from python-dateutil>=2.8.2->pandas>=0.19->pmdarima) (1.17.0)\nInstalling collected packages: patsy, Cython, statsmodels, pmdarima\nSuccessfully installed Cython-3.1.4 patsy-1.0.1 pmdarima-2.0.4 statsmodels-0.14.5\n\n\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.0.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.2\u001b[0m\n\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n","output_type":"stream"}],"outputs_reference":"s3:deepnote-cell-outputs-production/f441c451-5ff1-4797-933c-3e29393d9794","content_dependencies":null},{"cell_type":"code","metadata":{"source_hash":"b623e53d","execution_start":1759533007699,"execution_millis":0,"execution_context_id":"5aa4c20f-7ffd-4eb7-a626-c3e18a456547","cell_id":"cbbcdf5d52ca40b7a85381aab84cfa60","deepnote_cell_type":"code"},"source":"","block_group":"b7d3e28885314c69a2b5af88e69a740c","execution_count":1,"outputs":[],"outputs_reference":null,"content_dependencies":null},{"cell_type":"code","metadata":{"source_hash":"a848ae1d","execution_start":1759533007759,"execution_millis":5084410,"execution_context_id":"5aa4c20f-7ffd-4eb7-a626-c3e18a456547","cell_id":"99bde51756aa4e7a978c3d55bd9b7ee5","deepnote_cell_type":"code"},"source":"import pandas as pd\nimport numpy as np\nfrom pmdarima.arima import auto_arima\nfrom sklearn.metrics import mean_absolute_error, mean_squared_error\nimport matplotlib.pyplot as plt\n\n# --- Step 1: Load stock data ---\nstock_prices = pd.read_csv(\"/work/GOOGL.csv\", parse_dates=[\"Date\"], index_col=\"Date\")[\"Close\"]\n\n# --- Step 2: Compute Log Returns ---\nlog_returns = np.log(stock_prices / stock_prices.shift(1)).dropna()\n\n# --- Step 3: Sliding Window Evaluation ---\ndef evaluate_window(log_returns, stock_prices, window_size, test_size=0.2):\n train_size = int(len(log_returns) * (1 - test_size))\n train, test = log_returns[:train_size], log_returns[train_size:]\n \n predictions = []\n price_predictions = []\n last_train_price = stock_prices.iloc[train_size - 1]\n price_predictions.append(last_train_price)\n\n for t in range(len(test)):\n # Define rolling window\n start_idx = train_size + t - window_size\n if start_idx < 0:\n window_data = log_returns[:train_size + t]\n else:\n window_data = log_returns[start_idx:train_size + t]\n\n # Fit ARIMA\n model = auto_arima(\n window_data.values,\n seasonal=False,\n stepwise=True,\n suppress_warnings=True,\n error_action=\"ignore\"\n )\n\n # Forecast 1-step log return\n forecast = model.predict(n_periods=1)[0]\n predictions.append(forecast)\n # Convert to price\n price_predictions.append(price_predictions[-1] * np.exp(forecast))\n\n # Drop the initial seed (last_train_price)\n price_predictions = price_predictions[1:]\n\n # --- Ensure same length ---\n predictions = np.array(predictions)\n test = test[:len(predictions)]\n actual_prices = stock_prices.iloc[train_size:train_size + len(price_predictions)]\n\n # --- Metrics in log-return space ---\n mae_log = mean_absolute_error(test, predictions)\n rmse_log = np.sqrt(mean_squared_error(test, predictions))\n\n # --- Metrics in price space ---\n mae_price = mean_absolute_error(actual_prices, price_predictions)\n rmse_price = np.sqrt(mean_squared_error(actual_prices, price_predictions))\n\n # --- Direction Accuracy ---\n direction_accuracy = np.mean(\n np.sign(np.diff(actual_prices.values)) == np.sign(np.diff(price_predictions))\n )\n\n return {\n \"MAE_Log\": mae_log,\n \"RMSE_Log\": rmse_log,\n \"MAE_Price\": mae_price,\n \"RMSE_Price\": rmse_price,\n \"Direction_Accuracy\": direction_accuracy,\n \"Price_Predictions\": price_predictions, # Store predictions\n \"Actual_Prices\": actual_prices # Store actual prices\n }\n\n# --- Step 4: Test multiple window sizes ---\nwindow_sizes = [30, 60, 90, 120, 180, 200, 250]\nresults = {}\n\nfor w in window_sizes:\n print(f\"Evaluating window size: {w}\")\n metrics = evaluate_window(log_returns, stock_prices, w)\n results[w] = metrics\n\nresults_df = pd.DataFrame({k: {kk: vv for kk, vv in v.items() if kk not in ['Price_Predictions', 'Actual_Prices']} for k, v in results.items()}).T.sort_values(\"RMSE_Price\")\nprint(\"\\nSliding Window Evaluation Results:\")\nprint(results_df)\n\nbest_rmse_window = results_df.index[0]\nprint(f\"\\n✅ Best window for RMSE (Price): {best_rmse_window} days\")","block_group":"7ce9dde26dbc4b47a08a822d8e647388","execution_count":2,"outputs":[{"name":"stdout","text":"Evaluating window size: 30\nEvaluating window size: 60\nEvaluating window size: 90\nEvaluating window size: 120\nEvaluating window size: 180\n/root/venv/lib/python3.10/site-packages/statsmodels/tsa/statespace/sarimax.py:1901: RuntimeWarning: divide by zero encountered in reciprocal\n return np.roots(self.polynomial_reduced_ar)**-1\n/root/venv/lib/python3.10/site-packages/statsmodels/tsa/statespace/sarimax.py:1908: RuntimeWarning: divide by zero encountered in reciprocal\n return np.roots(self.polynomial_reduced_ma)**-1\nEvaluating window size: 200\nEvaluating window size: 250\n\nSliding Window Evaluation Results:\n MAE_Log RMSE_Log MAE_Price RMSE_Price Direction_Accuracy\n90 0.013572 0.019500 589.623929 767.501125 0.220339\n250 0.013374 0.019387 591.532659 794.248966 0.325424\n200 0.013437 0.019336 608.357138 805.855776 0.277966\n30 0.013885 0.019906 595.957410 813.015790 0.170621\n180 0.013556 0.019484 618.712818 820.254764 0.240678\n60 0.013644 0.019658 662.900353 875.255252 0.198870\n120 0.013619 0.019585 718.594515 919.414804 0.190960\n\n✅ Best window for RMSE (Price): 90 days\n","output_type":"stream"}],"outputs_reference":"s3:deepnote-cell-outputs-production/631f0da7-cada-4f32-af6b-b7aec8ca4811","content_dependencies":null},{"cell_type":"code","metadata":{"source_hash":"598e8553","execution_start":1759538092229,"execution_millis":241,"execution_context_id":"5aa4c20f-7ffd-4eb7-a626-c3e18a456547","cell_id":"3cefb3c3f9c74a11a9d67928f9fa3845","deepnote_cell_type":"code"},"source":"# --- Step 5: Plot the forecast for the best window ---\nbest_metrics = results[best_rmse_window]\nactual_prices = best_metrics['Actual_Prices']\nprice_predictions = best_metrics['Price_Predictions']\n\n# Create the plot\nplt.figure(figsize=(12, 6))\nplt.plot(actual_prices.index, actual_prices, label='Actual Prices', color='blue')\nplt.plot(actual_prices.index[:len(price_predictions)], price_predictions, label='Predicted Prices', color='orange', linestyle='--')\nplt.title(f'ARIMA Forecast vs Actual Prices (Window Size: {best_rmse_window} days)')\nplt.xlabel('Date')\nplt.ylabel('Stock Price (USD)')\nplt.legend()\nplt.grid(True)\nplt.show()","block_group":"78ccf9011fce4fa2ad9ed403d152c51a","execution_count":3,"outputs":[{"data":{"text/plain":"
","image/png":"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dnaW3N3dpTp16kgrV67UuVdsbKwUEREhubq66k0hlRWVSiX5+fkZnBpMkiTp119/lcLDw6USJUpI9vb2UlBQkDRixAgpLi4uy2vm5Hmmp6dLP/zwgxQSEiLZ2dlJnp6eUtu2baVjx46pX3PhwgUpPDxccnR0lADoTH23detWqVKlSpKdnZ1UoUIFacmSJQanFFu7dq1UpUoVycHBQQoICJC+//57af78+RIA6fr16+rzTJnuLiIiIttz5OncDE1XaGi6O0mSpDNnzkidO3eWPDw8JAcHB6lChQrS6NGjdc65f/++NGDAAMnPz0+ytbWVfHx8pObNm0tz5sxRn5OT5yf777//JAB606vJfH19JQA695N17NhRAiD1799f71hW090Z+nwASGPHjtXZt3r1aik0NFSyt7eXwsLCpDVr1hic8jAhIUEaOnSo5OvrK9na2krlypWTfvjhB51pA2XyFH7ff/+9zv7g4GAJgHT16lWDn4G2a9euSWPGjJHq1q0reXl5STY2NpKnp6cUEREh7dixQ+fczL+bjRs3NjhVZ+b3n5aWJn3//fdSxYoVJXt7e6lYsWJSzZo1pa+//lrnmRo73Z0kSdL3338vhYSESA4ODlKxYsWkjh07SsePHzd4bnJysvTpp59KPj4+kr29vVS7dm1p8+bNL72HbObMmVJgYKBkb28v1apVS9qzZ4/e35pKpZK+/fZbyd/fX7K3t5eqV68urV+/PstpLSVJkj7++GMJgLRs2TK9Y8b+DYwaNUoqU6aMwd8PIiq4FJKUyyO1EBEREeVzzZs3h6+vb7bjYxBZ2tChQzFv3jzExsbCycnJ5NenpqYiICAAn3322UtbmBFRwcI+9kRERFTkffvtt1ixYoXeQIRE+UVKSgqWLFmCrl275ijUA8CCBQtga2uLjz76yMylIyJLY409EREREVE+9eDBA2zbtg1//vkn/v77b/z333/ZjsxPREUTB88jIiIiIsqnzp07hx49esDLywvTp09nqCcig1hjT0RERERERFSAsY89ERERERERUQHGYE9ERERERERUgLGPvRFUKhXu3bsHV1dXKBQKSxeHiIiIiIiICjlJkpCQkABfX19YWWVfJ89gb4R79+7Bz8/P0sUgIiIiIiKiIub27dsoXbp0tucw2BvB1dUVgPhA3dzcLFwaygmlUomtW7eiVatWsLW1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s3LlylCpVNgtz/WRidxiIENrboywsDDY29vj1q1beuXw8/MDAISGhuLIkSM619IuV3ZKliyJ4OBg+Pj46IV6Y1SpUgV79+6FUh6xRIu3tzd8fX1x7do1vbIHan116+bmhrfffhu//fYbVqxYgdWrV+PJkycml4WIiIioKMnIAN55Bzh7VrPvwYvGsfPnA127aqZ3A4CffxZT0L39dt6UTw72mYO0gYaeLyUHde3/5TVUYy970cNV7eHDrIM9ID6va9fS8cYbVwAAO3aYXsbMWGOfOxjsySQ9evRAyZIl0alTJ+zduxfXr1/Hrl27MHjwYNy5cwcA8Mknn+C7777D33//jQsXLuDjjz/Odg76gIAA9OrVCx988AH+/vtv9TVXrlwJAPD394dCocD69evx8OFDJCYmwtXVFZ9++imGDh2KRYsW4erVq/jvv//w888/Y9GiRQCAjz76CJcvX8aIESNw8eJFrFq1Sn0stw0cOBDx8fHo1q0b/v33X1y+fBmLFy/GxYsXAQBff/01oqKiMH36dFy6dAmnT5/GggULMGXKFADAlClTsHz5cly4cAGXLl3CqlWr4OPjox5jgIiIiIgM++ILYONGwNFR068+JkYMoNe7N7BmDbBggeb82bPFctOmvCmfHOzNMZif3LReu+Y7uxr7zA1bnz3LPtjLfHzERbXG2M4x1tjnDgZ7MomTkxP27NmDMmXKoEuXLggNDUXv3r2RkpICtxf/GgwfPhw9e/ZEr169UK9ePbi6uqJz587ZXnfWrFl488038fHHHyMkJAQffvghnr/4V+m1117D119/jc8++wze3t4YOHAgAGDChAkYPXo0oqKiEBoaijZt2mDDhg3qWu8yZcpg9erV+Pvvv1G9enUsWLAA33zzTS5+OholSpTAjh07kJiYiMaNG6NmzZr47bff1H3u+/Tpg7lz52LBggWoXLkyGjdujIULF6rL7urqikmTJqFWrVqoXbs2bty4gY0bN8LKin+yRERERFmRJGDaNLE+f76oiQeAvXt1R6DXHtf5RWNPALkfNCXJvMHeUE/Y7IJ95hr7uDjNqPjZBXsbGxUATdlfBWvscwf72BdhCxcuzNFxHx+fbGu+bWxsMHXqVEydOjXLc3bt2qWz7eDggClTpqhrrDMbPXo0Ro8erbNPoVDgk08+wSeffJLlfdq3b4/27dtDpVIh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6u0HDx6gUaNGOHr0KFJTUxEZGYnFixfnSiGJiIiIiAoC9q8nIkswOtgfOnQIHTt2VG///vvvKF68OE6cOIF//vkH3377LX755ZdcKSQRERERUUHAYE9ElmB0sI+NjUVAQIB6e8eOHejSpQtsbEQ3/Y4dO+Ky/C8ZEREREVERlBdT3RERZWZ0sHdzc8OzZ8/U20eOHEGdOnXU2wqFAqmpqWYtHBERERFRQcIaeyKyBKODfd26dTF9+nSoVCr8+eefSEhIQLNmzdTHL126BD8/v1wpJBERERFRfvfkCfD4sVgPDrZsWYioaDF6ursJEyagefPmWLJkCdLT0/HFF1+gWLFi6uN//PEHGjdunCuFJCIiIiLK7+Ta+tdeA5ydLVsWIipajA72VapUwfnz57F//374+PjoNMMHgG7duiEsLMzsBSQiIiIiKgjYDJ+ILMXoYA8AJUuWRKdOnQwei4iIMEuBiIiIiIgKomvXxJLN8Ikorxkd7IcNG2Zwv7u7O8qXL48uXbrA3t7ebAUjIiIiInoVKSlAUhJQvHje3E8eZzqv7kdEJDM62B8/ftzg/mfPnuHKlSsYPXo0duzYgTJlypitcEREREREOfXGG8CePcDp00BQUO7fLzFRLF1dc/9eRETajA72O3fuzPJYfHw8evTogc8++wzLli0zS8GIiIiIiHLqv/+ALVvE+ooVwBdf5P495WDv4pL79yIi0mb0dHfZcXNzw+jRo7F//35zXI6IiIiIKMeePwd699ZsHzqUN/dlsCciSzFLsAfEwHpPnjwx1+WIiIiIiEymUgHvvQecOKHZt28fIEnGX0OpBGbOBC5eNO3eCQliyab4RJTXzBbsDx06hKC86LxERERERJSFceOANWsAOztg507A1hZ4+hS4dSvr18THAx06AIsXi+1ffgEGDABCQky7N2vsichSjO5jf+rUKYP74+LicOzYMXz77bcYO3as2QpGRERERJQdlUqE9hIlxPa//wITJoj1OXOAJk2AsDDg5Eng+HHA39/wdWbMANavFz89ewJ79+asPBw8j4gsxehgX61aNSgUCkgG2jGVLFkSw4YNw8cff2zWwhERERERZWXQINFkvnVrIDISGDNG7O/RA+jVS6xXry6C/bFjYpT8588BR0fASqvdqtyEXmZtrbudlAQoFOJ12ZGvwxp7IsprRgf769evG9zv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"},"metadata":{"image/png":{"width":1014,"height":547}},"output_type":"display_data"}],"outputs_reference":"s3:deepnote-cell-outputs-production/5348cbdf-ff08-45b8-92d0-8fa9ca0fe2e6","content_dependencies":null},{"cell_type":"code","metadata":{"source_hash":"b623e53d","execution_start":1759538092529,"execution_millis":1,"execution_context_id":"5aa4c20f-7ffd-4eb7-a626-c3e18a456547","cell_id":"9dc4d6de39164bb4976451fa5017861f","deepnote_cell_type":"code"},"source":"","block_group":"0ce66601076042209ad3fcc39b3f6a90","execution_count":3,"outputs":[],"outputs_reference":null,"content_dependencies":null},{"cell_type":"code","metadata":{"source_hash":"b623e53d","execution_start":1759538092589,"execution_millis":0,"execution_context_id":"5aa4c20f-7ffd-4eb7-a626-c3e18a456547","cell_id":"e40d69ca4f304c00b3e0e64362303c57","deepnote_cell_type":"code"},"source":"","block_group":"15bbc5e5d2e44c0bb04660f98427778c","execution_count":3,"outputs":[],"outputs_reference":null,"content_dependencies":null},{"cell_type":"code","metadata":{"source_hash":"b623e53d","execution_start":1759538092649,"execution_millis":0,"execution_context_id":"5aa4c20f-7ffd-4eb7-a626-c3e18a456547","cell_id":"cf12df2af6d84b559b121e52b4593103","deepnote_cell_type":"code"},"source":"","block_group":"9c2d8d77a8e9491bbbda751723548876","execution_count":4,"outputs":[],"outputs_reference":null,"content_dependencies":null},{"cell_type":"code","metadata":{"source_hash":"eedc0956","execution_start":1759538092709,"execution_millis":12473191,"execution_context_id":"5aa4c20f-7ffd-4eb7-a626-c3e18a456547","cell_id":"a87a02aab49340589a6c571a1c343ed0","deepnote_cell_type":"code"},"source":"import os\nimport numpy as np\nimport pandas as pd\nimport torch\nimport torch.nn as nn\nfrom torch.utils.data import Dataset, DataLoader\nfrom sklearn.preprocessing import MinMaxScaler\nfrom sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score\nimport matplotlib.pyplot as plt\nfrom itertools import product\nimport json\n\n# -------------------------\n# Dataset\n# -------------------------\nclass StockDataset(Dataset):\n \"\"\"Custom Dataset for stock price time-series forecasting.\"\"\"\n def __init__(self, series, seq_length):\n self.series = series\n self.seq_length = seq_length\n\n def __len__(self):\n return len(self.series) - self.seq_length\n\n def __getitem__(self, idx):\n x = self.series[idx:idx + self.seq_length] # Shape: (seq_length,)\n y = self.series[idx + self.seq_length] # Shape: scalar\n x = np.expand_dims(x, axis=0) # Shape: (1, seq_length)\n return torch.tensor(x, dtype=torch.float32), torch.tensor(y, dtype=torch.float32)\n\n# -------------------------\n# TCN Blocks\n# -------------------------\nclass TemporalBlock(nn.Module):\n \"\"\"Temporal Convolutional Network block with causal dilated convolutions.\"\"\"\n def __init__(self, in_channels, out_channels, kernel_size, stride, dilation, dropout=0.2):\n super().__init__()\n padding = (kernel_size - 1) * dilation\n self.conv1 = nn.Conv1d(in_channels, out_channels, kernel_size,\n stride=stride, padding=padding, dilation=dilation)\n self.relu1 = nn.ReLU()\n self.dropout1 = nn.Dropout(dropout)\n self.conv2 = nn.Conv1d(out_channels, out_channels, kernel_size,\n stride=stride, padding=padding, dilation=dilation)\n self.relu2 = nn.ReLU()\n self.dropout2 = nn.Dropout(dropout)\n self.downsample = nn.Conv1d(in_channels, out_channels, 1) if in_channels != out_channels else None\n self.relu = nn.ReLU()\n\n def forward(self, x):\n out = self.conv1(x)\n out = out[:, :, :x.size(2)] # Trim padding\n out = self.relu1(out)\n out = self.dropout1(out)\n out = self.conv2(out)\n out = out[:, :, :x.size(2)] # Trim padding\n out = self.relu2(out)\n out = self.dropout2(out)\n res = x if self.downsample is None else self.downsample(x)\n return self.relu(out + res)\n\nclass TCN(nn.Module):\n \"\"\"Temporal Convolutional Network for time-series forecasting.\"\"\"\n def __init__(self, input_size, output_size, num_channels, kernel_size=3, dropout=0.2):\n super().__init__()\n layers = []\n num_levels = len(num_channels)\n for i in range(num_levels):\n dilation_size = 2 ** i\n in_channels = input_size if i == 0 else num_channels[i - 1]\n out_channels = num_channels[i]\n layers.append(\n TemporalBlock(in_channels, out_channels, kernel_size,\n stride=1, dilation=dilation_size, dropout=dropout)\n )\n self.network = nn.Sequential(*layers)\n self.linear = nn.Linear(num_channels[-1], output_size)\n\n def forward(self, x):\n out = self.network(x)\n out = out[:, :, -1]\n return self.linear(out)\n\n# -------------------------\n# Forecaster\n# -------------------------\nclass StockPriceForecaster:\n \"\"\"Stock price forecasting with TCN model.\"\"\"\n def __init__(self, dataset_path, seq_length=30, batch_size=32, lr=0.001, epochs=20,\n kernel_size=3, num_channels=[32, 64, 64], dropout=0.2, test_split=0.2):\n self.dataset_path = dataset_path\n self.seq_length = seq_length\n self.batch_size = batch_size\n self.lr = lr\n self.epochs = epochs\n self.kernel_size = kernel_size\n self.num_channels = num_channels\n self.dropout = dropout\n self.test_split = test_split\n self.device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n self.scaler = MinMaxScaler()\n\n def load_data(self):\n \"\"\"Load and preprocess stock price data.\"\"\"\n if not os.path.exists(self.dataset_path):\n raise FileNotFoundError(f\"Dataset file not found at: {self.dataset_path}\")\n df = pd.read_csv(self.dataset_path)\n if \"Close\" not in df.columns:\n raise ValueError(\"CSV file must contain a 'Close' column\")\n prices = df[\"Close\"].values.reshape(-1, 1)\n prices_scaled = self.scaler.fit_transform(prices).flatten()\n dataset = StockDataset(prices_scaled, self.seq_length)\n train_size = int(len(dataset) * (1 - self.test_split))\n test_size = len(dataset) - train_size\n train_dataset, test_dataset = torch.utils.data.random_split(dataset, [train_size, test_size])\n train_loader = DataLoader(train_dataset, batch_size=self.batch_size, shuffle=True)\n test_loader = DataLoader(test_dataset, batch_size=self.batch_size, shuffle=False)\n return train_loader, test_loader\n\n def train(self, model, train_loader):\n \"\"\"Train the TCN model.\"\"\"\n criterion = nn.MSELoss()\n optimizer = torch.optim.Adam(model.parameters(), lr=self.lr)\n model.train()\n for epoch in range(self.epochs):\n epoch_loss = 0\n for x, y in train_loader:\n x, y = x.to(self.device), y.to(self.device)\n optimizer.zero_grad()\n output = model(x)\n loss = criterion(output.squeeze(), y)\n loss.backward()\n optimizer.step()\n epoch_loss += loss.item()\n print(f\"Epoch [{epoch+1}/{self.epochs}], Loss: {epoch_loss/len(train_loader):.6f}\")\n return model\n\n def evaluate(self, model, test_loader):\n \"\"\"Evaluate the model on the test set.\"\"\"\n model.eval()\n predictions, actuals = [], []\n with torch.no_grad():\n for x, y in test_loader:\n x, y = x.to(self.device), y.to(self.device)\n output = model(x)\n predictions.extend(output.squeeze().cpu().numpy())\n actuals.extend(y.cpu().numpy())\n predictions = self.scaler.inverse_transform(np.array(predictions).reshape(-1, 1)).flatten()\n actuals = self.scaler.inverse_transform(np.array(actuals).reshape(-1, 1)).flatten()\n mae = mean_absolute_error(actuals, predictions)\n rmse = mean_squared_error(actuals, predictions, squared=False)\n mape = np.mean(np.abs((actuals - predictions) / (actuals + 1e-10))) * 100\n r2 = r2_score(actuals, predictions)\n return mae, rmse, mape, r2, actuals, predictions\n\n def run(self):\n \"\"\"Run training and evaluation.\"\"\"\n train_loader, test_loader = self.load_data()\n model = TCN(input_size=1, output_size=1,\n num_channels=self.num_channels,\n kernel_size=self.kernel_size,\n dropout=self.dropout).to(self.device)\n trained_model = self.train(model, train_loader)\n return trained_model, self.evaluate(model, test_loader)\n\n# -------------------------\n# Save Model for Hugging Face\n# -------------------------\ndef save_model_for_huggingface(model, scaler, config, save_dir=\"tcn_stock_model\"):\n \"\"\"Save the model and necessary components for Hugging Face deployment.\"\"\"\n os.makedirs(save_dir, exist_ok=True)\n \n # Save model weights\n torch.save(model.state_dict(), os.path.join(save_dir, \"pytorch_model.bin\"))\n \n # Save model configuration\n with open(os.path.join(save_dir, \"config.json\"), \"w\") as f:\n json.dump({\n \"input_size\": 1,\n \"output_size\": 1,\n \"num_channels\": config[\"num_channels\"],\n \"kernel_size\": config[\"kernel_size\"],\n \"dropout\": config[\"dropout\"],\n \"seq_length\": config[\"seq_length\"]\n }, f, indent=4)\n \n # Save scaler for preprocessing\n import pickle\n with open(os.path.join(save_dir, \"scaler.pkl\"), \"wb\") as f:\n pickle.dump(scaler, f)\n \n print(f\"Model saved to {save_dir}\")\n\n# -------------------------\n# Experiment Loop\n# -------------------------\nif __name__ == \"__main__\":\n dataset_path = \"/work/GOOGL.csv\" # Update to your CSV path\n\n # Hyperparameter grid\n seq_lengths = [20, 50]\n batch_sizes = [16, 32]\n learning_rates = [0.001, 0.0005]\n kernel_sizes = [3, 5]\n num_channels_list = [[32, 64, 128], [64, 128, 256]]\n dropouts = [0.1, 0.2]\n\n results = []\n best_result = None\n best_metrics = float('inf') # Track best RMSE\n best_model = None\n best_config = None\n\n # Run experiments\n for seq, batch, lr, kernel, channels, dropout in product(\n seq_lengths, batch_sizes, learning_rates, kernel_sizes, num_channels_list, dropouts\n ):\n print(f\"\\nRunning: seq={seq}, batch={batch}, lr={lr}, kernel={kernel}, channels={channels}, dropout={dropout}\")\n try:\n forecaster = StockPriceForecaster(\n dataset_path=dataset_path,\n seq_length=seq,\n batch_size=batch,\n lr=lr,\n epochs=20,\n kernel_size=kernel,\n num_channels=channels,\n dropout=dropout,\n test_split=0.2\n )\n model, (mae, rmse, mape, r2, actuals, predictions) = forecaster.run()\n results.append({\n \"seq_length\": seq,\n \"batch_size\": batch,\n \"lr\": lr,\n \"kernel_size\": kernel,\n \"num_channels\": str(channels),\n \"dropout\": dropout,\n \"MAE\": mae,\n \"RMSE\": rmse,\n \"MAPE\": mape,\n \"R2\": r2\n })\n if rmse < best_metrics:\n best_metrics = rmse\n best_result = (actuals, predictions, seq, batch, lr, kernel, channels, dropout)\n best_model = model\n best_config = {\n \"seq_length\": seq,\n \"batch_size\": batch,\n \"lr\": lr,\n \"kernel_size\": kernel,\n \"num_channels\": channels,\n \"dropout\": dropout\n }\n except Exception as e:\n print(f\"Error with config seq={seq}, batch={batch}, lr={lr}, kernel={kernel}, channels={channels}, dropout={dropout}: {e}\")\n continue\n\n # Save results\n df_results = pd.DataFrame(results)\n df_results.to_csv(\"tcn_experiments_results.csv\", index=False)\n print(\"\\nAll experiments done! Results saved to 'tcn_experiments_results.csv'\")\n\n # Display metrics table\n print(\"\\nMetrics Table:\")\n pd.set_option('display.max_columns', None)\n pd.set_option('display.width', 1000)\n pd.set_option('display.float_format', '{:.6f}'.format)\n print(df_results)\n\n # Save best model for Hugging Face\n if best_model is not None:\n save_model_for_huggingface(best_model, forecaster.scaler, best_config)\n print(f\"\\nBest model saved with RMSE: {best_metrics:.6f}\")\n print(\"\\nBest configuration:\")\n print(pd.Series(best_config))\n\n # Plot best combination\n if best_result is not None:\n actuals, predictions, seq, batch, lr, kernel, channels, dropout = best_result\n plt.figure(figsize=(12, 6))\n plt.plot(actuals, label=\"Actual Prices\")\n plt.plot(predictions, label=\"Predicted Prices\")\n plt.title(f\"Best Model: seq={seq}, batch={batch}, lr={lr}, kernel={kernel}, channels={channels}, dropout={dropout}\")\n plt.xlabel(\"Time Step\")\n plt.ylabel(\"Price\")\n plt.legend()\n plt.grid(True)\n plt.show()\n else:\n print(\"No successful experiments to plot.\")","block_group":"fc3e9644a3b94592b5714c076d174bf1","execution_count":null,"outputs":[{"name":"stderr","text":"/root/venv/lib/python3.10/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n from .autonotebook import tqdm as notebook_tqdm\n\nRunning: seq=20, batch=16, lr=0.001, kernel=3, channels=[32, 64, 128], dropout=0.1\nEpoch [1/20], Loss: 0.002988\nEpoch [2/20], Loss: 0.000468\nEpoch [3/20], Loss: 0.000200\nEpoch [4/20], Loss: 0.000171\nEpoch [5/20], Loss: 0.000096\n","output_type":"stream"}],"outputs_reference":"dbtable:cell_outputs/0c175447-d5f2-4304-b88a-89a64123d0b5","content_dependencies":null},{"cell_type":"code","metadata":{"cell_id":"37a7e77e15334fc18cef8c6c4452e9f8","deepnote_cell_type":"code"},"source":"","block_group":"7e217b9f6c8840a7a2e8c93dbd582a5c","execution_count":null,"outputs":[],"outputs_reference":null,"content_dependencies":null},{"cell_type":"markdown","source":"\nCreated in deepnote.com \nCreated in Deepnote","metadata":{"created_in_deepnote_cell":true,"deepnote_cell_type":"markdown"}}],"nbformat":4,"nbformat_minor":0,"metadata":{"deepnote_persisted_session":{"createdAt":"2025-10-03T23:06:58.254Z"},"deepnote_notebook_id":"26473ecd72f6488cb14de906bc70fb25"}} \ No newline at end of file