430 lines
317 KiB
Plaintext
430 lines
317 KiB
Plaintext
|
{
|
|||
|
"cells": [
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 18,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [],
|
|||
|
"source": [
|
|||
|
"from math import sqrt\n",
|
|||
|
"from numpy import concatenate\n",
|
|||
|
"from matplotlib import pyplot\n",
|
|||
|
"import pandas as pd\n",
|
|||
|
"import numpy as np\n",
|
|||
|
"from sklearn.preprocessing import MinMaxScaler\n",
|
|||
|
"from sklearn.preprocessing import LabelEncoder\n",
|
|||
|
"from sklearn.metrics import mean_squared_error\n",
|
|||
|
"from tensorflow.keras import Sequential\n",
|
|||
|
"\n",
|
|||
|
"from tensorflow.keras.layers import Dense\n",
|
|||
|
"from tensorflow.keras.layers import LSTM\n",
|
|||
|
"from tensorflow.keras.layers import Dropout\n",
|
|||
|
"from sklearn.model_selection import train_test_split\n",
|
|||
|
"import matplotlib.pyplot as plt"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 19,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [],
|
|||
|
"source": [
|
|||
|
"# 加载数据\n",
|
|||
|
"path1 = r\"D:\\project\\小论文1-基于ICEEMDAN分解的时序高维变化的短期光伏功率预测模型\\CEEMAN-PosConv1dbiLSTM-LSTM\\模型代码流程\\完整的模型代码流程\\低频_forecast.csv\"#数据所在路径\n",
|
|||
|
"#我的数据是excel表,若是csv文件用pandas的read_csv()函数替换即可。\n",
|
|||
|
"f_low= pd.DataFrame(pd.read_csv(path1))"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 20,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [],
|
|||
|
"source": [
|
|||
|
"# 加载数据\n",
|
|||
|
"path2 = r\"D:\\project\\小论文1-基于ICEEMDAN分解的时序高维变化的短期光伏功率预测模型\\CEEMAN-PosConv1dbiLSTM-LSTM\\模型代码流程\\完整的模型代码流程\\高频re_forecast.csv\"#数据所在路径\n",
|
|||
|
"#我的数据是excel表,若是csv文件用pandas的read_csv()函数替换即可。\n",
|
|||
|
"f_high= pd.DataFrame(pd.read_csv(path2))"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 21,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [],
|
|||
|
"source": [
|
|||
|
"path3= r\"D:\\project\\小论文1-基于ICEEMDAN分解的时序高维变化的短期光伏功率预测模型\\CEEMAN-PosConv1dbiLSTM-LSTM\\模型代码流程\\完整的模型代码流程\\低频_test.csv\"#数据所在路径\n",
|
|||
|
"#我的数据是excel表,若是csv文件用pandas的read_csv()函数替换即可。\n",
|
|||
|
"true_low= pd.DataFrame(pd.read_csv(path3))"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 22,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [],
|
|||
|
"source": [
|
|||
|
"path4= r\"D:\\project\\小论文1-基于ICEEMDAN分解的时序高维变化的短期光伏功率预测模型\\CEEMAN-PosConv1dbiLSTM-LSTM\\模型代码流程\\完整的模型代码流程\\高频re_test.csv\"#数据所在路径\n",
|
|||
|
"#我的数据是excel表,若是csv文件用pandas的read_csv()函数替换即可。\n",
|
|||
|
"true_high= pd.DataFrame(pd.read_csv(path4))"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 23,
|
|||
|
"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>column_name</th>\n",
|
|||
|
" </tr>\n",
|
|||
|
" </thead>\n",
|
|||
|
" <tbody>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>0</th>\n",
|
|||
|
" <td>1.958189</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>1</th>\n",
|
|||
|
" <td>2.254070</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>2</th>\n",
|
|||
|
" <td>1.279676</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>3</th>\n",
|
|||
|
" <td>1.747101</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>4</th>\n",
|
|||
|
" <td>1.987240</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>...</th>\n",
|
|||
|
" <td>...</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>20826</th>\n",
|
|||
|
" <td>0.017192</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>20827</th>\n",
|
|||
|
" <td>0.014549</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>20828</th>\n",
|
|||
|
" <td>0.014636</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>20829</th>\n",
|
|||
|
" <td>0.016639</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>20830</th>\n",
|
|||
|
" <td>0.017215</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" </tbody>\n",
|
|||
|
"</table>\n",
|
|||
|
"<p>20831 rows × 1 columns</p>\n",
|
|||
|
"</div>"
|
|||
|
],
|
|||
|
"text/plain": [
|
|||
|
" column_name\n",
|
|||
|
"0 1.958189\n",
|
|||
|
"1 2.254070\n",
|
|||
|
"2 1.279676\n",
|
|||
|
"3 1.747101\n",
|
|||
|
"4 1.987240\n",
|
|||
|
"... ...\n",
|
|||
|
"20826 0.017192\n",
|
|||
|
"20827 0.014549\n",
|
|||
|
"20828 0.014636\n",
|
|||
|
"20829 0.016639\n",
|
|||
|
"20830 0.017215\n",
|
|||
|
"\n",
|
|||
|
"[20831 rows x 1 columns]"
|
|||
|
]
|
|||
|
},
|
|||
|
"execution_count": 23,
|
|||
|
"metadata": {},
|
|||
|
"output_type": "execute_result"
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"pre_data=f_low+f_high\n",
|
|||
|
"pre_data"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 24,
|
|||
|
"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>column_name</th>\n",
|
|||
|
" </tr>\n",
|
|||
|
" </thead>\n",
|
|||
|
" <tbody>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>0</th>\n",
|
|||
|
" <td>2.186333e+00</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>1</th>\n",
|
|||
|
" <td>1.377467e+00</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>2</th>\n",
|
|||
|
" <td>1.452000e+00</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>3</th>\n",
|
|||
|
" <td>1.846867e+00</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>4</th>\n",
|
|||
|
" <td>2.793334e+00</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>...</th>\n",
|
|||
|
" <td>...</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>20826</th>\n",
|
|||
|
" <td>6.661338e-16</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>20827</th>\n",
|
|||
|
" <td>0.000000e+00</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>20828</th>\n",
|
|||
|
" <td>2.220446e-16</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>20829</th>\n",
|
|||
|
" <td>2.220446e-16</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" <tr>\n",
|
|||
|
" <th>20830</th>\n",
|
|||
|
" <td>4.440892e-16</td>\n",
|
|||
|
" </tr>\n",
|
|||
|
" </tbody>\n",
|
|||
|
"</table>\n",
|
|||
|
"<p>20831 rows × 1 columns</p>\n",
|
|||
|
"</div>"
|
|||
|
],
|
|||
|
"text/plain": [
|
|||
|
" column_name\n",
|
|||
|
"0 2.186333e+00\n",
|
|||
|
"1 1.377467e+00\n",
|
|||
|
"2 1.452000e+00\n",
|
|||
|
"3 1.846867e+00\n",
|
|||
|
"4 2.793334e+00\n",
|
|||
|
"... ...\n",
|
|||
|
"20826 6.661338e-16\n",
|
|||
|
"20827 0.000000e+00\n",
|
|||
|
"20828 2.220446e-16\n",
|
|||
|
"20829 2.220446e-16\n",
|
|||
|
"20830 4.440892e-16\n",
|
|||
|
"\n",
|
|||
|
"[20831 rows x 1 columns]"
|
|||
|
]
|
|||
|
},
|
|||
|
"execution_count": 24,
|
|||
|
"metadata": {},
|
|||
|
"output_type": "execute_result"
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"true=true_low+true_high\n",
|
|||
|
"true"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 25,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"data": {
|
|||
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABP4AAAKTCAYAAACJusZ+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOy9eZwkR3Un/iKzuntmNDMaHaNbQujgtrgvm2uxWfC1tpe1/cPYmF3bYK9ZwBh7wTYYA0bYgDHYXu7TyOIytxBCAh3oRvctjTQaza25z54+KjN+f1RFxMuorOn4RlRXdk2/7+cD093KrMzKI+LF933f9ymttSaBQCAQCAQCgUAgEAgEAoFAcEQha/oEBAKBQCAQCAQCgUAgEAgEAsHgIcSfQCAQCAQCgUAgEAgEAoFAcARCiD+BQCAQCAQCgUAgEAgEAoHgCIQQfwKBQCAQCAQCgUAgEAgEAsERCCH+BAKBQCAQCAQCgUAgEAgEgiMQQvwJBAKBQCAQCAQCgUAgEAgERyCE+BMIBAKBQCAQCAQCgUAgEAiOQLSGfcCyLGnz5s20YsUKUkoN+/ACgUAgEAgEAoFAIBAIBALBSENrTfv376dTTjmFsqy/rm/oxN/mzZvp9NNPH/ZhBQKBQCAQCAQCgUAgEAgEgiMKGzZsoNNOO63vfx868bdixQoi6pzYypUrh314gUAgEAgEAoFAIBAIBAKBYKSxb98+Ov300y3P1g9DJ/5Mee/KlSuF+BMIBAKBQCAQCAQCgUAgEAgiMZeNnjT3EAgEAoFAIBAIBAKBQCAQCI5ACPEnEAgEAoFAIBAIBAKBQCAQHIEQ4k8gEAgEAoFAIBAIBAKBQCA4AjF0jz+BQCAQCAQCgUAgEAgEAsHiQ1EUNDs72/RpjATGxsYoz/PkzxHiTyAQCAQCgUAgEAgEAoFAMG/QWtPWrVtpz549TZ/KSGHVqlV00kknzdnA43AQ4k8gEAgEAoFAIBAIBAKBQDBvMKTfCSecQMuWLUsishYDtNY0OTlJ27ZtIyKik08+OfqzhPgTCAQCgUAgEAgEAoFAIBDMC4qisKTfcccd1/TpjAyWLl1KRETbtm2jE044IbrsV5p7CAQCgUAgEAgEAoFAIBAI5gXG02/ZsmUNn8nowVyzFF9EIf4EAoFAIBAIBAKBQCAQCATzCinvxTGIaybEn0AgEAgEAoFAIBAIBAKBQHAEQog/gUAgEAgEAoFAIBAIBAKB4AiEEH8CgUAgEAgEAoFAIBAIBALBEQgh/gQCgUAgEAgEAoFAIBAIBAIPL3nJS+jNb35z06eRBCH+BAKBQCAQCAQCgUAgEAgEAhBaa2q3202fxmEhxJ9AIBAIBAKBQCAQCAQCgWBo0FrT5Ex76P/TWgef42tf+1q68sor6SMf+QgppUgpRZ///OdJKUUXX3wxPfOZz6SJiQm6+uqr6bWvfS39+q//emX/N7/5zfSSl7zE/l6WJZ1//vn02Mc+lpYuXUpPfepT6etf//qArmh/tOb9CAKBQCAQCAQCgUAgEAgEAkEXh2YLetI7Lxn6ce9598tp2XgYFfaRj3yEHnjgAXrKU55C7373u4mI6O677yYiore97W30wQ9+kM466yw65phjgj7v/PPPpy996Uv08Y9/nM4991y66qqr6Hd/93dp9erV9OIXvzjuCwVAiD+BQCAQCAQCgUAgEAgEAoGA4eijj6bx8XFatmwZnXTSSUREdN999xER0bvf/W562cteFvxZ09PT9L73vY8uu+wyev7zn09ERGeddRZdffXV9IlPfEKIP4FAIBAIBAKBQCAQCAQCwZGBpWM53fPulzdy3EHgWc96FrT9gw8+SJOTkz1k4czMDD396U8fyDn1gxB/AoFAIBAIBAKBQCAQCASCoUEpFVxyuxBx1FFHVX7PsqzHP3B2dtb+fODAASIiuuiii+jUU0+tbDcxMTFPZ9nB6F5lgUAgEAgEAoFAIBAIBAKBYJ4wPj5ORVHMud3q1avprrvuqvzttttuo7GxMSIietKTnkQTExO0fv36eS3rrYMQfwKBQCAQCAQCgUAgEAgEAoGHM888k2644QZat24dLV++nMqyrN3upS99KX3gAx+gL37xi/T85z+fvvSlL9Fdd91ly3hXrFhBb33rW+nP/uzPqCxLesELXkB79+6la665hlauXEm///u/P2/fIZu3TxYIBAKBQCAQCAQCgUAgEAhGFG9961spz3N60pOeRKtXr6b169fXbvfyl7+c3vGOd9Bf/uVf0rOf/Wzav38/veY1r6ls8573vIfe8Y530Pnnn09PfOIT6RWveAVddNFF9NjHPnZev4PSfhHyPGPfvn109NFH0969e2nlypXDPLRAIBAIBAKBQCAQCAQCgWCImJqaoocffpge+9jH0pIlS5o+nZHC4a5dKL8mij+BQCAQCAQCgUAgEAgEAoHgCIQQfwKBQCAQCASC0cOhPURf/wOiNZc2fSYCgUAgEAgECxZC/AkEAoFAIBAIRg+X/z3RXV8nuuB/NH0mAoFAIBAIBAsWQvwJBAJBAKbbBQ3ZElUgEAgEh8O+zU2fgUAgEAgEAsGChxB/AoFAMAd2H5yhJ73zEnrNZ29s+lQEAoFAIBAIBAKBQCAIhhB/AoFAMAd+cPdWKkpNP1mzo+lTEQgEAoGBUk2fgUAgEAgEAsGChxB/AoFAIBAIBIIRhBB/AoFAIBAIBHNBiD+BQCAQCAQCwehBFH8CgUAgEAgEc0KIP4FAIABw9+a9TZ+CQCAQCIhIFH8CgUAgEAgEc0OIP4FAIADwvTu2NH0KAoFAICASxZ9AIBAIBAJBAIT4EwgEAgBaN30GAoFAIOhAiD+BQCAQCAQLCzMzM02fQg+E+BMIBAKBQCAQjB5E8ScQCAQCgWCe8ZKXvITe8IY30Bve8AY6+uij6fjjj6d3vOMdpLuKkDPPPJPe85730Gte8xpauXIlve51ryMioquvvppe+MIX0tKlS+n000+nN77xjXTw4MFGvoMQfwKBQABAk0j+BAKBYGFAiD+BQCAQCEYWWhPNHBz+/yJKuL7whS9Qq9WiG2+8kT7ykY/QP/3TP9GnP/1p+98/+MEP0lOf+lS69dZb6R3veAc99NBD9IpXvIJe+cpX0h133EFf+cpX6Oqrr6Y3vOENg7yCwWghG7/rXe+iv/u7v6v87fGPfzzdd999Az0pgUAgEAgEAoHgsBDFn0AgEAgEo4vZSaL3nTL84/7VZqLxo6BdTj/9dPrwhz9MSil6/OMfT3feeSd9+MMfpj/6oz8iIqKXvvSl9Od//ud2+z/8wz+kV7/61fTmN7+ZiIjOPfdc+uhHP0ovfvGL6WMf+xgtWbJkYF8nBBDxR0T05Cc/mS677DL3AS34IwQCgWB0IYI/gUAgGCi01qSiSDwh/gQCgUAgEMw/nve851Vilec///n0oQ99iIqiICKiZz3rWZXtb7/9drrjjjvoggsusH/TWlNZlvTwww/TE5/4xOGceBcwa9dqteikk04K3n56epqmp6ft7/v27UMPKRAIBAKBQCA4ArFt/xT90keupv/xzNPobb/4BGxnUfwJBAKBQDC6GFvWUd81cdwB46ijqgrCAwcO0Otf/3p64xvf2LPtGWecMfDjzwWY+FuzZg2dcsoptGTJEnr+859P559//mFP/Pzzz+8pDxYIBAKBQCAQCD5+xVracWCaPn7lQzjxJxAIBAKBYHShFFxy2xRuuOGGyu/XX389nXvuuZTnee32z3jGM+iee+6hc845ZxinNyeg5h7Pfe5z6fOf/zz94Ac/oI997GP08MMP0wtf+ELav39/333e/va30969e+3/NmzYkHzSAoFA0BSk0lcgEAgWCpjib9fDzZ2GQCAQCASCIxrr16+nt7zlLXT//ffThRdeSP/yL/9Cb3rTm/pu/3//7/+la6+9lt7whjfQbbfdRmvWrKFvf/vbo9Hc4xd/8Rftz+eddx4997nPpcc85jH01a9+lf7gD/6gdp+JiQmamJhIO0uBQCAQCAQCwRGHgVXrXva3RL/1xQF9mEAgEAgEAoHDa17zGjp06BA95zn
|
|||
|
"text/plain": [
|
|||
|
"<Figure size 1600x800 with 1 Axes>"
|
|||
|
]
|
|||
|
},
|
|||
|
"metadata": {},
|
|||
|
"output_type": "display_data"
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"plt.figure(figsize=(16,8))\n",
|
|||
|
"plt.plot(true, label='true')\n",
|
|||
|
"plt.plot(pre_data, label='pre')\n",
|
|||
|
"plt.legend()\n",
|
|||
|
"plt.show()"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 29,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stdout",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
"mean_squared_error: 0.04969353670622598\n",
|
|||
|
"mean_absolute_error: 0.08076025073121713\n",
|
|||
|
"rmse: 0.22292047170734675\n",
|
|||
|
"r2 score: 0.9988271323117631\n"
|
|||
|
]
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"from sklearn.metrics import mean_squared_error, mean_absolute_error # 评价指标\n",
|
|||
|
"# 使用sklearn调用衡量线性回归的MSE 、 RMSE、 MAE、r2\n",
|
|||
|
"from math import sqrt\n",
|
|||
|
"from sklearn.metrics import mean_absolute_error\n",
|
|||
|
"from sklearn.metrics import mean_squared_error\n",
|
|||
|
"from sklearn.metrics import r2_score\n",
|
|||
|
"print('mean_squared_error:', mean_squared_error(pre_data, true)) # mse)\n",
|
|||
|
"print(\"mean_absolute_error:\", mean_absolute_error(pre_data, true)) # mae\n",
|
|||
|
"print(\"rmse:\", sqrt(mean_squared_error(pre_data, true)))\n",
|
|||
|
"print(\"r2 score:\", r2_score(pre_data[5000:10000], true[5000:10000]))#预测50天"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 46,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stdout",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
"(20831, 1)\n"
|
|||
|
]
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"# 使用MinMaxScaler进行归一化\n",
|
|||
|
"from sklearn.preprocessing import MinMaxScaler\n",
|
|||
|
"scaler = MinMaxScaler(feature_range=(0, 1))\n",
|
|||
|
"pre = scaler.fit_transform(pre_data)\n",
|
|||
|
"print(pre.shape)"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 47,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stdout",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
"(20831, 1)\n"
|
|||
|
]
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"from sklearn.preprocessing import MinMaxScaler\n",
|
|||
|
"scaler = MinMaxScaler(feature_range=(0, 1))\n",
|
|||
|
"true_data = scaler.fit_transform(true)\n",
|
|||
|
"print(true_data.shape)"
|
|||
|
]
|
|||
|
},
|
|||
|
{
|
|||
|
"cell_type": "code",
|
|||
|
"execution_count": 50,
|
|||
|
"metadata": {},
|
|||
|
"outputs": [
|
|||
|
{
|
|||
|
"name": "stdout",
|
|||
|
"output_type": "stream",
|
|||
|
"text": [
|
|||
|
"mean_squared_error: 0.0026778377010073626\n",
|
|||
|
"mean_absolute_error: 0.027468762691519367\n",
|
|||
|
"rmse: 0.05174782798347543\n",
|
|||
|
"r2 score: 0.9988074259067585\n"
|
|||
|
]
|
|||
|
}
|
|||
|
],
|
|||
|
"source": [
|
|||
|
"from sklearn.metrics import mean_squared_error, mean_absolute_error # 评价指标\n",
|
|||
|
"# 使用sklearn调用衡量线性回归的MSE 、 RMSE、 MAE、r2\n",
|
|||
|
"from math import sqrt\n",
|
|||
|
"from sklearn.metrics import mean_absolute_error\n",
|
|||
|
"from sklearn.metrics import mean_squared_error\n",
|
|||
|
"from sklearn.metrics import r2_score\n",
|
|||
|
"print('mean_squared_error:', mean_squared_error(pre, true_data)) # mse)\n",
|
|||
|
"print(\"mean_absolute_error:\", mean_absolute_error(pre, true_data)) # mae\n",
|
|||
|
"print(\"rmse:\", sqrt(mean_squared_error(pre, true_data)))\n",
|
|||
|
"print(\"r2 score:\", r2_score(pre_data, true))"
|
|||
|
]
|
|||
|
}
|
|||
|
],
|
|||
|
"metadata": {
|
|||
|
"kernelspec": {
|
|||
|
"display_name": "base",
|
|||
|
"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.9.13"
|
|||
|
}
|
|||
|
},
|
|||
|
"nbformat": 4,
|
|||
|
"nbformat_minor": 2
|
|||
|
}
|