PolynomialRegression/Polynomial Regression.ipynb

187 lines
34 KiB
Plaintext
Raw Normal View History

2021-06-24 11:07:41 +02:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Algorytm najszybszego spadku dla regresji wielomianowej. \n",
"Zakładamy, że dysponujemy zbiorem składającym się z dwóch cech (x i y). Modelujemy zależność y od x za pomocą funkcji wielomianowej. Celem projektu jest implementacja metody najszybszego spadku dla tego problemu. Zakładamy kwadratową funkcję straty. Implementacja powinna umożliwiać podanie stopnia wielomianu, który ma być użyty do modelowania. Implementacja powinna zwracać wektor oszacowanych parametrów oraz pokazywać wizualnie zmiany wartości funkcji straty wraz z postępem uczenia."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Zbiór danych: https://www.kaggle.com/varpit94/apple-stock-data-updated-till-22jun2021?select=AAPL.csv\n",
"This dataset provides historical data of APPLE INC. stock (AAPL). The data is available at a daily level. Currency is USD."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Date</th>\n",
" <th>Open</th>\n",
" <th>High</th>\n",
" <th>Low</th>\n",
" <th>Close</th>\n",
" <th>Adj Close</th>\n",
" <th>Volume</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1980-12-12</td>\n",
" <td>0.128348</td>\n",
" <td>0.128906</td>\n",
" <td>0.128348</td>\n",
" <td>0.128348</td>\n",
" <td>0.100751</td>\n",
" <td>469033600</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1980-12-15</td>\n",
" <td>0.122210</td>\n",
" <td>0.122210</td>\n",
" <td>0.121652</td>\n",
" <td>0.121652</td>\n",
" <td>0.095495</td>\n",
" <td>175884800</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1980-12-16</td>\n",
" <td>0.113281</td>\n",
" <td>0.113281</td>\n",
" <td>0.112723</td>\n",
" <td>0.112723</td>\n",
" <td>0.088485</td>\n",
" <td>105728000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1980-12-17</td>\n",
" <td>0.115513</td>\n",
" <td>0.116071</td>\n",
" <td>0.115513</td>\n",
" <td>0.115513</td>\n",
" <td>0.090676</td>\n",
" <td>86441600</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1980-12-18</td>\n",
" <td>0.118862</td>\n",
" <td>0.119420</td>\n",
" <td>0.118862</td>\n",
" <td>0.118862</td>\n",
" <td>0.093304</td>\n",
" <td>73449600</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Date Open High Low Close Adj Close Volume\n",
"0 1980-12-12 0.128348 0.128906 0.128348 0.128348 0.100751 469033600\n",
"1 1980-12-15 0.122210 0.122210 0.121652 0.121652 0.095495 175884800\n",
"2 1980-12-16 0.113281 0.113281 0.112723 0.112723 0.088485 105728000\n",
"3 1980-12-17 0.115513 0.116071 0.115513 0.115513 0.090676 86441600\n",
"4 1980-12-18 0.118862 0.119420 0.118862 0.118862 0.093304 73449600"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df = pd.read_csv('AAPL.csv')\n",
"X = df['Low']\n",
"Y = df['Volume']\n",
"display(df.head(5))"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1440x720 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig = plt.figure(figsize=(20,10))\n",
"chart = fig.add_subplot()\n",
"chart.plot(X,Y ,\"go\")\n",
"plt.show()"
]
}
],
"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.8.5"
}
},
"nbformat": 4,
"nbformat_minor": 4
}