{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n",
"# ** 6 Predict the TimeSeries Data**\n",
"시계열 데이터 예측"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n",
"## **1 은닉 마르코프 모델을 활용 (HMM)**\n",
""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n",
"### **01 Pattern 이 분명한 데이터를 활용하여 은닉 마르코프 모델 생성 (HMM)**\n",
"은닉 마르코프 모델의 용도를 확인해본다"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"from hmmlearn.hmm import GaussianHMM\n",
"\n",
"data = np.loadtxt('./data/hmm_data.txt', delimiter=',')\n",
"X = np.column_stack([data[:, 2]])\n",
"x = [x[0] for x in X]\n",
"\n",
"%matplotlib inline\n",
"import pandas as pd\n",
"pd.Series(x).plot(figsize=(25,2))"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"GaussianHMM(algorithm='viterbi', covariance_type='diag', covars_prior=0.01,\n",
" covars_weight=1, init_params='stmc', means_prior=0, means_weight=0,\n",
" min_covar=0.001, n_components=5, n_iter=1000, params='stmc',\n",
" random_state=None, startprob_prior=1.0, tol=0.01, transmat_prior=1.0,\n",
" verbose=False)"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import warnings\n",
"warnings.filterwarnings(\"ignore\")\n",
"num_components = 5\n",
"hmm = GaussianHMM(n_components = num_components,\n",
" covariance_type = 'diag',\n",
" n_iter = 1000)\n",
"hmm.fit(X)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"GaussianHMM(algorithm='viterbi', covariance_type='diag', covars_prior=0.01,\n",
" covars_weight=1, init_params='stmc', means_prior=0, means_weight=0,\n",
" min_covar=0.001, n_components=5, n_iter=1000, params='stmc',\n",
" random_state=None, startprob_prior=1.0, tol=0.01, transmat_prior=1.0,\n",
" verbose=False)"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"hmm"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[8.59614675],\n",
" [2.59988212],\n",
" [6.58632566],\n",
" [4.59770246],\n",
" [0.60260697]])"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"hmm.means_"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Hidden state 1 - Mean : 8.596 \\ Variance : 0.260\n",
"Hidden state 2 - Mean : 2.600 \\ Variance : 0.259\n",
"Hidden state 3 - Mean : 6.586 \\ Variance : 0.253\n",
"Hidden state 4 - Mean : 4.598 \\ Variance : 0.252\n",
"Hidden state 5 - Mean : 0.603 \\ Variance : 0.253\n"
]
}
],
"source": [
"for i in range(hmm.n_components):\n",
" print('''Hidden state {:2} - Mean : {:.3f} \\\\ Variance : {:.3f}'''.format(\n",
" i + 1, hmm.means_[i][0], np.diag(hmm.covars_[i])[0])) "
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA2QAAADFCAYAAAA7QDEeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3X+Q3Hd93/HXe3/v3o9dYUkr26cgXLBBNidMNYTUUA636ZiEgf6RaaENydBk/E8yJT8ahvSflk4ynXYyaZqByYwSKOk0g8sQ2lKS8KPBFxMXDHJBxj8wGGMh2b49Sdbd3u5pv3e7++kfu3uS5ZNudbff/e73830+ZjzWnc6n98BH39vXft6f98eccwIAAAAAjF8q6gIAAAAAIKkIZAAAAAAQEQIZAAAAAESEQAYAAAAAESGQAQAAAEBECGQAAAAAEBECGQAAAABEhEAGAAAAABEhkAEAAABARDJhfNP9+/e7I0eOhPGt96TZbGpqairqMuAx1hjGgXWGcWCdIWysMYxDlOvs0UcfPe+cO7DT14USyI4cOaKTJ0+G8a33ZHFxUQsLC1GXAY+xxjAOrDOMA+sMYWONYRyiXGdmdnqYr6NlEQAAAAAiQiADAAAAgIgMHcjMLG1m3zazL4RZEAAAAAAkxY3skH1I0lNhFQIAAAAASTPUUA8zm5P0s5J+V9JvhFpRCJbXWvq9Lz2t29MdLURdDELV7nT1H7/0tC42NyL585eWAv3FuVOR/Nnwx/6ZvH7rH92hVMqiLgUAAIRs2CmLfyDpw5JmrvUFZna/pPslqVqtanFxcc/FjcpLra4+c/KS3v9aN1F1YfTOrHV14uFLms5KufT4X8w619UTF54f+58Lf2x0nBqb0qs7L+jQ1PZNDI1Gg2cZQsc6Q9hYYxiHOKyzHQOZmb1b0rJz7lEzW7jW1znnTkg6IUnHjx93kzTG9NJGR7+x+EW1UznGq3ru5HMvSQ9/XR//wFv0jtt3vPZh5Bjhi7168HvL+uCnvqXb33i33vwT+7b9GtYZxoF1hrCxxjAOcVhnw5whu0fSe8zsOUkPSLrXzP5bqFWNWCGbUi6TUnMz6koQtkbQliRN50O5Yg8IXbmUlSStXuKBBQBAEuwYyJxzv+2cm3POHZH0Pklfdc79fOiVjZCZqVzMqrnpoi4FIWsGHUkEMsRXpdgPZOsEMgAAkiAx95BVCGSJ0OzvkE3l0xFXAuxOuR/IVtajGUwDAADG64YCmXNu0Tn37rCKCVOlRCBLgjVaFhFzW4GMlkUAABIhMTtk5WJWDV7feO/yDhmBDPGUSac0k89whgwAgIRIUCDLaZ0dMu81g7bymZSy6cQsbXhotpjlDBkAAAmRmFettCwmQyNo066I2KuUsrQsAgCQEIkJZOViVq2OtNnpRl0KQtQI2rQrIvYqpSwtiwAAJERiAlmFu30SockOGTxQKeaYsggAQEIkJpBdHiVNIPMZLYvwwWyRHTIAAJIiMYGsUspJklYv8a6zz3oti9xBhngbtCw6x7lXAAB8l5hANtgh411nvzWDjqYL2ajLAPakUsxqs+O0vtGJuhQAABCyxASyCi2LidBrWWSHDPHG5dAAACRHcgJZiUCWBM2grakcZ8gQb1tDiHheAQDgvcQEspkC7zj7rtPttXgx9h5xVy72zryucOYVAADvJSaQpVOmUkaqE8i81dxoS5JmCgQyxNvWmVd2yAAA8F5iApkkTWWNu3081gx6gYwdMsTdVos1byABAOC95AUyXuB4i0AGX3CRPQAAyZGwQMYLHJ+ttXqBjCmLiLtiNq1s2hhCBABAAiQskBlnMjzWDHp3Nk3nuYcM8WZmKhdzXGQPAEACJC6Q0bLor8ZWyyI7ZIi/SinLjj4AAAmQuEC2emlTzrmoS0EIBmfIpjlDBg9UillaFgEASIDEBbJO123tpMAvDQIZPFImkAEAkAiJCmTT/aNFvMjxU4Mpi/BImZZFAAASIVGBrJQ1SUxa9FUzaCuTMuUziVrW8FSlmONZBQBAAiTqles0gcxrjaCtqXxGZhZ1KcCelYtZNYK2NjvdqEsBAAAhSlQgm+oHMloW/dQI2pwfgzcGl0PXeQMJAACvJSyQ9f69wt0+XmoSyOCRQSDjqg4AAPyWsEBGy6LPmkGHO8jgjdliP5Cxow8AgNcSFchy6d7Ah1Ve4HhprX+GDPBBpR/IVtnRBwDAa4kKZBJ3+/isGbQ1UyCQwQ+VUk4SO/oAAPgucYGswt0+3moGbU3lCGTwQ5mWRQAAEmHHQGZmBTP7ppmdMrMnzOyj4ygsLJVijqEenmrQsgiPzPZ3ewlkAAD4bZgdskDSvc65Y5LeJOk+M3truGWFp1yiZdFHzjlaFuGVTDqlmUKGHX0AADy346tX55yT1Oh/mO3/48IsKkzlYlaP3+ALnG88e0Em6SdvuymcorBnlzY76jqxQwav0GKNpAnaHX38wR+qGbSjLgVjcPZMoK81noy6jJG7pVLUv7jniMws6lIQE0O9ejWztKRHJb1W0sedc49s8zX3S7pfkqrVqhYXF0dY5mg0Gg2tXQj0UqN9Q/V99P9e0mbX6XfeVgqvOOzJStCVJL1w+lktLp6JrI5GozGRax/xlGoH+uHZpVesKdYZxiGKdfbE+Y7+8GRLuXQCD7knkpPO/ijqIkaq46TNrjRb/5EOlFjFkyAOPzOHCmTOuY6kN5lZRdL/MLO7nHOPX/U1JySdkKTjx4+7hYWFUde6Z4uLi3rj7bfqS899Xz/1trcrnxnuzqoPP/x/dL4Z6C1/720qMTRiIj17riE9+De6+41v0MLdc5HVsbi4qElc+4inw888ovWNthYW7nnZ51lnGIco1tn5R89KJ0/py7++oCP7p8b6Z2P8fHyWPXZ2Re/52MMqzb1BC/M3R10OFI91dkPR3Tm3IulBSfeFU074ylt3+wzXBtTudHW+EajrpCdeqIdZGvagGXQkSdP5bMSVAKNTLmW1QssiEqRWb0mSqrOFiCsBduf1h2aVS6f02NmVqEtBjAwzZfFAf2dMZlaU9NOSvhd2YWEp9+/2qQ/5IudcP4xJ0qkz/OWaVI3+eYOp/HC7nkAclItZLrJHoiyttjRbyKiY41mOeMplUnrDLbM6RSDDDRhmh+xmSQ+a2WOSviXpK865L4RbVngqN3i3T60ebP361NnVUGrC3g0OgE8z1AMeqRR7Qz16s5UA/9XqLR0qszuGeDs2V9Z3z66q0+XZjeHsGMicc4855+52zs075+5yzv27cRQWlhu9bHVptdc+MbevyPbzBLu8Q0Yggz8qpazaXafmRifqUoCxqNVbtCsi9ubnKmpudHrn24EhJG78S6V0Y2fIltd6geynj1Z1+sK6Vta5VHoSDQLZDIEMHrn8BhLPHSRDrR4QyBB7x+bKkuiswvCSF8iKvTNkwx6UX1ptKZMyvfOOg5Kkx/jLNZGa7JDBQ+XB84pzZEiATtfpXCNQdTYfdSnAntx2YFpTuTSdVRha4gLZTCEjM2l1yHeca/VAB2fyOna4Ikn85ZpQzaAtM6nEQXB4ZLCjP+wQIiDOLjQCdbpOh9ghQ8ylU6a7bi2zQ4ahJS6QpVKm2cLwo6Rr9ZYOzhZULmZ12/4p/nJNqLWgrelcRmYWdSnAyGy1LBLIkABL/ZH3Bwlk8MCxwxU99UJdG+1u1KUgBhIXyKTeu87DniGr1Vtb79bNz5XZIZtQzaBNuyK8M9gho2URSTCYaswOGXwwP1fWRqerp5fWoi4FMZDMQFbMDj9l8YoRvPNzFdXqwdbFlZgczaDDHWTwzuDM67BvIAFxtsSl0PDIsbneURfuI8MwEhnIZovDtSyub7S11mrrYP+A8bHD/ak5XBA9cdaCNneQwTuFbEq5TEorl5iyCP8t11tKmbR/Ohd1KcCeze0ral8pS2cVhpLIQFYp5YY6JH91+8TRm8tKp4xJixOoGbQ1XSCQwS9mpnIxq1VaFpEAS6stHZjJK5NO5EsTeMbMdOxwhdeMGEoin3q9lsWd33GuXdU+UcyldXt1hu3nCdQM2prKEcjgn0px+DOvQJzV1riDDH6Zn6vo+7U1rW+0oy4FEy6Rgazcf4HT7brrft3VgUzqXfb32NlVOXf9/xbj1aBlEZ6qlIY/8wrEWW21RSCDV47NldV10uPP16MuBRMukYGsUsqq66TGDu9YLK0OAtnlSyrn5ypavbSp0xfWQ60RN6bBlEV4qjzkmVcg7mprLS6Fhlfm57jDFsNJZCAb3O2z07mMWj3QVC6tmUJ263Nbgz34yzVROEMGX5WLuaEvsgfiqrXZ0cr6JiPv4ZUDM3ndUi5why12lMhAVin1Jjjt1AZUq7+yfeL26ozymRSHNCdI0O5os+NoWYSXbuTeRCCualwKDU/Nz1XYIcOOEhnIBjtkO42S3i6QZdMp3XnLLH+5Jkgz6EiSpnLcQwb/lItZNTc62mh3oy4FCA2XQsNX84fLOn1hfahhckiuRAaySqnfsrjDu85L9e372efnKnr8+braHV4gTYJGq3cWkDNk8NGwzysgzrgUGr46tnWOjM4qXFsyA9lgh+w6LYvOOS3XA1XLr/zhcOxwWZc2O3rmXCO0GjG8RtALZDOcIYOHts68EsjgseV+IGOHDL6569be7AE6q3A9iQxks0O8wLm4vqmNTnfbHw5bU3PO8G7HJGhusEMGf10OZLS7wF9Lqy3lMynNFnmOwy/lYla37Z9isAeuK5GBrJBNq5BNXTeQbXcH2cBrbprSTD7DpMUJMdghI5DBR8MOIQLirLYW6FC5IDOLuhRg5ObnyuyQ4boSGcgkqVLMXfeA5fX62VMp0xv7F0QjeoMzZDMEMnioQssiEoBLoeGz+bmKavVg681+4GqJDWTlYva67zgv1195KfSV5ucqeurFulqbnVDqw/Ca7JDBY4OhHuyQwWe9S6EJZPDTscO9oy6nzrBLhu0lN5DtcLfP0mpvBO/Bme1/QLzpcFntrtNTL9ZDqQ/Do2URPhtcTL/CDhk85ZzT0mpLh67xBigQd3feMqtMyuiswjUlNpBVitcPZLW1lm6ayimX2f5/onnGmE6MrUDGPWTwUDplmi1kVCeQwVP1S20F7S47ZPBWIZvW7dUZZg/gmhIbyHZqWdypn/3mckH7p/P85ZoAzaCtYjatTDqxyxmeq5Suf+YViDPuIEMSHDvcmz3gnIu6FEygxL6CrZSyWrnOGOlrXQo9YGY6xmCPidAIOrQrwmvlYpaWRXjrelONAV/Mz1W0emlTpy+sR10KJlCCA1lOrc3uNYdy1Oq9EbzXMz9X0Q/PNbZa5hCNZtDWdJ52RfirUrr+jj4QZ0tcCo0EmJ/rXRBNZxW2k9hANrhsdbtzGZudri40g2sO9BiYP1yWc9J32SWLVCNos0MGr5WLWc6QwVuDqcYHGeoBj91enVE+k6KzCttKfCDbrg3o3Fog57TjDtmxrcEevNsRpUbQ1jSBDB6jZRE+W6q3VCllVcjS6QB/ZdMp3XnLLK8Zsa3EBrLB3T7bTVoctn3iVVM5ze0r8m5HxJoEMniu0r+mg8Pg8FGtHqi6Q0cK4IP5uYoef76udqcbdSmYMDsGMjM7bGYPmtmTZvaEmX1oHIWFrVLMSdr+stUbaZ84NlehHzhiTVoW4blKMadO13FeFV6q1Vuq7tCRAvjg2OGyLm129My5RtSlYMIMs0PWlvSbzrmjkt4q6VfM7Gi4ZYVvq2Vxm1HSS6vDHzCenyvr7MVLutAIRlsghtYI2pouEMjgr3Jp8LyibRH+4VJoJMXWHbZn6KzCy+34KtY596KkF/u/XjOzpyTdKunJkGsLVfk6LYu1tUDZtGlfKbfj9zl2+PIF0e98/cHRFomhcIYMvhu8gbR6aVOHI64FGKV2p6vzjYCR90iE19w0pZlCRp85eWbreAxG4z3HbtGR/VNRl7FrN/Qq1syOSLpb0iPb/N79ku6XpGq1qsXFxb1XN2KNRmOrrq5zMkmnvveMFjs/ftnXnfp+oNms9NBDf7Pj91zf7J3p+Kuvf0e2tHOAw2h1uk6tza7OvXBGi4u1qMt52RoDRuW5l3rXczz0jZM6f1OadYaxGMc6u9jqquuk1aUfa3HxxVD/LEyeJD7L7nqV09dPX9TJ0xejLsUvL53W/IHtY00c1tnQgczMpiX9uaRfc87Vr/5959wJSSck6fjx425hYWFUNY7M4uKirqyr/LUvq3LgFi0s3PWyr/vjZ76hV2c6Wli4Z6jvO/W1L2pq/61aWLhzlOViCKvrm9KXv6w773itFt5+W9TlvGKNAaNw89Ka/v03H9KrX3dUC/M3s84wFuNYZ6fOrEiLD+vtx+e1cLQa6p+FyZPEZ9k73uHUZT7TyKVMMrNtfy8O62yoQGZmWfXC2J855z4XbknjU7nGKOml1ZbuODQz9PeplgtarnOGLAqNjd6QgxnOkMFjl6/peOWZVyDOuBQaSWNmSm+fG5Bgw0xZNEmfkPSUc+73wy9pfMql3LZnyJbrO18KfaXqTIFe4Ig0+1PnmLIIn13vmg4gzgZTjasM9QCQYMNMWbxH0gck3Wtm3+n/8zMh1zUWlWJWq1dNWWwGba0F7R0vhb7SoXJBNQJZJBoEMiRAIZtWPpPqtegCHlmqt5ROmW6aJpABSK5hpiz+rSQvN1fLxayeu9B82eeWdvFu3cHZvJbrgZxz1+xfRTgarV4gY8oifFcuZhl7D+/U6oEOTOeVTvGzE0ByDbND5q1KKfuKFqDaViC7gR2y2YI2Ol1d5MXS2A1aFglk8F2llOUMGbzDpdAAkPRAVuwFsu4V425quzhgPAhvgwulMT4NAhkSolLc/swrEGe1ekvVGdoVASRbogPZbDEr56S1ftub1GufkG5sh2zwtbU1Atm4MdQDSTFLyyI8tLTauqEz2wDgo0QHskqpd5Hzle86L622NJPP3NAL/MF5sxo7ZGN3eahHOuJKgHBt12INxNmljY7qrfYNvQEKAD5KdiDb5m6f5bWWDt7g+N3BiHxG349fI+gol04pnyGQwW+DFmvAF7s5sw0APkp0ICv37/a5sg1oN+0TuUxKN03lttodMT7NoM3uGBKhUspqfaOjoN2JuhRgJHZzZhsAfJToQHZ5h+xyIKvVA1Vv4FLogeosd5FFoRG0OT+GRCgXuRwaftnNNTMA4KNEB7LBDtngBU6367S8trsRvFwOHY1G0GbCIhKh3D/zWieQwRNbLYsM9QCQcMkOZIN3nNd7Z8gurm9os+N2NYK3OpsnkEWgSSBDQmzt6DNpEZ6o1QMVs2nN8AwHkHCJDmT5TFrFbHrrBc6gfWI3I3irswWdb2xos9MdaY24viYti0iIMoEMnlmq985sm1nUpQBApBIdyKSXj5Je7g/lOLiLA8aDKVHLawz2GKc1dsiQEJUSZ8jgl+V6Swe5FBoACGTlYnZrqMfSHiY+Df4b2hbHi5ZFJEWl2DtDtkIggycGO2QAkHQEsmJWq/0WoFq9JTPpwC7esTvI5dCRaAYdWhaRCDOFjMwun3kF4sw515tqzMh7ACCQXdmyWKu3dNNUXtn0jf/Pwg7Z+HW7Ts2Ntqa5hwwJkEqZZgtZdsjghZX1TW20uwQyABCBTJViTiuXeu849y6F3l0/+75STtm0aYnLocdmfbMj56TpAjtkSIYr30AC4qy2xqXQADCQ+EBWLmW3ppbt9lJoqffu9cGZgpbZIRubZtCWJFoWkRjlYpYpi/DC0iqXQgPAAIGsmFXQ7qq12VGtvrtLoQeqs/mtwSAIX6MfyBjqgaS4cggREGeDqca0LAIAgWxrlPS5tUAXmhu73iGTeveXcYZsfBqt/g5ZjkCGZKiUcqoTyOCBwZuXB9khAwAC2eCy1R8sr0nSrs+QSdLBmYJqnCEbm0HLImfIkBSVYlYrTFmEB2r1ll41lVM+w1AmAEh8IBvc7fP0UkPS7i6FHjhULqgRtLda6RAuWhaRNOVib6hH17moSwH2pMal0ACwhUDWb1n8fq2/Q7aHQDY4nEzb4ng0NxjqgWSplLLqOqnFez6IuVo94FJoAOhLfCAbtCw+vdQLZHs5YDz4b7kcejy2zpBxDxkSYvC8am6yQ4Z4W6q39nRmGwB8QiDr75A9c66hXDqlff2Pd2Prcug1Atk4NIKOJGkmv/v/z4A4IZDBB5udrs43gj1NNQYAnyQ+kM3kM0qnTBvtrg7O5mVmu/5egx2ypVUGe4xDM2grZVIhm/hljISolHpnXpsMWkSMnW8Eco47yABgIPGvZM1s613nvZwfk3pnmWbyGc6QjUkjaGsqn9lTiAbiZHDmlR0yxNngUui9/swFAF8kPpBJl9uARtE+cXA2TyAbk0bQZsIiEmXwrGoQyBBjNS6FBoCXIZDpikA2ggPGXA49Pk0CGRKGM2TwweBnJIEMAHoIZLrcBrSXS6EHqlwOPTaDlkUgKQrZtArZFGfIEGu1ekuZlOmmqVzUpQDARNgxkJnZJ81s2cweH0dBUdjaIRvBu3XVckHLay11u7yDHTZ2yJBE5WKWHTLE2lL/UuhUivO/ACANt0P2KUn3hVxHpCqjDGQzeW12nF5a39jz98L1cYYMSVQp5ghkiLXlOiPvAeBKO76adc49ZGZHwi8lOuX+KOlRBLJD/R8ytXpL+6cZ6RumZtChZRGJUy5ldbrW1ace/lHUpcBzPzi9qedCWGc/WF7T3Yf3jfz7AkBcjezVrJndL+l+SapWq1pcXBzVtx6ZRqOxbV2dC21V8qYfnPqmTqf31kJxdqV3WfFX/vZbOneQsBCmleYlrZxf0uLixahL2XKtNQaMynQ7UG3d6d/+7yejLgVJ8FQ466y0cYFnJfiZibGIwzobWWJwzp2QdEKSjh8/7hYWFkb1rUdmcXFR29W1IOm3RvRn3L5ySb/zja+qeuR2LbzlJ0b0XXE155xaX/4r3XHbq7Ww8Pqoy9lyrTUGjMo73uH0F19Z1D333BN1KfDcww8/HMo6M+udheQOSfAzE+MQh3XGFs6IHZjJy+zyxZcIR9DuqtN1mi6whJEsZqbpnGkfE+oQMtYZAIwHY+9HLJtO6aYpLocOWyNoSxJDPQAAABBrw4y9/7Skr0u6w8zOmtkvhV9WvFVnCWRha/YD2VSOQAYAAID4GmbK4vvHUYhPDs0W9AIti6Faa/UDGTtkAAAAiDFaFkNQLRe0zA5ZqAY7ZDOcIQMAAECMEchCUJ0p6EJzQ0G7E3Up3mpusEMGAACA+COQheBQuXch9Lm1IOJK/NUIemF3Op+OuBIAAABg9whkITg4W5AkBnuEqNEaTFnMRlwJAAAAsHsEshAc2gpk7JCFZWvKIjtkAAAAiDECWQiq/UDG5dDhaTD2HgAAAB4gkIVgXymrXDql2hqBLCyNoK1SLq1UyqIuBQAAANg1AlkIzEwHZ/OqsUMWmmbQ1jQTFgEAABBzBLKQHJotcIYsRA0CGQAAADxAIAtJdbbAlMUQNYM2d5ABAAAg9ghkISGQhasRtJmwCAAAgNgjkIWkOptXc6OjtdZm1KV4qRF0uIMMAAAAsUcgC8mhMpdDh6k31IMdMgAAAMQbgSwkVS6HDhVnyAAAAOADAllIuBw6XGtBW9MFAhkAAADijUAWkupsXpK4HDoEm52uNtpdTecIZAAAAIg3AllISrmMZgoZLocOQTNoSxItiwAAAIg9AlmIuBw6HGutXiDjYmgAAADEHYEsRNXZgpaYsjhyzY1+IOMMGQAAAGKOQBai6mxBywSykaNlEQAAAL4gkIWoOpvX8lqgbtdFXYpXGkFHkriHDAAAALFHIAvRoXJB7a7TheZG1KV4pdFihwwAAAB+IJCF6ODM4HJo2hZHadCyyFAPAAAAxB2BLESHygSyMDQIZAAAAPAEgSxEg8uhmbQ4Wgz1AAAAgC8IZCE6MJ2XmbiLbMQaQVu5TErZNMsXAAAA8cYr2hBl0intn86rtsoO2Sg1grZm2B0DAACABwhkITvE5dAj1wzatCsCAADAC0MFMjO7z8yeNrNnzOwjYRflk+psgaEeI9YgkAEAAMATOwYyM0tL+rikd0k6Kun9ZnY07MJ8UZ3NE8hGjJZFAAAA+GKYV7VvkfSMc+5ZSTKzByS9V9KTYRbmi0OzBV1c39RnHz2rlEVdjR9eWGnp7xyYiroMAAAAYM/MOXf9LzD7OUn3Oed+uf/xByT9pHPuV6/6uvsl3S9J1Wr17z7wwAPhVLwHjUZD09PTY/0zTy619bHvMGVx1O49nNEv3JmPuoxXiGKNIXlYZxgH1hnCxhrDOES5zt75znc+6pw7vtPXjazvyzl3QtIJSTp+/LhbWFgY1bcemcXFRY27rgVJ/+y+S9rsdMf65/ru1kpRmQkcex/FGkPysM4wDqwzhI01hnGIwzobJpA9L+nwFR/P9T+HId1SKUZdAgAAAIAJNMwWw7ckvc7MXmNmOUnvk/T5cMsCAAAAAP/tuEPmnGub2a9K+pKktKRPOueeCL0yAAAAAPDcUGfInHN/KekvQ64FAAAAABJl8qYiAAAAAEBCEMgAAAAAICI73kO2q29qdk7S6ZF/473bL+l81EXAa6wxjAPrDOPAOkPYWGMYhyjX2audcwd2+qJQAtmkMrOTw1zOBuwWawzjwDrDOLDOEDbWGMYhDuuMlkUAAAAAiAiBDAAAAAAikrRAdiLqAuA91hjGgXWGcWCdIWysMYzDxK+zRJ0hAwAAAIBJkrQdMgAAAACYGAQyAAAAAIhIIgKZmd1nZk+b2TNm9pGo64EfzOywmT1oZk+a2RNm9qH+519lZl8xsx/0/70v6loRb2aWNrNvm9kX+h+/xswe6T/T/ruZ5aKuEfFmZhUz+6yZfc/MnjKzn+JZhlEzs1/v/7x83Mw+bWYFnmfYKzP7pJktm9njV3xu2+eX9fxhf709ZmZvjq7yy7wPZGaWlvRxSe+SdFTS+83saLRVwRNtSb/pnDsq6a2SfqW/tj4i6a+dc6+T9Nf9j4G9+JCkp674+D9I+k/OuddKuijplyKpCj75z5K+6Jx7vaRj6q03nmUYGTO7VdK/lHTcOXeXpLSk94nnGfbuU5Luu+pz13p+vUvS6/r/3C/pj8ZU43V5H8jg6M/tAAADBUlEQVQkvUXSM865Z51zG5IekPTeiGuCB5xzLzrn/l//12vqvYC5Vb319af9L/tTSf84mgrhAzObk/Szkv6k/7FJulfSZ/tfwhrDnphZWdLfl/QJSXLObTjnVsSzDKOXkVQ0s4ykkqQXxfMMe+Sce0jSS1d9+lrPr/dK+q+u5xuSKmZ283gqvbYkBLJbJZ254uOz/c8BI2NmRyTdLekRSVXn3Iv931qSVI2oLPjhDyR9WFK3//FNklacc+3+xzzTsFevkXRO0n/pt8b+iZlNiWcZRsg597yk35P0Y/WC2KqkR8XzDOG41vNrInNBEgIZECozm5b055J+zTlXv/L3XO9eCe6WwK6Y2bslLTvnHo26FngtI+nNkv7IOXe3pKauak/kWYa96p/hea96bwDcImlKr2wzA0YuDs+vJASy5yUdvuLjuf7ngD0zs6x6YezPnHOf63+6Ntj+7v97Oar6EHv3SHqPmT2nXrv1veqd9an0W34knmnYu7OSzjrnHul//Fn1AhrPMozSP5T0I+fcOefcpqTPqfeM43mGMFzr+TWRuSAJgexbkl7Xn+KTU+8A6ecjrgke6J/l+YSkp5xzv3/Fb31e0i/2f/2Lkv7XuGuDH5xzv+2cm3POHVHv2fVV59w/l/SgpJ/rfxlrDHvinFuSdMbM7uh/6h9IelI8yzBaP5b0VjMr9X9+DtYZzzOE4VrPr89L+oX+tMW3Slq9orUxMtbbxfObmf2Meucw0pI+6Zz73YhLggfM7G2Svibpu7p8vudfq3eO7DOSfkLSaUn/xDl39WFT4IaY2YKkf+Wce7eZ3abejtmrJH1b0s8754Io60O8mdmb1Bsck5P0rKQPqvemLc8yjIyZfVTSP1VvSvG3Jf2yeud3eJ5h18zs05IWJO2XVJP0byT9T23z/Oq/GfAx9dpl1yV90Dl3Moq6r5SIQAYAAAAAkygJLYsAAAAAMJEIZAAAAAAQEQIZAAAAAESEQAYAAAAAESGQAQAAAEBECGQAAAAAEBECGQAAAABE5P8D+QPJPQN5JrEAAAAASUVORK5CYII=\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"hidden_states = hmm.predict(X[-100:])\n",
"pd.Series(hidden_states).plot(figsize=(15,3), grid=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n",
"### **02 주가 데이터를 활용한 은닉 마르코프 모델 생성 (HMM)**\n",
"by Stock Price Data"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"# from pandas_datareader import get_data_yahoo\n",
"# price = get_data_yahoo('005930.KS','2017-06-01')\n",
"# price = price.fillna('ffill')\n",
"# price = price.dropna()\n",
"# price.tail(3)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"DatetimeIndex: 248 entries, 2017-06-01 to 2018-06-11\n",
"Data columns (total 6 columns):\n",
"High 248 non-null float64\n",
"Low 248 non-null float64\n",
"Open 248 non-null float64\n",
"Close 248 non-null float64\n",
"Volume 248 non-null float64\n",
"Adj Close 248 non-null float64\n",
"dtypes: float64(6)\n",
"memory usage: 13.6 KB\n"
]
}
],
"source": [
"# 저장된 CSV 파일을 사용한다\n",
"\n",
"import pandas as pd\n",
"price = pd.read_csv('./data/stock.csv')\n",
"price = price.set_index('Date')\n",
"price.head(3)\n",
"price.index = pd.DatetimeIndex(price.index)\n",
"price.info()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(248,)"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import numpy as np\n",
"price_array = np.asarray(price.Close)\n",
"price_array.shape"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(1, 248)"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"price_array = price_array.reshape(1, -1)\n",
"price_array.shape"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"57220.0"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"price_array.max()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"GaussianHMM(algorithm='viterbi', covariance_type='diag', covars_prior=0.01,\n",
" covars_weight=1, init_params='stmc', means_prior=0, means_weight=0,\n",
" min_covar=0.001, n_components=100, n_iter=1000, params='stmc',\n",
" random_state=None, startprob_prior=1.0, tol=0.01, transmat_prior=1.0,\n",
" verbose=False)"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import warnings\n",
"warnings.filterwarnings(\"ignore\")\n",
"\n",
"num_components = 100\n",
"hmm = GaussianHMM(n_components = num_components,\n",
" covariance_type = 'diag', \n",
" n_iter = 1000)\n",
"hmm.fit(price_array.T) "
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"hidden_states = hmm.predict(price_array.T[:15])\n",
"pd.Series(hidden_states).plot(figsize=(10,2), grid=True)"
]
},
{
"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.6.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}