{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2020-11-12T02:29:37.717688Z", "start_time": "2020-11-12T02:29:37.585423Z" } }, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "np.random.seed(2020)\n", "import os" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2020-11-12T02:29:38.686498Z", "start_time": "2020-11-12T02:29:38.681483Z" } }, "outputs": [], "source": [ "from elm import ELMRegressor\n", "from sklearn.metrics.regression import r2_score, mean_squared_error,mean_absolute_error\n", "import math" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2020-11-12T02:29:41.345468Z", "start_time": "2020-11-12T02:29:40.980371Z" } }, "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", " \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", " \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", " \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", " \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", " \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", " \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", " \n", " \n", "
GKfuheTATFT1AT2AWMJ
0t28334.8581222.719205.773113.920278226.345833340.75001.68930
1t37325.4241216.441208.136115.638333221.677222338.65051.68930
2t46328.2181211.417203.691114.769444219.778611338.78401.68930
3t83255.737937.542161.515101.256389165.234722337.86651.27830
4t92255.717949.950161.527101.328889168.152778337.95701.27830
5t101255.677941.303161.512101.300833167.727222338.13451.27830
6t138174.554625.068102.59479.66222291.868333336.69551.27830
7t147174.554673.915108.16082.327222103.232778338.52601.27830
8t156174.535701.883116.85581.486389119.375556339.09451.27830
9t39336.8011245.758207.513112.505000232.013056342.80151.31800
10t48330.5571234.135205.807111.050278232.468056345.91401.31800
11t29336.0871266.167199.155118.137778233.906111350.27051.49750
12t38328.2381214.264197.453109.834167229.244444348.13351.49750
13t47326.2761211.542196.423109.827778229.053611348.26751.49750
14t93264.6161016.826172.197106.156111180.305278342.72301.49750
15t102264.359959.695163.39495.503611171.353056334.21651.49750
16t137178.181692.06595.90773.294167118.773611333.17451.03160
17t146170.174663.04895.83669.219444114.490833334.88001.03160
18t155170.471641.07095.90267.110833109.118889336.13451.03160
\n", "
" ], "text/plain": [ " GK fuhe TA TF T1A T2A W \\\n", "0 t28 334.858 1222.719 205.773 113.920278 226.345833 340.7500 \n", "1 t37 325.424 1216.441 208.136 115.638333 221.677222 338.6505 \n", "2 t46 328.218 1211.417 203.691 114.769444 219.778611 338.7840 \n", "3 t83 255.737 937.542 161.515 101.256389 165.234722 337.8665 \n", "4 t92 255.717 949.950 161.527 101.328889 168.152778 337.9570 \n", "5 t101 255.677 941.303 161.512 101.300833 167.727222 338.1345 \n", "6 t138 174.554 625.068 102.594 79.662222 91.868333 336.6955 \n", "7 t147 174.554 673.915 108.160 82.327222 103.232778 338.5260 \n", "8 t156 174.535 701.883 116.855 81.486389 119.375556 339.0945 \n", "9 t39 336.801 1245.758 207.513 112.505000 232.013056 342.8015 \n", "10 t48 330.557 1234.135 205.807 111.050278 232.468056 345.9140 \n", "11 t29 336.087 1266.167 199.155 118.137778 233.906111 350.2705 \n", "12 t38 328.238 1214.264 197.453 109.834167 229.244444 348.1335 \n", "13 t47 326.276 1211.542 196.423 109.827778 229.053611 348.2675 \n", "14 t93 264.616 1016.826 172.197 106.156111 180.305278 342.7230 \n", "15 t102 264.359 959.695 163.394 95.503611 171.353056 334.2165 \n", "16 t137 178.181 692.065 95.907 73.294167 118.773611 333.1745 \n", "17 t146 170.174 663.048 95.836 69.219444 114.490833 334.8800 \n", "18 t155 170.471 641.070 95.902 67.110833 109.118889 336.1345 \n", "\n", " M J \n", "0 1.6893 0 \n", "1 1.6893 0 \n", "2 1.6893 0 \n", "3 1.2783 0 \n", "4 1.2783 0 \n", "5 1.2783 0 \n", "6 1.2783 0 \n", "7 1.2783 0 \n", "8 1.2783 0 \n", "9 1.3180 0 \n", "10 1.3180 0 \n", "11 1.4975 0 \n", "12 1.4975 0 \n", "13 1.4975 0 \n", "14 1.4975 0 \n", "15 1.4975 0 \n", "16 1.0316 0 \n", "17 1.0316 0 \n", "18 1.0316 0 " ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "GK_all = pd.read_csv(\"F:/论文2/实验数据/工况信息表2_除基准工况.csv\")\n", "#GK_all = pd.read_csv(\"F:/三维可视化温度场/温度资料/现场数据组/工况4/工况信息表_除基准.csv\") # !!! 需要改动\n", "GK_all # 工况信息表" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2020-11-12T02:29:48.596037Z", "start_time": "2020-11-12T02:29:48.122592Z" } }, "outputs": [], "source": [ "# 添加总路径、坐标路径等信息\n", "os.chdir(\"F:/data/daqingshuju/shuzhimoni/fluent6gexianchangcanshu(162gegongkuang)/T-CO-NO-DPM-O2\") \n", "zb_index = pd.read_csv(\"F:/论文2/实验数据/xyzindex.csv\")\n", "name_list = list(GK_all[\"GK\"])" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2020-11-12T02:08:03.756941Z", "start_time": "2020-11-12T02:08:03.752929Z" } }, "outputs": [], "source": [ "# 基准工况的信息\n", "jizhun_name = 't84'\n", "jizhun_info = np.array([260.395,969.185,168.928,97.85777778,172.6511111,339.412,1.4975])" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2020-11-12T02:30:26.390802Z", "start_time": "2020-11-12T02:30:26.353703Z" } }, "outputs": [], "source": [ "# 定义生成边界数据的函数\n", "def Create_bianjie(list_gk, len_seq):\n", " Ne = [list_gk[0]] * len_seq\n", " TA = [list_gk[1]] * len_seq\n", " TF = [list_gk[2]] * len_seq\n", " T1A = [list_gk[3]] * len_seq\n", " T2A = [list_gk[4]] * len_seq\n", " Wen = [list_gk[5]] * len_seq\n", " Mo = [list_gk[6]] * len_seq\n", " Ne = pd.DataFrame(Ne)\n", " Ne.columns = [\"Ne\"]\n", " TA = pd.DataFrame(TA)\n", " TA.columns = [\"TA\"]\n", " TF = pd.DataFrame(TF)\n", " TF.columns = [\"TF\"]\n", " T1A = pd.DataFrame(T1A)\n", " T1A.columns = [\"T1A\"]\n", " T2A = pd.DataFrame(T2A)\n", " T2A.columns = [\"T2A\"]\n", " Wen = pd.DataFrame(Wen)\n", " Wen.columns = [\"Wen\"]\n", " Mo = pd.DataFrame(Mo)\n", " Mo.columns = [\"Mo\"]\n", "\n", " data = pd.concat([Ne, TA, TF, T1A, T2A, Wen, Mo], axis=1)\n", " return data " ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2020-11-12T02:30:40.993980Z", "start_time": "2020-11-12T02:30:30.186787Z" } }, "outputs": [], "source": [ "#zb_index = pd.read_csv(\"F:/论文2/实验数据/xyzindex.csv\") # 只含坐标索引\n", "XYZ = pd.read_csv('t57', usecols=[1, 2, 3])\n", "xyz = XYZ.iloc[zb_index.values[:, 0]]\n", "xyz = pd.DataFrame(xyz.values)\n", "xyz.columns = ['x', 'y', 'z'] # 提取5万组随机坐标(具体数值和xyzindex.csv一致)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "ExecuteTime": { "end_time": "2020-11-12T02:30:51.214242Z", "start_time": "2020-11-12T02:30:40.993980Z" } }, "outputs": [], "source": [ "# 基准工况的随机5万组温度\n", "T_jizun = pd.read_csv(jizhun_name, usecols=[7])#NO:usecols=[4]\n", "t_jizhun = T_jizun.iloc[zb_index.values[:, 0]] #\n", "t_jizhun = pd.DataFrame(t_jizhun.values)\n", "t_jizhun.columns = ['t_jizhun']" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "ExecuteTime": { "end_time": "2020-11-12T02:30:51.229404Z", "start_time": "2020-11-12T02:30:51.214242Z" } }, "outputs": [], "source": [ "# 定义生成训练和验证的数据集\n", "def create_dataM(traAval_names, traAval_info):\n", "\n", " dataM = pd.DataFrame() # 存放结果\n", " bj_jizhun = Create_bianjie(list_gk=jizhun_info, len_seq=50000) # 产生len_seq列基准信息\n", "\n", " for i in range(traAval_names.shape[0]): # traAval_names.shape[0]为除基准信息的余下工况数 \n", " bj_i = Create_bianjie(list_gk=traAval_info[i], len_seq=50000)\n", " Cha_i = bj_i - bj_jizhun # 第i个建模工况的边界差值\n", " O2_i = pd.read_csv(traAval_names[i], usecols=[7])\n", " o2_i = O2_i.iloc[zb_index.values[:, 0]]\n", " o2_i = pd.DataFrame(o2_i.values) #得到第i个工况对应的参数(温度/NO)对应的50000组数据\n", " #o2_i.columns=['t25']\n", " dataMi = pd.concat([\n", " o2_i, t_jizhun,\n", " pd.DataFrame(o2_i.values - t_jizhun.values), xyz, Cha_i\n", " ],\n", " axis=1) # 合并t25氧气、基准氧气,氧气差值、坐标、边界差值\n", " dataM = pd.concat([dataM, dataMi], axis=0) # 按行,上下合并\n", " dataM.columns = [\n", " 't57', 't_jizhun', 'Cha', 'x', 'y', 'z', 'Ne', 'TA', 'TF', 'T1A',\n", " 'T2A', 'Wen', 'Mo'\n", " ]\n", " return dataM" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "ExecuteTime": { "end_time": "2020-11-12T02:30:51.319685Z", "start_time": "2020-11-12T02:30:51.238424Z" } }, "outputs": [], "source": [ "# 定义生成测试的数据集\n", "def create_dataTe(test_name, test_info):\n", "\n", " bj_test = Create_bianjie(list_gk=test_info, len_seq=2776652) # 测试集的全部边界数据\n", " bj_jizhunA = Create_bianjie(list_gk=jizhun_info,\n", " len_seq=2776652) # 基准工况的全部边界数据\n", " bj = bj_test - bj_jizhunA\n", "\n", " O2_jA = pd.read_csv(jizhun_name, usecols=[7]) # 基准工况的全部温度\n", " O2_tA = pd.read_csv(test_name, usecols=[7]) # 测试工况的全部温度\n", "\n", " data_Te = pd.concat([O2_tA, O2_jA, O2_tA - O2_jA, XYZ, bj], axis=1)\n", " data_Te.columns = [\n", " 'test', 't_jizhun', 'Cha', 'x', 'y', 'z', 'Ne', 'TA', 'TF', 'T1A',\n", " 'T2A', 'Wen', 'Mo'\n", " ]\n", "\n", " return data_Te" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "ExecuteTime": { "end_time": "2020-11-12T02:30:51.395527Z", "start_time": "2020-11-12T02:30:51.321690Z" } }, "outputs": [], "source": [ "# 定义差值归一化的函数\n", "Maxmin = {\n", " 'Cha': [-2000, 2000],\n", " 'x': [-10, 10],\n", " 'y': [6, 65],\n", " 'z': [-30, 10],\n", " 'Ne': [-100, 200],\n", " 'TA': [-400, 700],\n", " 'TF': [-100, 200],\n", " 'T1A': [-50, 50],\n", " 'T2A': [-100, 200],\n", " 'Wen': [-50, 100],\n", " 'Mo': [-0.5,0.5],\n", "}\n", "\n", "\n", "def normalizeData(dataR, Maxmin, names):\n", " # resultN: 归一化的数据,dataR:待归一化的数据\n", " resultN = np.zeros(dataR.shape)\n", " for i in range(dataR.shape[1]):\n", " resultN[:, i] = (dataR.values[:, i] - Maxmin.get(names[i])[0]) / (\n", " Maxmin.get(names[i])[1] - Maxmin.get(names[i])[0])\n", " return resultN" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "# 测试集的xyz、真实值、预测值、真实-预测 \n", "\n", "def save_data(data,name):\n", " path='F:\\\\论文2\\\\实验数据\\\\第2类工况' \n", " path=os.path.join(path,name+'.txt')\n", " \n", " datasave=pd.concat([data,pd.DataFrame(data.iloc[:,0]-data.iloc[:,1]),dataTe[['x', 'y', 'z']]],axis=1)\n", " datasave.columns=[\"True\",\"Pre\",\"Cha\",\"X\",\"Y\",\"Z\"]\n", " \n", " datasave.to_csv(path,index=None)\n", "\n", "# 定义保存图片的函数\n", "def save_pig1(ytrue,ypre,name):\n", " \n", " Fig_compare=plt.figure(num=1,figsize=(10,6),dpi=92)\n", " # 创建子图\n", " ax1=Fig_compare.add_subplot(2,1,1)\n", " ax2=Fig_compare.add_subplot(2,1,2)\n", " \n", " ax1.set_ylabel('T',fontsize=12) \n", " ax1.plot(ytrue,linestyle='-',alpha=0.8,color='k',linewidth = 1) # 黑色代表真实值\n", " ax1.plot(ypre,linestyle='-',alpha=0.8,color='r',linewidth = 1) # 红色代表预测值 \n", " # ax1.legend(frameon=False,ncol=2) \n", " ax1.set_xticks([])\n", "\n", " ax2.set_xlabel('samples',fontsize=12)\n", " ax2.set_ylabel('Error',fontsize=12) \n", " ax2.plot(ytrue-ypre,linestyle='-',alpha=0.8,color='k',linewidth = 1) # 第二幅图代表误差曲线 \n", " # ax2.legend(frameon=False,ncol=1,loc='upper right') \n", " \n", " path='F:\\\\论文2\\\\实验数据\\\\第2类工况' \n", " path=os.path.join(path,name+'Line'+'.png')\n", " plt.savefig(path,dpi=300,bbox_inches='tight',figsize=(12,8)) \n", " \n", " plt.close() \n", " \n", "def save_pig2(ytrue,ypre,name):\n", " \n", " Fig_compare=plt.figure(num=1,figsize=(10,8),dpi=92)\n", " # 创建子图\n", " ax1=Fig_compare.add_subplot(2,2,1)\n", " ax2=Fig_compare.add_subplot(2,2,2)\n", "\n", " ax1.set_ylabel(\"Compare\",fontsize=12) \n", " ax1.boxplot((ytrue,ypre),\n", " labels=('True','Predict'),sym='+',whis=1.5,showfliers = False,\n", " boxprops = {'color':'orangered','markeredgecolor':'pink'}\n", " ) \n", "\n", " ax2.set_ylabel(\"Error\",fontsize=12) \n", " ax2.boxplot((ytrue-ypre),\n", " sym='+',whis=1.5,showfliers = False,\n", " boxprops = {'color':'orangered','markeredgecolor':'pink'}\n", " ) \n", " \n", " path='F:\\\\论文2\\\\实验数据\\\\第2类工况' \n", " path=os.path.join(path,name+'box'+'.png')\n", " plt.savefig(path,dpi=300,bbox_inches='tight',figsize=(12,8)) \n", " \n", " plt.close() " ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "最终测试结果 t28 MAE= 106.0791013968404\n", "R2: 0.89 RMSE: 162.18 MAE: 106.08\n", "最终测试结果 t37 MAE= 111.41997608351656\n", "R2: 0.88 RMSE: 165.92 MAE: 111.42\n", "最终测试结果 t46 MAE= 113.74685584980638\n", "R2: 0.88 RMSE: 168.53 MAE: 113.75\n", "最终测试结果 t83 MAE= 91.67618327726316\n", "R2: 0.88 RMSE: 142.90 MAE: 91.68\n", "最终测试结果 t92 MAE= 98.6367509933819\n", "R2: 0.87 RMSE: 150.01 MAE: 98.64\n", "最终测试结果 t101 MAE= 98.67087535440389\n", "R2: 0.86 RMSE: 150.67 MAE: 98.67\n", "最终测试结果 t138 MAE= 119.55808900306305\n", "R2: 0.79 RMSE: 173.90 MAE: 119.56\n", "最终测试结果 t147 MAE= 121.38682326222599\n", "R2: 0.79 RMSE: 177.81 MAE: 121.39\n", "最终测试结果 t156 MAE= 120.92508013967904\n", "R2: 0.78 RMSE: 177.61 MAE: 120.93\n", "最终测试结果 t39 MAE= 125.19613399658489\n", "R2: 0.83 RMSE: 193.45 MAE: 125.20\n", "最终测试结果 t48 MAE= 128.05137921696084\n", "R2: 0.82 RMSE: 196.51 MAE: 128.05\n", "最终测试结果 t29 MAE= 71.80691414432019\n", "R2: 0.94 RMSE: 109.86 MAE: 71.81\n", "最终测试结果 t38 MAE= 84.48734166034711\n", "R2: 0.93 RMSE: 124.88 MAE: 84.49\n", "最终测试结果 t47 MAE= 76.36342578867881\n", "R2: 0.93 RMSE: 119.83 MAE: 76.36\n", "最终测试结果 t93 MAE= 34.593916561349346\n", "R2: 0.98 RMSE: 53.88 MAE: 34.59\n", "最终测试结果 t102 MAE= 44.81540201596225\n", "R2: 0.96 RMSE: 80.02 MAE: 44.82\n", "最终测试结果 t137 MAE= 138.7475776339753\n", "R2: 0.69 RMSE: 213.18 MAE: 138.75\n", "最终测试结果 t146 MAE= 144.6201742361137\n", "R2: 0.68 RMSE: 217.61 MAE: 144.62\n", "最终测试结果 t155 MAE= 139.49254973019336\n", "R2: 0.70 RMSE: 209.63 MAE: 139.49\n" ] } ], "source": [ "Ymax = Maxmin.get('Cha')[1]\n", "Ymin = Maxmin.get('Cha')[0]\n", "\n", "for i in range(19):#range()具体数值根据含工况数定\n", "\n", " # 依次提取name作为测试集\n", " test_name = name_list[i] #得到测试工况名\n", " test_info = GK_all.values[i, 1:] #得到测试工况对应的边界条件\n", "\n", " # 剩余变量作为训练和验证\n", " trainAval = GK_all.drop(i).values #得到除测试工况外所有其它工况名及对应的边界条件\n", " traAval_names = trainAval[:, 0] #得到除测试工况外所有其它工况名\n", " traAval_info = trainAval[:, 1:] #得到除测试工况外所有其它工况对应的边界条件\n", "\n", " # 根据各数据对应的边界条件,生成不同长度的建模数据(包含真实、基准、差值建模数据)\n", " dataM = create_dataM(traAval_names=traAval_names, #30000*(除测试工况外所有其它工况数行)*13列\n", " traAval_info=traAval_info)\n", " dataTe = create_dataTe(test_name=test_name, test_info=test_info) #2776652行*13列\n", "\n", " # 选取数据,去除前两列,只让差值参与建模,统一的标准进行归一化\n", " dataMs = dataM.iloc[:, 2:] # 实际输入,只含差值\n", " dataTes = dataTe.iloc[:, 2:]\n", "\n", " dataMsN = normalizeData(dataR=dataMs, Maxmin=Maxmin,\n", " names=dataMs.columns) # 归一化的数据\n", " dataTesN = normalizeData(dataR=dataTes,\n", " Maxmin=Maxmin,\n", " names=dataTes.columns)\n", "\n", " #数据划分训练、验证、测试,建立ELM模型\n", " split_num = int(0.7 * dataMsN.shape[0])\n", " np.random.shuffle(dataMsN)\n", "\n", " X_train = dataMsN[:split_num, 1:]\n", " Y_train = dataMsN[:split_num, 0]\n", "\n", " X_val = dataMsN[split_num:, 1:]\n", " Y_val = dataMsN[split_num:, 0]\n", "\n", " X_test = dataTesN[:, 1:]\n", " Y_test = dataTesN[:, 0]\n", "\n", " regressor= ELMRegressor(n_hidden=10,\n", " alpha=0.95,\n", " rbf_width=0.00001,\n", " activation_func='tanh',\n", " activation_args=None,\n", " user_components=None,\n", " regressor=None,\n", " random_state=None)\n", " regressor.fit(X_train, Y_train)\n", " \n", " # 验证\n", " Y_pred = regressor.predict(X_val) #归一化后的验证值\n", " Yp = Y_pred * (Ymax - Ymin) + Ymin #反归一化\n", "\n", "\n", " \n", " # 评价结果采用MAE,预测差值反归一化后,加到基准上和测试进行对比\n", " YptestN = regressor.predict(X_test)\n", " Yptest = YptestN * (Ymax - Ymin) + Ymin # 反归一化的差值输出\n", " \n", " # 将偏差加基准后的负值点强制归零\n", " resultA=pd.concat([dataTe.iloc[:,0],pd.DataFrame(dataTe.values[:,1]+Yptest)],axis=1)\n", " resultA.columns=['True','Pre']\n", " prediction=resultA.values[:,1]\n", " index_0=resultA[resultA['Pre']<0].index\n", " for indexi in index_0:\n", " prediction[indexi]=0 \n", " resultL=pd.concat([pd.DataFrame(resultA.values[:,0]),pd.DataFrame(prediction)],axis=1)\n", " resultL.columns=['True','Pre']\n", " \n", " print(\n", " \"最终测试结果\", test_name, \"MAE=\",\n", " mean_absolute_error(y_true=resultL.values[:,0],\n", " y_pred=resultL.values[:,1]))\n", " print('R2: %0.2f RMSE: %0.2f MAE: %0.2f' % (r2_score(resultL.values[:,0],resultL.values[:,1]),math.sqrt(mean_squared_error(resultL.values[:,0],resultL.values[:,1])),mean_absolute_error(resultL.values[:,0], resultL.values[:,1])))\n", " \n", " save_data(data=resultL,name=test_name)\n", " save_pig1(ypre=resultL.values[:,1],ytrue=resultL.values[:,0],name=test_name)\n", " save_pig2(ypre=resultL.values[:,1],ytrue=resultL.values[:,0],name=test_name)\n", " \n", "# 保存预测结果\n", "# save_data(data=resultL,name=test_name)\n", "# mae_list.append(mean_absolute_error(y_true=resultL.values[:,0],y_pred=resultL.values[:,1]))\n", "#test_name_list.append(test_name) " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "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.7.4" }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "oldHeight": 199, "position": { "height": "221px", "left": "915px", "right": "20px", "top": "1px", "width": "446px" }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "varInspector_section_display": "block", "window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }