{ "cells": [ { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from statsmodels.tsa.arima.model import ARIMA\n", "from sklearn.metrics import mean_squared_error\n", "\n", "# Rastgele zaman serisi verisi oluşturma\n", "np.random.seed(0)\n", "dates = pd.date_range(start='2023-01-01', periods=100, freq='D')\n", "values = np.random.rand(100) * 100\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Close
Date
2023-01-0154.881350
2023-01-0271.518937
2023-01-0360.276338
2023-01-0454.488318
2023-01-0542.365480
\n", "
" ], "text/plain": [ " Close\n", "Date \n", "2023-01-01 54.881350\n", "2023-01-02 71.518937\n", "2023-01-03 60.276338\n", "2023-01-04 54.488318\n", "2023-01-05 42.365480" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data = pd.DataFrame({'Date': dates, 'Close': values})\n", "data.set_index('Date', inplace=True)\n", "\n", "# Veriyi eğitim ve test setlerine ayırma\n", "train_size = int(len(data) * 0.8)\n", "train_data, test_data = data[:train_size], data[train_size:]\n", "\n", "data.head()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "c:\\Users\\DevToolsUser\\anaconda3\\envs\\Emre\\Lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:473: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n", " self._init_dates(dates, freq)\n", "c:\\Users\\DevToolsUser\\anaconda3\\envs\\Emre\\Lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:473: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n", " self._init_dates(dates, freq)\n", "c:\\Users\\DevToolsUser\\anaconda3\\envs\\Emre\\Lib\\site-packages\\statsmodels\\tsa\\base\\tsa_model.py:473: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n", " self._init_dates(dates, freq)\n" ] } ], "source": [ "\n", "\n", "# ARIMA modelini oluşturma ve eğitme\n", "p, d, q = 1, 1, 1 # Parametreler\n", "model = ARIMA(train_data['Close'], order=(p, d, q))\n", "model_fit = model.fit()\n", "\n" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "# Tahminlemeleri yapma\n", "forecast_steps = len(test_data)\n", "predictions = model_fit.forecast(steps=forecast_steps)[0]\n", "predictions = np.array(predictions)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "numpy.ndarray" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(predictions)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean Squared Error: 749.9642818665021\n" ] } ], "source": [ "test_values = test_data['Close'].values\n", "mse = np.mean((test_values - predictions)**2) # Numpy ile ortalama karesel hata hesaplaması\n", "print(f\"Mean Squared Error: {mse}\")" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "ename": "ValueError", "evalue": "x and y must be the same size", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", "Cell \u001b[1;32mIn[28], line 3\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[39m# Tahminlemeleri görselleştirme\u001b[39;00m\n\u001b[0;32m 2\u001b[0m plt\u001b[39m.\u001b[39mscatter(test_data\u001b[39m.\u001b[39mindex, test_values, label\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mGerçek Değerler\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[1;32m----> 3\u001b[0m plt\u001b[39m.\u001b[39mscatter(test_data\u001b[39m.\u001b[39mindex, predictions, color\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mred\u001b[39m\u001b[39m'\u001b[39m, label\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mTahminlemeler\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[0;32m 4\u001b[0m plt\u001b[39m.\u001b[39mxlabel(\u001b[39m'\u001b[39m\u001b[39mTarih\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[0;32m 5\u001b[0m plt\u001b[39m.\u001b[39mylabel(\u001b[39m'\u001b[39m\u001b[39mKapanış Fiyatı\u001b[39m\u001b[39m'\u001b[39m)\n", "File \u001b[1;32mc:\\Users\\DevToolsUser\\anaconda3\\envs\\Emre\\Lib\\site-packages\\matplotlib\\pyplot.py:2862\u001b[0m, in \u001b[0;36mscatter\u001b[1;34m(x, y, s, c, marker, cmap, norm, vmin, vmax, alpha, linewidths, edgecolors, plotnonfinite, data, **kwargs)\u001b[0m\n\u001b[0;32m 2857\u001b[0m \u001b[39m@_copy_docstring_and_deprecators\u001b[39m(Axes\u001b[39m.\u001b[39mscatter)\n\u001b[0;32m 2858\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39mscatter\u001b[39m(\n\u001b[0;32m 2859\u001b[0m x, y, s\u001b[39m=\u001b[39m\u001b[39mNone\u001b[39;00m, c\u001b[39m=\u001b[39m\u001b[39mNone\u001b[39;00m, marker\u001b[39m=\u001b[39m\u001b[39mNone\u001b[39;00m, cmap\u001b[39m=\u001b[39m\u001b[39mNone\u001b[39;00m, norm\u001b[39m=\u001b[39m\u001b[39mNone\u001b[39;00m,\n\u001b[0;32m 2860\u001b[0m vmin\u001b[39m=\u001b[39m\u001b[39mNone\u001b[39;00m, vmax\u001b[39m=\u001b[39m\u001b[39mNone\u001b[39;00m, alpha\u001b[39m=\u001b[39m\u001b[39mNone\u001b[39;00m, linewidths\u001b[39m=\u001b[39m\u001b[39mNone\u001b[39;00m, \u001b[39m*\u001b[39m,\n\u001b[0;32m 2861\u001b[0m edgecolors\u001b[39m=\u001b[39m\u001b[39mNone\u001b[39;00m, plotnonfinite\u001b[39m=\u001b[39m\u001b[39mFalse\u001b[39;00m, data\u001b[39m=\u001b[39m\u001b[39mNone\u001b[39;00m, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs):\n\u001b[1;32m-> 2862\u001b[0m __ret \u001b[39m=\u001b[39m gca()\u001b[39m.\u001b[39mscatter(\n\u001b[0;32m 2863\u001b[0m x, y, s\u001b[39m=\u001b[39ms, c\u001b[39m=\u001b[39mc, marker\u001b[39m=\u001b[39mmarker, cmap\u001b[39m=\u001b[39mcmap, norm\u001b[39m=\u001b[39mnorm,\n\u001b[0;32m 2864\u001b[0m vmin\u001b[39m=\u001b[39mvmin, vmax\u001b[39m=\u001b[39mvmax, alpha\u001b[39m=\u001b[39malpha, linewidths\u001b[39m=\u001b[39mlinewidths,\n\u001b[0;32m 2865\u001b[0m edgecolors\u001b[39m=\u001b[39medgecolors, plotnonfinite\u001b[39m=\u001b[39mplotnonfinite,\n\u001b[0;32m 2866\u001b[0m \u001b[39m*\u001b[39m\u001b[39m*\u001b[39m({\u001b[39m\"\u001b[39m\u001b[39mdata\u001b[39m\u001b[39m\"\u001b[39m: data} \u001b[39mif\u001b[39;00m data \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m \u001b[39melse\u001b[39;00m {}), \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs)\n\u001b[0;32m 2867\u001b[0m sci(__ret)\n\u001b[0;32m 2868\u001b[0m \u001b[39mreturn\u001b[39;00m __ret\n", "File \u001b[1;32mc:\\Users\\DevToolsUser\\anaconda3\\envs\\Emre\\Lib\\site-packages\\matplotlib\\__init__.py:1461\u001b[0m, in \u001b[0;36m_preprocess_data..inner\u001b[1;34m(ax, data, *args, **kwargs)\u001b[0m\n\u001b[0;32m 1458\u001b[0m \u001b[39m@functools\u001b[39m\u001b[39m.\u001b[39mwraps(func)\n\u001b[0;32m 1459\u001b[0m \u001b[39mdef\u001b[39;00m \u001b[39minner\u001b[39m(ax, \u001b[39m*\u001b[39margs, data\u001b[39m=\u001b[39m\u001b[39mNone\u001b[39;00m, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs):\n\u001b[0;32m 1460\u001b[0m \u001b[39mif\u001b[39;00m data \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m-> 1461\u001b[0m \u001b[39mreturn\u001b[39;00m func(ax, \u001b[39m*\u001b[39m\u001b[39mmap\u001b[39m(sanitize_sequence, args), \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs)\n\u001b[0;32m 1463\u001b[0m bound \u001b[39m=\u001b[39m new_sig\u001b[39m.\u001b[39mbind(ax, \u001b[39m*\u001b[39margs, \u001b[39m*\u001b[39m\u001b[39m*\u001b[39mkwargs)\n\u001b[0;32m 1464\u001b[0m auto_label \u001b[39m=\u001b[39m (bound\u001b[39m.\u001b[39marguments\u001b[39m.\u001b[39mget(label_namer)\n\u001b[0;32m 1465\u001b[0m \u001b[39mor\u001b[39;00m bound\u001b[39m.\u001b[39mkwargs\u001b[39m.\u001b[39mget(label_namer))\n", "File \u001b[1;32mc:\\Users\\DevToolsUser\\anaconda3\\envs\\Emre\\Lib\\site-packages\\matplotlib\\axes\\_axes.py:4578\u001b[0m, in \u001b[0;36mAxes.scatter\u001b[1;34m(self, x, y, s, c, marker, cmap, norm, vmin, vmax, alpha, linewidths, edgecolors, plotnonfinite, **kwargs)\u001b[0m\n\u001b[0;32m 4576\u001b[0m y \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39mma\u001b[39m.\u001b[39mravel(y)\n\u001b[0;32m 4577\u001b[0m \u001b[39mif\u001b[39;00m x\u001b[39m.\u001b[39msize \u001b[39m!=\u001b[39m y\u001b[39m.\u001b[39msize:\n\u001b[1;32m-> 4578\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mValueError\u001b[39;00m(\u001b[39m\"\u001b[39m\u001b[39mx and y must be the same size\u001b[39m\u001b[39m\"\u001b[39m)\n\u001b[0;32m 4580\u001b[0m \u001b[39mif\u001b[39;00m s \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m 4581\u001b[0m s \u001b[39m=\u001b[39m (\u001b[39m20\u001b[39m \u001b[39mif\u001b[39;00m mpl\u001b[39m.\u001b[39mrcParams[\u001b[39m'\u001b[39m\u001b[39m_internal.classic_mode\u001b[39m\u001b[39m'\u001b[39m] \u001b[39melse\u001b[39;00m\n\u001b[0;32m 4582\u001b[0m mpl\u001b[39m.\u001b[39mrcParams[\u001b[39m'\u001b[39m\u001b[39mlines.markersize\u001b[39m\u001b[39m'\u001b[39m] \u001b[39m*\u001b[39m\u001b[39m*\u001b[39m \u001b[39m2.0\u001b[39m)\n", "\u001b[1;31mValueError\u001b[0m: x and y must be the same size" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAh8AAAGdCAYAAACyzRGfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAxI0lEQVR4nO3de3SU1b3G8WdmApkEkoFEkpmUoAGpGFPFiGCgrbWCYI9RK0eqJfXWSo2piCgIWok5qIjHW/ESrDc8It66FIxiqiJwtESjBNQYiyyJyim5eEQmEQ3QzD5/cGaayY0kTN6ZSb6ftWa58s7OOz+2yZ4n797vHpsxxggAAMAi9nAXAAAA+hfCBwAAsBThAwAAWIrwAQAALEX4AAAAliJ8AAAASxE+AACApQgfAADAUjHhLqA1n8+nXbt2KSEhQTabLdzlAACALjDGqLGxUWlpabLbO7+2EXHhY9euXUpPTw93GQAAoAd27typ4cOHd9om4sJHQkKCpIPFJyYmhrkaAADQFQ0NDUpPTw+8j3cm4sKHf6olMTGR8AEAQJTpypIJFpwCAABLET4AAIClCB8AAMBShA8AAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJaKuE3GAESHZp9RefVu1Tc2KSXBqfEZSXLY+TwmAIdG+ADQbaWVNSoqqVKNtylwzONyqjA3U9OyPGGsDEA0YNoFQLeUVtYof2VFUPCQpFpvk/JXVqi0siZMlQGIFoQPAF3W7DMqKqmSaec5/7Gikio1+9prAQAHET4AdFl59e42VzxaMpJqvE0qr95tXVEAog7hA0CX1Td2HDx60g5A/0T4ANBlKQnOkLYD0D8RPgB02fiMJHlcTnV0Q61NB+96GZ+RZGVZAKIM4QNAlznsNhXmZkpSmwDi/7owN5P9PgB0ivABoFumZXlUnJcttyt4asXtcqo4L5t9PgAcEpuMAei2aVkeTcl0s8MpgB4hfADoEYfdppxRyeEuA0AUYtoFAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBShA8AAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJYifAAAAEsRPgAAgKUIHwAAwFKEDwAAYCnCBwAAsBThAwAAWIrwAQAALEX4AAAAliJ8AAAASxE+AACApQgfAADAUoQPAABgKcIHAACwFOEDAABYKibcBQAAgIOafUbl1btV39iklASnxmckyWG3hbuskCN8AAAQAUora1RUUqUab1PgmMflVGFupqZlecJYWegx7QIAQJiVVtYof2VFUPCQpFpvk/JXVqi0siZMlfUOwgcAAGHU7DMqKqmSaec5/7Gikio1+9prEZ0IHwAAhFF59e42VzxaMpJqvE0qr95tXVG9jPABAEAY1Td2HDx60i4aED4AAAijlARnSNtFA8IHAABhND4jSR6XUx3dUGvTwbtexmckWVlWryJ8AAAQRg67TYW5mZLUJoD4vy7MzexT+30QPgAACLNpWR4V52XL7QqeWnG7nCrOy+5z+3ywyRgAABFgWpZHUzLd/WKH025d+WhubtZNN92kjIwMxcXFadSoUVq8eLGM+de9x8YYLVq0SB6PR3FxcZo8ebK2b98e8sIBAOhrHHabckYl65yxP1DOqOQ+GTykboaPpUuXqri4WPfff78++eQTLV26VHfccYfuu+++QJs77rhDy5Yt0/Lly/Xuu+9q0KBBmjp1qpqa+s4tQgAAoOdspuVli0M466yzlJqaqkcffTRwbPr06YqLi9PKlStljFFaWpquvfZaXXfddZIkr9er1NRUrVixQhdccMEhX6OhoUEul0ter1eJiYk9+CcBAACrdef9u1tXPiZOnKh169bp008/lSR98MEHevvtt3XmmWdKkqqrq1VbW6vJkycHvsflcmnChAkqKytr95z79u1TQ0ND0AMAAPRd3VpwumDBAjU0NGjMmDFyOBxqbm7WrbfeqpkzZ0qSamtrJUmpqalB35eamhp4rrUlS5aoqKioJ7UDAIAo1K0rH88995yeeuoprVq1ShUVFXriiSd055136oknnuhxAQsXLpTX6w08du7c2eNzAQCAyNetKx/z5s3TggULAms3fvSjH+mLL77QkiVLdPHFF8vtdkuS6urq5PH8657kuro6jR07tt1zxsbGKjY2toflAwCAaNOtKx/fffed7Pbgb3E4HPL5fJKkjIwMud1urVu3LvB8Q0OD3n33XeXk5ISgXAAAEO26deUjNzdXt956q0aMGKHjjjtOW7Zs0d13363LLrtMkmSz2TRnzhzdcsstGj16tDIyMnTTTTcpLS1N5557bm/UDwAAoky3wsd9992nm266SVdeeaXq6+uVlpam3//+91q0aFGgzfz587V3717NmjVLe/bs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3NwcNCZIUlxcnN5+++0uvcahRH348Pl8mjNnjiZNmqSsrCxJUm1trQYOHKghQ4YEtU1NTVVtbW2759m0aZOeffZZzZo1q81zw4cPV2xsrMaNG6eCggL97ne/67Ae//lTU1MP+drz58/XMcccI+ngL9qaNWu6Vfudd96pb7/9VhkZGUG1f/TRRxo8eLBiY2P161//Wj6fTzNmzAhp7ddff73i4+MD86VvvPFG4Bxdqd9f+4wZMwJ9P3PmTK1YsUKlpaUqLi5WdXW1Ro4cGVV977d69Wp9/fXXKioqCnntoe77F154Qccee6wWL16sXbt26cCBAzr//PMlHRx8x40bp9NPP73Tc7dX/6ZNm/TVV1/pBz/4QZv67Xa7kpOT9frrr+vaa6/tUt+ceeaZQT8LJ5xwQuA5Y4wuueQSXXHFFZKk5557TpJ09NFHd9o3ktp8enZqaqoaGhq0fv16y8YEf/2zZs3So48+qnHjxgV9f0d9/80337R73oaGBsvGhJZ9n52drcWLF0sKTd9bMSb0dt/79caY0LLvW9Z9KLW1tR3W/v333yshIUE5OTmBMaG5uVkrV65UWVmZampquvw6nYn68FFQUKDKyko988wzPT5HZWWlzjnnHBUWFuqMM85o8/xbb72l999/X8uXL9e9996rp59+WpL01FNPafDgwYHHW2+91a3X/eqrr+TxePTUU0/J4XDooosukvn/DWdbntc/oLa0atUqFRUVaenSpbrkkkuCaj/mmGO0detWvfvuu/r973+vwYMHa9GiRSGtfd68eTrnnHOUmpqqY445Jqj2/fv3d6n25557TvX19YG+v/HGG3X++efr+OOP19SpU7V27VrFxcXphhtuiJq+93v00Uf185//vFd+bnqj70tKSmSM0Q9+8APFxsaqqqpKZ5xxho488kgtX75cr776auBqQsv6N2/erJ07d7Z5Hf/vVGZmptxud5v6X3/9dT300EMaNWqU7rrrLq1atUrSwasv/kV5AwYMCOqb1atXB/Wn/y9gSbrvvvvU2NiohQsXSlLQIly/Q/VNazNmzLBsTPDXv2vXLlVWVmrZsmVt2hzq59Lv888/lyTdcMMNlowJLfu+oKCgzeJ/qed9b8WY0Nt979cbY0Lrn/v2dLX21p588smgMWHZsmW68MILZbeHKDaEZPImTAoKCszw4cPNjh07go6vW7fOSDLffPNN0PERI0YELX4zxpiPP/7YpKSkmBtuuKFLr7l48WLzwx/+0BhjTENDg9m+fXvg8d1335nPPvus3Tm3n/70p2b27Nkd1r5z504jySxbtsxIMps3bw6ct66uLqj2p59+2sTFxZkHH3ywS7WffvrpZtasWSGrvXX9/to3bdoU6Ht//XV1dcaYf/W9v/aXX365S30/btw4s2DBgqjq+88//9zY7XazevXqwLFo6ftZs2YZj8djduzYYWbMmGF+8YtfGGOMufTSSwO/Uy3rT0tLM0uXLg2qv+W526u/JX/9I0aMMMYYs2XLFvPGG2+YN954w7zzzjsd9o1/oa//3Oecc46x2+3GZrMZSYH/OhwOc9FFF3XYN7GxseYnP/lJUE2LFy82Nput3f+3amfNRyj+355zzjmBtQZ2u904HI5A/VOmTOnw53LkyJHm6quvDpzz448/NomJiWbgwIEd9rkxoR0TWve93W7vlb73C/WYYEXf99aY4O97h8MReLTse2NM0Hn9ff+Tn/wkqHZjjHnsscdMYmJim9q//fZbs2vXLmOMCRoTDldUhg+fz2cKCgpMWlqa+fTTT9s8718k9Je//CVw7O9//3ubhXeVlZUmJSXFzJs3r8uvXVRUZI488shOa3O73ebOO+8MHPN6vYFFQh3V/sUXXxhJpqSkpNPaV61aZZxOp1m2bFmXaz/ttNPMxRdffNi1+9u0rt9f+/r16zvt+6KiIuN0Os3q1au71PeNjY1m6NCh5k9/+pMxJnr6vrCw0LjdbnPgwIHAsUjv+9bn3r17t3G5XIHV+AsXLjSSOuwbf/3XXXdd4Nyt62+Pv/7U1NRu9Y2/Hv+5P//8c3PBBReYlJQUI8kUFhYG6t25c2enfTNy5MjAscrKShMbG2uOOuqodmtpL3yE4ufyoosuMikpKebll182H330kfnrX/8aqP/jjz/usPa8vDyTlZUVqD0lJcWMGTMmsHCwI6EcE1r2/csvvxxUeyj73pjeGROs6PveGhO++OIL89FHHwUerfu+I/Pnzw/U7nfhhRd2+nPTekw4XFEZPvLz843L5TIbNmwwNTU1gcd3330XaHPFFVeYESNGmDfffNO8//77JicnJ3A7pTHGfPTRR2bYsGEmLy8v6Bz19fWBNvfff7956aWXzKeffmo+/fRT88gjj5iEhIRDrva9/fbbzZAhQ8yaNWvMhx9+aM4555zA7VH5+flm8ODBZvbs2eb111835eXl5vnnnzcTJkwwo0aNMk1NTR3W/tRTT5mYmBhz4403muTkZDN9+nTzwQcfmG3btgVqX7Bggdm4caMpKioyy5YtC9zJcM011xx27cYYc95555m4uDjz8MMPB2ofN26cycjIME1NTR32/ejRo01MTIx54IEHzPr16wP1+2uvqakx+fn5ZsOGDaa6utrMnTvXnHDCCWbo0KHmnXfeiYq+N8aY5uZmM3ToUDN9+vSQ/tz0dt9PmTLFDBo0yDz99NPm0ksvNcOHDzeZmZlm8+bNgfqzs7M7/Z2aM2eOsdls5mc/+5l58803zdSpU016err58ssvjTHGvPPOO+b888839957r1m/fr154oknzKhRo4zNZjPXX399h/1y//33m4svvtgkJiaa4uJic/PNN5uYmBgzZMiQQN/87ne/M4MHDw7cyjhnzpw2QaG9vsnOzjbx8fFm3rx5Zs2aNWbw4MHGZrOZVatWBfpmx44dZsuWLWbLli1Gkvntb39rVq9ebTZs2BCyn8vW41l5eXmb2z3b63v/LZOXXHKJSUpKMieffLKx2+2B+q0YE1rX76+95R96Pe17K8aE3ux7Y3p3TGiturq6W7fazps3z3zyySfmgQceaHOrbWlpqXn11VfNjh07zGuvvWZOOOEEM2HCBLN///5Oz91VURk+/JfIWj8ef/zxQJvvv//eXHnllWbo0KEmPj7e/PKXvzQ1NTWB5/1/GbV+tEyiy5YtM8cdd5yJj483iYmJ5sQTTzQPPvigaW5u7rQ+n89nbrrpJpOammpiY2PN6aefbrZt29Zp7T/72c8C9093VPupp57a4ff7a7/sssvMkUceGbgEZ7fbTXx8fEhq76z+ltNZ7dWfk5PTae2STHx8vPF4PGbgwIHG5XKZxMREExcXFzV9b4wJ/OUxevTokP7c9Hbfd/RwOp2B+vfu3dvp79SiRYs67ZsPP/zQjB49OnBp2GazmSOOOMLcdtttnfbNsmXLTGZmpomJiTE2m83YbDZzzDHHmE8++eSQfTN27NhO+6ampsasX7/ejB07NjBd0PqRmpra7vEBAwb06s9lyzeRzsaz9evXd1hjOMcE/63ch9P34RoTQtX3xvTumNBaV8OHv/axY8eagQMHmpEjRwa9fxpjzLPPPmtGjhxpBg4caNxutykoKDB79uw55Hm7ymbM/69UAwAAsEDU3+0CAACiC+EDAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBShA8AAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJb6P5rU4Z8dU49SAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Tahminlemeleri görselleştirme\n", "plt.scatter(test_data.index, test_values, label='Gerçek Değerler')\n", "plt.scatter(test_data.index, predictions, color='red', label='Tahminlemeler')\n", "plt.xlabel('Tarih')\n", "plt.ylabel('Kapanış Fiyatı')\n", "plt.title('ARIMA ile Rastgele Zaman Serisi Kapanış Fiyatı Tahminlemesi')\n", "plt.legend()\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Emre", "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.11.3" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }