MUTC Photodetector Dataset
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1106 lines
434 KiB

{
"cells": [
{
"cell_type": "code",
2 months ago
"execution_count": 1,
"metadata": {
"id": "H6eOwX3UGpvG"
},
2 months ago
"outputs": [],
"source": [
"import pathlib\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import pandas as pd\n",
"import seaborn as sns\n",
"# ML models\n",
"from sklearn.linear_model import LinearRegression\n",
"from sklearn.neighbors import KNeighborsRegressor\n",
"from sklearn.ensemble import RandomForestRegressor\n",
"from sklearn.model_selection import train_test_split\n",
"# Multilayer Perceptron\n",
2 months ago
"from keras import Model\n",
"from keras.api.layers import Input\n",
"from keras.api.layers import Dense\n",
"from keras.api.layers import Dropout\n",
"from keras.api.layers import concatenate\n",
"from keras import optimizers\n",
"from keras import backend\n",
"from keras.api.layers import LeakyReLU, PReLU\n"
]
},
{
"cell_type": "code",
2 months ago
"execution_count": 2,
"metadata": {
"id": "xO6mZcSAGyp7"
},
2 months ago
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Cloning into 'photodetectors'...\n",
"remote: Enumerating objects: 21, done.\u001b[K\n",
"remote: Counting objects: 100% (21/21), done.\u001b[K\n",
"remote: Compressing objects: 100% (19/19), done.\u001b[K\n",
"remote: Total 21 (delta 5), reused 0 (delta 0), pack-reused 0 (from 0)\u001b[K\n",
"Receiving objects: 100% (21/21), 141.10 KiB | 708.00 KiB/s, done.\n",
"Resolving deltas: 100% (5/5), done.\n"
]
}
],
"source": [
"!git clone https://github.com/simsekergun/photodetectors.git\n",
"df = pd.read_csv(\"./photodetectors/MUTC1750designs.csv\")"
2 months ago
]
},
{
"cell_type": "code",
2 months ago
"execution_count": 4,
"metadata": {
"id": "1qLZ_FkrHJJB"
},
2 months ago
"outputs": [
{
"data": {
"text/plain": [
"(1755, 39)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# let's take log10 of doping levels so that we deal with numbers in the similar ranges\n",
"df[df.columns[22:40]] =np.log10(df[df.columns[22:40]])\n",
"df.shape"
2 months ago
]
},
{
"cell_type": "code",
2 months ago
"execution_count": 5,
"metadata": {
"id": "x5h23R0y1MXk"
},
2 months ago
"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>phasenoise</th>\n",
" <th>phasenoise_15mA</th>\n",
" <th>current</th>\n",
" <th>IR_max</th>\n",
" <th>decay_time</th>\n",
" <th>t1</th>\n",
" <th>t2</th>\n",
" <th>t3</th>\n",
" <th>t4</th>\n",
" <th>t5</th>\n",
" <th>t6</th>\n",
" <th>t7</th>\n",
" <th>t8</th>\n",
" <th>t9</th>\n",
" <th>t10</th>\n",
" <th>t11</th>\n",
" <th>t12</th>\n",
" <th>t13</th>\n",
" <th>t14</th>\n",
" <th>t15</th>\n",
" <th>t16</th>\n",
" <th>t17</th>\n",
" <th>d1</th>\n",
" <th>d2</th>\n",
" <th>d3</th>\n",
" <th>d4</th>\n",
" <th>d5</th>\n",
" <th>d6</th>\n",
" <th>d7</th>\n",
" <th>d8</th>\n",
" <th>d9</th>\n",
" <th>d10</th>\n",
" <th>d11</th>\n",
" <th>d12</th>\n",
" <th>d13</th>\n",
" <th>d14</th>\n",
" <th>d15</th>\n",
" <th>d16</th>\n",
" <th>d17</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>-161.516</td>\n",
" <td>-170.938</td>\n",
" <td>0.001713</td>\n",
" <td>32002500000</td>\n",
" <td>184.775</td>\n",
" <td>20.7</td>\n",
" <td>121.5</td>\n",
" <td>6.0</td>\n",
" <td>33.5</td>\n",
" <td>96.7</td>\n",
" <td>153.3</td>\n",
" <td>338.8</td>\n",
" <td>159.6</td>\n",
" <td>83.3</td>\n",
" <td>98.9</td>\n",
" <td>45.0</td>\n",
" <td>44.9</td>\n",
" <td>830.5</td>\n",
" <td>123.0</td>\n",
" <td>603.3</td>\n",
" <td>37.3</td>\n",
" <td>253.2</td>\n",
" <td>1.305783</td>\n",
" <td>1.271364</td>\n",
" <td>1.272096</td>\n",
" <td>1.266428</td>\n",
" <td>1.252470</td>\n",
" <td>1.258483</td>\n",
" <td>1.234552</td>\n",
" <td>1.274379</td>\n",
" <td>1.179281</td>\n",
" <td>1.175028</td>\n",
" <td>1.179184</td>\n",
" <td>1.207985</td>\n",
" <td>1.187753</td>\n",
" <td>1.272959</td>\n",
" <td>1.259361</td>\n",
" <td>1.277114</td>\n",
" <td>1.265405</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>-162.136</td>\n",
" <td>-171.316</td>\n",
" <td>0.001812</td>\n",
" <td>28499800000</td>\n",
" <td>161.603</td>\n",
" <td>76.7</td>\n",
" <td>79.0</td>\n",
" <td>85.4</td>\n",
" <td>12.0</td>\n",
" <td>77.6</td>\n",
" <td>220.4</td>\n",
" <td>324.4</td>\n",
" <td>154.2</td>\n",
" <td>104.2</td>\n",
" <td>48.5</td>\n",
" <td>60.9</td>\n",
" <td>44.5</td>\n",
" <td>1260.3</td>\n",
" <td>105.4</td>\n",
" <td>681.2</td>\n",
" <td>76.2</td>\n",
" <td>134.3</td>\n",
" <td>1.293540</td>\n",
" <td>1.257687</td>\n",
" <td>1.243595</td>\n",
" <td>1.265327</td>\n",
" <td>1.251831</td>\n",
" <td>1.277288</td>\n",
" <td>1.229116</td>\n",
" <td>1.269485</td>\n",
" <td>1.197379</td>\n",
" <td>1.217584</td>\n",
" <td>1.201889</td>\n",
" <td>1.236232</td>\n",
" <td>1.172271</td>\n",
" <td>1.235070</td>\n",
" <td>1.259907</td>\n",
" <td>1.272348</td>\n",
" <td>1.274908</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>-162.661</td>\n",
" <td>-172.271</td>\n",
" <td>0.001641</td>\n",
" <td>34642300000</td>\n",
" <td>174.001</td>\n",
" <td>86.5</td>\n",
" <td>94.5</td>\n",
" <td>7.0</td>\n",
" <td>16.6</td>\n",
" <td>111.4</td>\n",
" <td>119.6</td>\n",
" <td>259.9</td>\n",
" <td>216.2</td>\n",
" <td>93.8</td>\n",
" <td>74.6</td>\n",
" <td>66.7</td>\n",
" <td>70.3</td>\n",
" <td>865.6</td>\n",
" <td>60.8</td>\n",
" <td>631.5</td>\n",
" <td>57.8</td>\n",
" <td>301.8</td>\n",
" <td>1.309769</td>\n",
" <td>1.242361</td>\n",
" <td>1.234008</td>\n",
" <td>1.250800</td>\n",
" <td>1.282955</td>\n",
" <td>1.284047</td>\n",
" <td>1.236361</td>\n",
" <td>1.275011</td>\n",
" <td>1.208796</td>\n",
" <td>1.186756</td>\n",
" <td>1.184345</td>\n",
" <td>1.217257</td>\n",
" <td>1.198920</td>\n",
" <td>1.257687</td>\n",
" <td>1.251787</td>\n",
" <td>1.287910</td>\n",
" <td>1.260488</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" phasenoise phasenoise_15mA current ... d15 d16 d17\n",
"0 -161.516 -170.938 0.001713 ... 1.259361 1.277114 1.265405\n",
"1 -162.136 -171.316 0.001812 ... 1.259907 1.272348 1.274908\n",
"2 -162.661 -172.271 0.001641 ... 1.251787 1.287910 1.260488\n",
"\n",
"[3 rows x 39 columns]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head(3)"
2 months ago
]
},
{
"cell_type": "code",
2 months ago
"execution_count": 6,
"metadata": {
"id": "iyFCz4P3xSgt"
},
2 months ago
"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>phasenoise</th>\n",
" <th>phasenoise_15mA</th>\n",
" <th>current</th>\n",
" <th>IR_max</th>\n",
" <th>decay_time</th>\n",
" <th>t1</th>\n",
" <th>t2</th>\n",
" <th>t3</th>\n",
" <th>t4</th>\n",
" <th>t5</th>\n",
" <th>t6</th>\n",
" <th>t7</th>\n",
" <th>t8</th>\n",
" <th>t9</th>\n",
" <th>t10</th>\n",
" <th>t11</th>\n",
" <th>t12</th>\n",
" <th>t13</th>\n",
" <th>t14</th>\n",
" <th>t15</th>\n",
" <th>t16</th>\n",
" <th>t17</th>\n",
" <th>d1</th>\n",
" <th>d2</th>\n",
" <th>d3</th>\n",
" <th>d4</th>\n",
" <th>d5</th>\n",
" <th>d6</th>\n",
" <th>d7</th>\n",
" <th>d8</th>\n",
" <th>d9</th>\n",
" <th>d10</th>\n",
" <th>d11</th>\n",
" <th>d12</th>\n",
" <th>d13</th>\n",
" <th>d14</th>\n",
" <th>d15</th>\n",
" <th>d16</th>\n",
" <th>d17</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1.755000e+03</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" <td>1755.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>-170.904159</td>\n",
" <td>-177.668607</td>\n",
" <td>0.003658</td>\n",
" <td>5.396398e+10</td>\n",
" <td>62.732325</td>\n",
" <td>47.636524</td>\n",
" <td>106.206610</td>\n",
" <td>34.891556</td>\n",
" <td>43.307134</td>\n",
" <td>107.375670</td>\n",
" <td>156.129744</td>\n",
" <td>128.975726</td>\n",
" <td>254.953846</td>\n",
" <td>218.316866</td>\n",
" <td>35.527464</td>\n",
" <td>43.459715</td>\n",
" <td>54.563818</td>\n",
" <td>802.370541</td>\n",
" <td>136.098519</td>\n",
" <td>862.386610</td>\n",
" <td>32.092536</td>\n",
" <td>271.600456</td>\n",
" <td>1.280365</td>\n",
" <td>1.262741</td>\n",
" <td>1.269587</td>\n",
" <td>1.262134</td>\n",
" <td>1.263356</td>\n",
" <td>1.267220</td>\n",
" <td>1.256298</td>\n",
" <td>1.248157</td>\n",
" <td>1.203600</td>\n",
" <td>1.213761</td>\n",
" <td>1.213221</td>\n",
" <td>1.231519</td>\n",
" <td>1.210515</td>\n",
" <td>1.254799</td>\n",
" <td>1.283609</td>\n",
" <td>1.278957</td>\n",
" <td>1.281338</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>3.845182</td>\n",
" <td>2.248727</td>\n",
" <td>0.002374</td>\n",
" <td>1.190861e+10</td>\n",
" <td>31.641076</td>\n",
" <td>24.608927</td>\n",
" <td>30.429793</td>\n",
" <td>23.385138</td>\n",
" <td>23.912232</td>\n",
" <td>29.172582</td>\n",
" <td>40.302115</td>\n",
" <td>81.194499</td>\n",
" <td>63.676506</td>\n",
" <td>85.056834</td>\n",
" <td>21.260319</td>\n",
" <td>22.277059</td>\n",
" <td>19.309264</td>\n",
" <td>202.134651</td>\n",
" <td>39.325906</td>\n",
" <td>191.843329</td>\n",
" <td>18.135171</td>\n",
" <td>71.291083</td>\n",
" <td>0.013304</td>\n",
" <td>0.013805</td>\n",
" <td>0.016595</td>\n",
" <td>0.009999</td>\n",
" <td>0.010315</td>\n",
" <td>0.020539</td>\n",
" <td>0.013058</td>\n",
" <td>0.010051</td>\n",
" <td>0.012082</td>\n",
" <td>0.021262</td>\n",
" <td>0.021350</td>\n",
" <td>0.011327</td>\n",
" <td>0.021947</td>\n",
" <td>0.010004</td>\n",
" <td>0.012368</td>\n",
" <td>0.009532</td>\n",
" <td>0.012649</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>-178.621000</td>\n",
" <td>-183.613000</td>\n",
" <td>0.001459</td>\n",
" <td>2.849980e+10</td>\n",
" <td>22.224300</td>\n",
" <td>10.000000</td>\n",
" <td>36.000000</td>\n",
" <td>5.000000</td>\n",
" <td>6.000000</td>\n",
" <td>23.800000</td>\n",
" <td>22.000000</td>\n",
" <td>49.900000</td>\n",
" <td>79.500000</td>\n",
" <td>81.200000</td>\n",
" <td>5.000000</td>\n",
" <td>5.000000</td>\n",
" <td>18.000000</td>\n",
" <td>315.000000</td>\n",
" <td>36.000000</td>\n",
" <td>388.000000</td>\n",
" <td>8.000000</td>\n",
" <td>72.000000</td>\n",
" <td>1.257852</td>\n",
" <td>1.229891</td>\n",
" <td>1.233006</td>\n",
" <td>1.233093</td>\n",
" <td>1.233518</td>\n",
" <td>1.227379</td>\n",
" <td>1.222891</td>\n",
" <td>1.217619</td>\n",
" <td>1.170303</td>\n",
" <td>1.170303</td>\n",
" <td>1.170263</td>\n",
" <td>1.202691</td>\n",
" <td>1.170303</td>\n",
" <td>1.225539</td>\n",
" <td>1.250587</td>\n",
" <td>1.250421</td>\n",
" <td>1.250454</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>-173.773000</td>\n",
" <td>-179.189500</td>\n",
" <td>0.002360</td>\n",
" <td>4.545390e+10</td>\n",
" <td>37.899700</td>\n",
" <td>31.850000</td>\n",
" <td>90.300000</td>\n",
" <td>15.000000</td>\n",
" <td>15.000000</td>\n",
" <td>95.900000</td>\n",
" <td>139.150000</td>\n",
" <td>72.000000</td>\n",
" <td>236.050000</td>\n",
" <td>192.400000</td>\n",
" <td>16.200000</td>\n",
" <td>19.300000</td>\n",
" <td>43.950000</td>\n",
" <td>653.750000</td>\n",
" <td>100.000000</td>\n",
" <td>738.600000</td>\n",
" <td>20.000000</td>\n",
" <td>200.000000</td>\n",
" <td>1.271149</td>\n",
" <td>1.256458</td>\n",
" <td>1.259604</td>\n",
" <td>1.257003</td>\n",
" <td>1.259535</td>\n",
" <td>1.253919</td>\n",
" <td>1.248718</td>\n",
" <td>1.242595</td>\n",
" <td>1.197599</td>\n",
" <td>1.200548</td>\n",
" <td>1.199698</td>\n",
" <td>1.224819</td>\n",
" <td>1.196133</td>\n",
" <td>1.250353</td>\n",
" <td>1.276583</td>\n",
" <td>1.275834</td>\n",
" <td>1.273941</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>-170.027000</td>\n",
" <td>-177.815000</td>\n",
" <td>0.002539</td>\n",
" <td>5.236430e+10</td>\n",
" <td>53.955800</td>\n",
" <td>50.000000</td>\n",
" <td>100.000000</td>\n",
" <td>26.800000</td>\n",
" <td>47.000000</td>\n",
" <td>100.000000</td>\n",
" <td>150.000000</td>\n",
" <td>92.000000</td>\n",
" <td>250.000000</td>\n",
" <td>214.000000</td>\n",
" <td>31.000000</td>\n",
" <td>47.000000</td>\n",
" <td>50.000000</td>\n",
" <td>856.600000</td>\n",
" <td>138.800000</td>\n",
" <td>900.000000</td>\n",
" <td>23.100000</td>\n",
" <td>298.600000</td>\n",
" <td>1.282955</td>\n",
" <td>1.259500</td>\n",
" <td>1.264769</td>\n",
" <td>1.262476</td>\n",
" <td>1.262476</td>\n",
" <td>1.260105</td>\n",
" <td>1.252928</td>\n",
" <td>1.247948</td>\n",
" <td>1.204120</td>\n",
" <td>1.207111</td>\n",
" <td>1.205866</td>\n",
" <td>1.232829</td>\n",
" <td>1.204120</td>\n",
" <td>1.255273</td>\n",
" <td>1.282290</td>\n",
" <td>1.278754</td>\n",
" <td>1.278754</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>-168.358000</td>\n",
" <td>-176.220500</td>\n",
" <td>0.003013</td>\n",
" <td>6.194950e+10</td>\n",
" <td>75.028400</td>\n",
" <td>52.600000</td>\n",
" <td>120.350000</td>\n",
" <td>47.200000</td>\n",
" <td>60.400000</td>\n",
" <td>120.300000</td>\n",
" <td>170.950000</td>\n",
" <td>179.300000</td>\n",
" <td>276.500000</td>\n",
" <td>231.000000</td>\n",
" <td>47.300000</td>\n",
" <td>58.750000</td>\n",
" <td>61.000000</td>\n",
" <td>900.000000</td>\n",
" <td>167.500000</td>\n",
" <td>916.000000</td>\n",
" <td>43.800000</td>\n",
" <td>328.000000</td>\n",
" <td>1.288155</td>\n",
" <td>1.267622</td>\n",
" <td>1.282595</td>\n",
" <td>1.265576</td>\n",
" <td>1.268147</td>\n",
" <td>1.283516</td>\n",
" <td>1.265727</td>\n",
" <td>1.252484</td>\n",
" <td>1.210962</td>\n",
" <td>1.230286</td>\n",
" <td>1.229954</td>\n",
" <td>1.241935</td>\n",
" <td>1.227826</td>\n",
" <td>1.258132</td>\n",
" <td>1.297774</td>\n",
" <td>1.282561</td>\n",
" <td>1.292021</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>-161.516000</td>\n",
" <td>-170.334000</td>\n",
" <td>0.009902</td>\n",
" <td>9.755770e+10</td>\n",
" <td>184.775000</td>\n",
" <td>178.000000</td>\n",
" <td>199.900000</td>\n",
" <td>100.000000</td>\n",
" <td>99.900000</td>\n",
" <td>199.800000</td>\n",
" <td>278.000000</td>\n",
" <td>353.300000</td>\n",
" <td>428.800000</td>\n",
" <td>693.000000</td>\n",
" <td>99.600000</td>\n",
" <td>100.100000</td>\n",
" <td>121.300000</td>\n",
" <td>1360.000000</td>\n",
" <td>209.200000</td>\n",
" <td>1360.000000</td>\n",
" <td>86.300000</td>\n",
" <td>392.000000</td>\n",
" <td>1.311776</td>\n",
" <td>1.298346</td>\n",
" <td>1.300466</td>\n",
" <td>1.298409</td>\n",
" <td>1.298409</td>\n",
" <td>1.302097</td>\n",
" <td>1.280884</td>\n",
" <td>1.278472</td>\n",
" <td>1.235355</td>\n",
" <td>1.248242</td>\n",
" <td>1.247667</td>\n",
" <td>1.251609</td>\n",
" <td>1.253417</td>\n",
" <td>1.298283</td>\n",
" <td>1.305204</td>\n",
" <td>1.305204</td>\n",
" <td>1.305263</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" phasenoise phasenoise_15mA ... d16 d17\n",
"count 1755.000000 1755.000000 ... 1755.000000 1755.000000\n",
"mean -170.904159 -177.668607 ... 1.278957 1.281338\n",
"std 3.845182 2.248727 ... 0.009532 0.012649\n",
"min -178.621000 -183.613000 ... 1.250421 1.250454\n",
"25% -173.773000 -179.189500 ... 1.275834 1.273941\n",
"50% -170.027000 -177.815000 ... 1.278754 1.278754\n",
"75% -168.358000 -176.220500 ... 1.282561 1.292021\n",
"max -161.516000 -170.334000 ... 1.305204 1.305263\n",
"\n",
"[8 rows x 39 columns]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
2 months ago
]
},
{
"cell_type": "code",
2 months ago
"execution_count": 7,
"metadata": {
"id": "qBs0SZEek_Sh"
},
2 months ago
"outputs": [
{
"data": {
"text/plain": [
"phasenoise -0.022499\n",
"phasenoise_15mA -0.012657\n",
"current 0.649052\n",
"IR_max 0.220677\n",
"decay_time 0.504382\n",
"dtype: float64"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"## Coefficient of Correlation\n",
"df[df.columns[0:5]].std()/df[df.columns[0:5]].mean()"
2 months ago
]
},
{
"cell_type": "code",
2 months ago
"execution_count": 9,
"metadata": {
"id": "lnIsvKeLIwZY"
},
2 months ago
"outputs": [],
"source": [
"# Let us some functions to normalize, de-normalize, and to calculate errors\n",
"def normx(x):\n",
" return (x - train_statsX['mean']) / train_statsX['std']\n",
"def norm(y):\n",
" return (y - train_statsY['mean']) / train_statsY['std']\n",
"def denorm(y):\n",
" return (y* train_statsY['std'] + train_statsY['mean']) \n",
"def mean_aep(u1,u2): \n",
" return (round(100*(100*sum(abs((u2-u1)/u1))/len(u1)))/100)\n",
"def max_aep(u1,u2): \n",
" return (round(100*(100*max(abs((u2-u1)/u1))))/100) "
2 months ago
]
},
{
"cell_type": "code",
2 months ago
"execution_count": 10,
"metadata": {
"id": "nAXW1rSrkJon"
},
2 months ago
"outputs": [],
"source": [
"# ANN parameters\n",
"ac = 'relu' # activation function\n",
"nnno = 48 # number of neurons\n",
"dr_rate = 0.2 # dropout rate\n",
"EPOCHS = 400 # number of epocs\n",
"LR = 0.001 # learning rate"
2 months ago
]
},
{
"cell_type": "code",
2 months ago
"execution_count": 11,
"metadata": {
"id": "T9UuySubf9K9"
},
2 months ago
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n",
"I0000 00:00:1736168330.701104 7460 cuda_executor.cc:1001] could not open file to read NUMA node: /sys/bus/pci/devices/0000:01:00.0/numa_node\n",
"Your kernel may have been built without NUMA support.\n",
"2025-01-06 20:58:50.873425: W tensorflow/core/common_runtime/gpu/gpu_device.cc:2343] Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU. Follow the guide at https://www.tensorflow.org/install/gpu for how to download and setup the required libraries for your platform.\n",
"Skipping registering GPU devices...\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGwCAYAAABVdURTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABbs0lEQVR4nO3deXhU5cE28Hv2yWSZ7JOFkLBDBBJIIAZcsERQFJfaGlELxopvVfzUaKu4gGJrbFWKC69UK1Vf20JVXCqIQhRaMGyByGogQEiATFYy2WcyM+f742QGhiyEcGZOlvt3XXMlOXPOmeeZmWTuPMt5FIIgCCAiIiLqJ5RyF4CIiIhISgw3RERE1K8w3BAREVG/wnBDRERE/QrDDREREfUrDDdERETUrzDcEBERUb+ilrsAvuZ0OnH69GkEBgZCoVDIXRwiIiLqBkEQUF9fj5iYGCiVXbfNDLhwc/r0acTFxcldDCIiIuqB0tJSDBo0qMt9Bly4CQwMBCA+OUFBQTKXhoiIiLqjrq4OcXFx7s/xrgy4cOPqigoKCmK4ISIi6mO6M6SEA4qJiIioX2G4ISIion6F4YaIiIj6lQE35oaIiMibHA4HWltb5S5Gn6TVai84zbs7GG6IiIgkIAgCzGYzamtr5S5Kn6VUKjFkyBBotdpLOg/DDRERkQRcwSYyMhIGg4EXir1IrovslpWVYfDgwZf0/DHcEBERXSKHw+EONmFhYXIXp8+KiIjA6dOnYbfbodFoenwe2QcUL1++HAkJCdDr9UhLS8OOHTu63H/ZsmUYNWoU/Pz8EBcXh8ceewwtLS0+Ki0REVF7rjE2BoNB5pL0ba7uKIfDcUnnkTXcrF69GtnZ2Vi8eDF2796NpKQkzJw5ExUVFR3u/49//ANPPfUUFi9ejEOHDuG9997D6tWr8fTTT/u45ERERO2xK+rSSPX8yRpuli5divnz5yMrKwuJiYlYsWIFDAYDVq5c2eH+P/zwA6ZOnYo777wTCQkJmDFjBubMmXPB1h4iIiIaOGQLNzabDfn5+cjIyDhbGKUSGRkZyMvL6/CYKVOmID8/3x1mjh07hnXr1mHWrFmdPo7VakVdXZ3HjYiIiPov2cJNVVUVHA4HTCaTx3aTyQSz2dzhMXfeeSeWLFmCK664AhqNBsOGDcO0adO67JbKycmB0Wh037giOBERkXckJCRg2bJlchdD/gHFF2PTpk146aWX8L//+7/YvXs31qxZg7Vr1+LFF1/s9JiFCxfCYrG4b6WlpV4pm9XuwKnaZpRZmr1yfiIiIm+YNm0aHn30UUnOtXPnTtx///2SnOtSyDYVPDw8HCqVCuXl5R7by8vLERUV1eExzz33HH71q1/hvvvuAwCMGzcOjY2NuP/++/HMM890eFVDnU4HnU4nfQXOs/9UHW57+wfEhxmw+bfXeP3xiIiIfEEQBDgcDqjVF44MERERPijRhcnWcqPVapGSkoLc3Fz3NqfTidzcXKSnp3d4TFNTU7sAo1KpAIhPvpyUbQO8nTKXg4iI5CcIAppsdlluF/N5eM8992Dz5s14/fXXoVAooFAo8P7770OhUODrr79GSkoKdDodtmzZgqNHj+Lmm2+GyWRCQEAAJk2ahI0bN3qc7/xuKYVCgb/+9a+49dZbYTAYMGLECHz55ZdSPc2dkvUiftnZ2Zg3bx5SU1MxefJkLFu2DI2NjcjKygIAzJ07F7GxscjJyQEAzJ49G0uXLsWECROQlpaGoqIiPPfcc5g9e7Y75MhF2TZ9zemUtRhERNQLNLc6kLjoG1ke++CSmTBou/fx/vrrr+Pw4cMYO3YslixZAgA4cOAAAOCpp57Cq6++iqFDhyIkJASlpaWYNWsW/vCHP0Cn0+HDDz/E7NmzUVhYiMGDB3f6GC+88AL+9Kc/4ZVXXsGbb76Ju+66CydOnEBoaOilV7YTsoabzMxMVFZWYtGiRTCbzUhOTsb69evdg4xLSko8WmqeffZZKBQKPPvsszh16hQiIiIwe/Zs/OEPf5CrCm7ucMOWGyIi6iOMRiO0Wi0MBoN7SMhPP/0EAFiyZAmuvfZa976hoaFISkpy//ziiy/is88+w5dffokFCxZ0+hj33HMP5syZAwB46aWX8MYbb2DHjh247rrrvFElAL1g+YUFCxZ0+qRs2rTJ42e1Wo3Fixdj8eLFPijZxXFlMIYbIiLy06hwcMlM2R5bCqmpqR4/NzQ04Pnnn8fatWtRVlYGu92O5uZmlJSUdHme8ePHu7/39/dHUFBQpxfrlYrs4aa/ONtyI3NBiIhIdgqFottdQ72Vv7+/x89PPPEENmzYgFdffRXDhw+Hn58ffvGLX8Bms3V5nvPXiFIoFHB6eQxH337mexFXuJF7YDMREdHF0Gq13VrLaevWrbjnnntw6623AhBbcoqLi71cup7pU9e56c3OzpaStxxEREQXIyEhAdu3b0dxcTGqqqo6bVUZMWIE1qxZg4KCAvz444+48847vd4C01MMNxJxLfblYLohIqI+5IknnoBKpUJiYiIiIiI6HUOzdOlShISEYMqUKZg9ezZmzpyJiRMn+ri03cNuKYnwOjdERNQXjRw5st2ajvfcc0+7/RISEvDdd995bHvooYc8fj6/m6qjoRq1tbU9KufFYMuNRFRK15gbmQtCREQ0wDHcSITXuSEiIuodGG4komC3FBERUa/AcCMRLr9ARETUOzDcSITdUkRERL0Dw41EuPwCERFR78BwIxEuv0BERNQ7MNxIxBVuAC7BQEREJCeGG4koz2YbXqWYiIhIRgw3ElGc03LDbENERH3FtGnT8Oijj0p2vnvuuQe33HKLZOfrCYYbiaiU54YbphsiIiK5MNxI5NxuKWYbIiLqC+655x5s3rwZr7/+OhQKBRQKBYqLi7F//35cf/31CAgIgMlkwq9+9StUVVW5j/vkk08wbtw4+Pn5ISwsDBkZGWhsbMTzzz+PDz74AF988YX7fJs2bfJ5vbhwpkSUCrbcEBFRG0EAWpvkeWyN4exl8y/g9ddfx+HDhzF27FgsWbJEPFyjweTJk3Hffffhz3/+M5qbm/Hkk0/i9ttvx3fffYeysjLMmTMHf/rTn3Drrbeivr4e//3vfyEIAp544gkcOnQIdXV1+Nvf/gYACA0N9VpVO8NwI5Fz30cOhhsiooGttQl4KUaex376NKD179auRqMRWq0WBoMBUVFRAIDf//73mDBhAl566SX3fitXrkRcXBwOHz6MhoYG2O12/PznP0d8fDwAYNy4ce59/fz8YLVa3eeTA8ONRDymgnMJBiIi6qN+/PFHfP/99wgICGh339GjRzFjxgxMnz4d48aNw8yZMzFjxgz84he/QEhIiAyl7RjDjURU7JYiIiIXjUFsQZHrsS9BQ0MDZs+ejT/+8Y/t7ouOjoZKpcKGDRvwww8/4Ntvv8Wbb76JZ555Btu3b8eQIUMu6bGlwnAjkXO7pRhuiIgGOIWi211DctNqtXA4HO6fJ06ciE8//RQJCQlQqzuOCQqFAlOnTsXUqVOxaNEixMfH47PPPkN2dna788mBs6UkIo4KF7/ndW6IiKivSEhIwPbt21FcXIyqqio89NBDqKmpwZw5c7Bz504cPXoU33zzDbKysuBwOLB9+3a89NJL2LVrF0pKSrBmzRpUVlZizJgx7vPt3bsXhYWFqKqqQmtrq8/rxHAjIa4MTkREfc0TTzwBlUqFxMREREREwGazYevWrXA4HJgxYwbGjRuHRx99FMHBwVAqlQgKCsJ//vMfzJo1CyNHjsSzzz6L1157Dddffz0AYP78+Rg1ahRSU1MRERGBrVu3+rxO7JaSkFIBOMBwQ0REfcfIkSORl5fXbvuaNWs63H/MmDFYv359p+eLiIjAt99+K1n5eoItNxLiyuBERETyY7iRkDvcMN0QERHJhuFGQq4lGNgrRUREJB+GGwm5Wm54hWIiIiL5MNxI6OxUcIYbIqKBSODf/0si1fPHcCMhVVu/FN/cREQDi0ajAQA0Ncm0WGY/YbPZAAAqleqSzsOp4BLibCkiooFJpVIhODgYFRUVAACDw
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step \n",
"************ 0 ************\n",
"Mean Absolute Percentage Errors: LR, kNN, RF, ANN\n",
"0.38 0.4 0.19 0.16\n",
"Max Absolute Percentage Errors: LR, kNN, RF, ANN\n",
"1.66 3.32 1.46 1.05\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGwCAYAAABVdURTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABS90lEQVR4nO3deXwV5d338c+cNfu+QyDsi+ygGLBVawTR0mrvPlL0VqRVH622KrVVXHCt2EWrrah3ba363K3aurZFUUTRggiyKSACYUtYshGyLyc5Z54/TnIgEMI2yWT5vl+v8yKZMzPnunJC8s11/eYawzRNExEREZFuwmF3A0RERESspHAjIiIi3YrCjYiIiHQrCjciIiLSrSjciIiISLeicCMiIiLdisKNiIiIdCsuuxvQ0QKBAPv27SM6OhrDMOxujoiIiJwA0zSprKwkIyMDh6PtsZkeF2727dtHZmam3c0QERGRU5Cfn0/v3r3b3KfHhZvo6Ggg+MWJiYmxuTUiIiJyIioqKsjMzAz9Hm9Ljws3zVNRMTExCjciIiJdzImUlKigWERERLoVhRsRERHpVhRuREREpFvpcTU3IiIi7cnv99PQ0GB3M7okj8dz3Mu8T4TCjYiIiAVM06SgoICysjK7m9JlORwO+vXrh8fjOa3zKNyIiIhYoDnYpKSkEBERoYViT1LzIrv79++nT58+p/X1U7gRERE5TX6/PxRsEhMT7W5Ol5WcnMy+fftobGzE7Xaf8nlUUCwiInKammtsIiIibG5J19Y8HeX3+0/rPAo3IiIiFtFU1Omx6uuncCMiIiLdisKNiIiIdCsKNyIiImKJrKwsnnjiCbubYW+4+eSTT5g+fToZGRkYhsFbb711wscuX74cl8vFmDFj2q19J6O+0c+egzXsL6+1uykiIiIn7LzzzuPWW2+15Fyff/45119/vSXnOh22hpvq6mpGjx7NggULTuq4srIyrr76ai644IJ2atnJ27i3nHN+9REz/uczu5siIiJiGdM0aWxsPKF9k5OTO8UVY7aGm2nTpvHwww9z2WWXndRxN9xwA1dccQXZ2dnt1LKT11zhHTBNm1siIiJ2M02TGl+jLQ/zJH4PXXPNNXz88cc8+eSTGIaBYRi88MILGIbBu+++y/jx4/F6vSxbtozt27fz3e9+l9TUVKKiojjzzDP54IMPWpzvyGkpwzD405/+xGWXXUZERASDBg3in//8p1Vf5mPqcov4/eUvf2HHjh387//+Lw8//PBx96+vr6e+vj70eUVFRbu0y9EUbpRtRESktsHP8Hnv2fLaXz04lQjPif16f/LJJ9m6dSsjRozgwQcfBGDTpk0A3Hnnnfz2t7+lf//+xMfHk5+fz8UXX8wvf/lLvF4vL730EtOnT2fLli306dPnmK/xwAMP8Otf/5rf/OY3/OEPf+DKK69k9+7dJCQknH5nj6FLFRRv27aNO++8k//93//F5TqxN27+/PnExsaGHpmZme3SNkfTpfknk5hFRETsFBsbi8fjISIigrS0NNLS0nA6nQA8+OCDXHjhhQwYMICEhARGjx7N//2//5cRI0YwaNAgHnroIQYMGHDckZhrrrmGmTNnMnDgQB555BGqqqpYtWpVu/ary4zc+P1+rrjiCh544AEGDx58wsfNnTuXOXPmhD6vqKhol4DjCE1LWX5qERHpYsLdTr56cKptr22FCRMmtPi8qqqK+++/n4ULF7J//34aGxupra0lLy+vzfOMGjUq9HFkZCQxMTEUFRVZ0sZj6TLhprKyktWrV7Nu3TpuvvlmIHiTLdM0cblcvP/++3zrW9866jiv14vX6+2wdqrmRkREDMM44amhzioyMrLF57fffjuLFy/mt7/9LQMHDiQ8PJzvf//7+Hy+Ns9z5D2iDMMgEAhY3t7DdZmvfExMDBs2bGix7emnn+bDDz/ktddeo1+/fja1LChUc2NrK0RERE6Ox+M5oXs5LV++nGuuuSZ0EVBVVRW7du1q59adGlvDTVVVFbm5uaHPd+7cyfr160lISKBPnz7MnTuXvXv38tJLL+FwOBgxYkSL41NSUggLCztqux0cTdVLqrkREZGuJCsri5UrV7Jr1y6ioqKOOaoyaNAg3njjDaZPn45hGNx7773tPgJzqmwtKF69ejVjx45l7NixAMyZM4exY8cyb948APbv33/cubzOQjU3IiLSFd1+++04nU6GDx9OcnLyMX/vPv7448THxzNp0iSmT5/O1KlTGTduXAe39sQYZg8baqioqCA2Npby8nJiYmIsO29uUSU5j39CXISb9fOmWHZeERHp/Orq6ti5cyf9+vUjLCzM7uZ0WW19HU/m93eXuhS8c2saudHQjYiIiK0UbiwSWufG3maIiIj0eAo3FtEKxSIiIp2Dwo1FHLq3lIiISKegcGORpmyjcCMiImIzhRuLHAo39rZDRESkp1O4sUjztJQqikVEROylcGMR1dyIiIh0Dgo3FnGo5kZERKRTULiximpuRESkCzrvvPO49dZbLTvfNddcw6WXXmrZ+U6Fwo1FQjU36OaZIiIidlK4sUjLcGNjQ0RERE7QNddcw8cff8yTTz6JYRgYhsGuXbvYuHEj06ZNIyoqitTUVK666ipKSkpCx7322muMHDmS8PBwEhMTycnJobq6mvvvv58XX3yRt99+O3S+pUuXdni/XB3+it2U41C2IWCaODCOvbOIiHRvpgkNNfa8tjvi0Pokx/Hkk0+ydetWRowYwYMPPhg83O3mrLPO4tprr+V3v/sdtbW13HHHHVx++eV8+OGH7N+/n5kzZ/LrX/+ayy67jMrKSv7zn/9gmia33347mzdvpqKigr/85S8AJCQktFtXj0XhxiLGYd9IqrsREenhGmrgkQx7XvuufeCJPKFdY2Nj8Xg8REREkJaWBsDDDz/M2LFjeeSRR0L7Pf/882RmZrJ161aqqqpobGzke9/7Hn379gVg5MiRoX3Dw8Opr68Pnc8OCjcWMY4YuREREemKvvjiCz766COioqKOem779u1MmTKFCy64gJEjRzJ16lSmTJnC97//feLj421obesUbiziOMEhQBER6QHcEcERFLte+zRUVVUxffp0fvWrXx31XHp6Ok6nk8WLF/Ppp5/y/vvv84c//IG7776blStX0q9fv9N6baso3FjkyJobERHpwQzjhKeG7ObxePD7/aHPx40bx+uvv05WVhYuV+sxwTAMJk+ezOTJk5k3bx59+/blzTffZM6cOUedzw66WsoiDtXciIhIF5SVlcXKlSvZtWsXJSUl3HTTTZSWljJz5kw+//xztm/fznvvvcfs2bPx+/2sXLmSRx55hNWrV5OXl8cbb7xBcXExw4YNC53vyy+/ZMuWLZSUlNDQ0NDhfVK4sYhqbkREpCu6/fbbcTqdDB8+nOTkZHw+H8uXL8fv9zNlyhRGjhzJrbfeSlxcHA6Hg5iYGD755BMuvvhiBg8ezD333MNjjz3GtGnTALjuuusYMmQIEyZMIDk5meXLl3d4nzQtZRHjsEu/zYCNDRERETkJgwcPZsWKFUdtf+ONN1rdf9iwYSxatOiY50tOTub999+3rH2nQiM3Fjm85sbUrcFFRERso3BjEdXciIiIdA4KNxZRzY2IiEjnoHBjkZYrFCvciIiI2EXhxkLNdTfKNiIiPZOpXwCnxaqvn8KNhZrrbvS9LSLSs7jdbgBqamy6WWY34fP5AHA6nad1Hl0KbqFguDE1LSUi0sM4nU7i4uIoKioCICIiokW5ghxfIBCguLiYiIiIY66MfKIUbizU/H2scCMi0vM03wW7OeDIyXM4HPTp0+e0g6HCjYUM1dyIiPRYhmGQnp5OSkqKLbcc6A48Hg8Ox+lXzCjcWEg1NyIi4nQ6T7tmRE6PCoot1BxuNC0lIiJiH4UbC6nmRkRExH4KNxY6NHJjc0NERER6MIUbCx0qKFa6ERERsYvCjYVCBcU2t0NERKQnU7ixkEM1NyIiIrZTuLFQ86JDgYDNDREREenBbA03n3zyCdOnTycjIwPDMHjrrbfa3P+NN97gwgsvJDk5mZiYG
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step \n",
"************ 1 ************\n",
"Mean Absolute Percentage Errors: LR, kNN, RF, ANN\n",
"0.26 0.33 0.18 0.15\n",
"Max Absolute Percentage Errors: LR, kNN, RF, ANN\n",
"1.34 2.25 1.44 1.19\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step \n",
"************ 2 ************\n",
"Mean Absolute Percentage Errors: LR, kNN, RF, ANN\n",
"17.24 5.19 3.55 2.88\n",
"Max Absolute Percentage Errors: LR, kNN, RF, ANN\n",
"114.74 61.85 40.41 20.69\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAdIAAAGwCAYAAAAdXORnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABxy0lEQVR4nO3deXwTdf4/8FeSNkfT9KZNgQKVUw7l2pZSFMQu5VgQWEFYWc4fKHigFRERLVUQBVREBYQVFr6CRZRDBCqnoFCoQHE55JBbaNL7Sq80md8fNbHTTNIkk3aS9P18PHzsMp/J9JNXp/POZzKfGRHDMAwIIYQQ4hSx0B0ghBBCPBkVUkIIIYQHKqSEEEIID1RICSGEEB6okBJCCCE8UCElhBBCeKBCSgghhPDgI3QHPJXRaMT9+/ehUqkgEomE7g4hhBAHMAyDkpISNG/eHGIxvzElFVIn3b9/H1FRUUJ3gxBCCA93795Fy5YteW2DCqmTVCoVgJpfQkBAgMC9+YtGo8GGDRswZcoUqNVqobvjcSg/fig/fig/fhzJr7i4GFFRUeZjOR9USJ1kOp0bEBDgVoVULBZjxIgRaN68Ofz9/YXujseh/Pih/Pih/PhxJj9XfDUnonvtOqe4uBiBgYEoKipyq0JKCCGkfq48htNVu16mvLwcFy9eRHl5udBd8UiUHz+UHz+UHz9C5UeF1MsUFhbim2++QWFhodBd8UiUHz+UHz+UHz9C5UeFlBBCCOGBCikhhBDCg+CF9LPPPkObNm0gl8sRGxuLjIwMm+tv27YNnTp1glwuR7du3bB3715W+/bt2zFo0CCEhoZCJBLh3LlzFtuoqKjAc889h9DQUPj7++Of//wntFqtK98WIYSQJkLQQrp161YkJSUhOTkZZ8+excMPP4zExERkZ2dzrn/ixAmMHz8e06ZNQ2ZmJkaOHImRI0fiwoUL5nV0Oh369euH999/3+rPffnll7F7925s27YNR48exf379zF69GiXvz8h+Pj4QK1Ww8eHZjY5g/Ljh/Ljh/LjR6j8BJ3+Ehsbi7/97W/49NNPAdTcdi8qKgovvPAC5s2bZ7H+U089BZ1Oh++//968rE+fPujevTvWrFnDWvfWrVuIjo5GZmYmunfvbl5eVFSEZs2aYcuWLXjyyScBAJcvX8aDDz6I9PR09OnTx66+0/QXQgjxXK48hgv2saeqqgpnzpzB66+/bl4mFouRkJCA9PR0ztekp6cjKSmJtSwxMRE7d+60++eeOXMGer0eCQkJ5mWdOnVCq1atbBbSyspKVFZWmv9dXFwMoOZOGjqdzrxcLpcjODgY1dXVyMnJsdhOZGQkACA3Nxd6vZ7VFhQUBIVCAZ1OZ96+iVQqRWhoKIxGI+dp6PDwcEgkEuTn57P6CdTchcnf3x/l5eUWV7P5+PigWbNmAICsrCyL7YaFhcHX1xeFhYUWl5QrlUoEBASgsrIS+fn5rDaxWIyIiAgAgFarhdFoZLWHhIRAJpOhuLiYlR8AKBQKBAUFQa/XIzc316JPpgxzcnJQXV3NajNlWFpaipKSElabTCZDSEgIDAYD51mPiIgIiMVi5OXloaqqitUWEBAApVLJmaGvry/CwsIAcGfYrFkz+Pj4oKCgABUVFaw2f39/qFQqzgwlEgnCw8MBcGcYGhoKqVTKmaGfnx8CAwM5MxSJROa7vnBlGBwcDLlczpmhaf+2lqFarYZIJOLMMDAwEH5+figrK0NRURGrzbR/MwwDjUZjsV3T/s2VoWn/rqioQEFBAaut9v6t0WhQd9xg2r+LiopQVlbGajPt31VVVcjLy2O11d6/s7OzYTAYWO2m/bukpASlpaWsNjpG1HCHY4SrCFZIc3NzYTAYzEGaRERE4PLly5yv0Wg0nOtz/eFZo9FoIJVKERQU5NB2lixZgpSUFIvlGzZsgFwuN/+7W7duGD16NIqLi7F27VqL9ZOTkwEAu3btwh9//MFqGzVqFB566CFcvHgR+/btY7W1bdsWEyZMgF6v59zunDlzoFQqsWvXLty5c4fVNmjQIMTFxeHGjRv45ptvWG1qtRrPPPMMAOCLL76wOCDMnDkT4eHhOHbsGDIzM1lt8fHxSEhIQFZWFjZu3MhqU6lU5g89mzdvtjggT5o0CW3atEFGRgaOHz/OauvRowdGjBiBgoICi/cqkUiwYMECADXfh9f9nT355JPo0qULzp8/j/3797PaOnTogPHjx6OiooIzw3nz5iE/P5+zbciQIYiJicG1a9ewY8cOVlvLli0xbdo0AOB87QsvvICQkBAcOXIE58+fZ7X1798fAwYMwN27d7F582ZWW3BwMF588UUAwKZNmywO9FOnTkVUVBTS09Nx8uRJVlvv3r0xbNgw5ObmWvRJKpWaP8Bu27bN4mA+btw4dOzYEZmZmTh8+DCrrXPnzhgzZgx0Oh3ne502bRr++9//Ijw83OKgO3z4cPTs2ROXL1/G7t27WW2tW7fG5MmTYTAYOLf78ssvIyAgAAcPHsSlS5dYbQMHDsQjjzyC27dvIzU1ldXWrFkzzJo1C0DN32rd4j5jxgxERkbi559/xunTp1ltffr0QWJiIrRaLdavX89q8/Pzw6uvvgoASE1NtSjgTz/9NNq1a4czZ87g6NGjrLb6jhESiQTTpk3D3r17G+QY8cMPP+Dq1ausNm86RgB//V5tHSPq7kd8CHZq9/79+2jRogVOnDiBuLg48/K5c+fi6NGjOHXqlMVrpFIpNm7ciPHjx5uXrVq1CikpKRafwKyd2t2yZQumTJli8YksJiYGjz32mNXvVrlGpFFRUbhy5QrrXo1Cf9q8cuUKUlNTMXr0aPMoqal+2nRmRKrVarF27VpWfgCNSE3qG5EyDIN169Zh7NixFh9WaURaw9YxIjc3F9u3b8eMGTPg6+tLI1KOY4TByOBqbiVKGClCFT5o42+ARCyyyC8yMtLmMcJUgzz61G5YWBgkEonFL1yr1Vq92bBarXZofWvbqKqqQmFhIesPvb7tyGQyyGQyzu1x/RJ8fHzMB3wutQ/SdSmVSiiVSs42sVhsc7umvoSFhVmsp1AooFAorL7W1naDgoIsDowmMpnM5mvrnkWo219rO7Gvr6/N7Zr+uLn4+/tbvdemRCKxuV2AOz+AX4bBwcFW27wlQ9OBNigoyOrP9fPzg5+fH2ebSCRyOkO5XG7ztbb+vgMDAxEYGMjZJpVKbW7X9GGHi0qlsnpTdKGOESEhIVbb3P0YkXYhCym7f0NW0V8fpiID5Uge3hmDu1puv77921UEu2pXKpWiV69eOHTokHmZ0WjEoUOHWCPU2uLi4ljrA8CBAwesrs+lV69e8PX1ZW3nypUruHPnjkPbIYQQ0njSLmRh5pdnzUV04O8ZEBsN0BRVYOaXZ5F2wXK03FgEvcY6KSkJkyZNQu/evRETE4MVK1ZAp9NhypQpAICJEyeiRYsWWLJkCQBg9uzZ6N+/Pz744AMMGzYMqampOH36NOsceX5+Pu7cuYP79+8DqCmSQM2nUbVajcDAQEybNg1JSUkICQlBQEAAXnjhBcTFxdl9xS4hhBB+DEYGGTfzkV1SgXCVHDHRIeZTtFzrztt+HqYT87PSv8bcY5uwrWsCXh06GxCJkLL7ErZNfLDx3kBtjMA++eQTplWrVoxUKmViYmKYkydPmtv69+/PTJo0ibX+119/zXTo0IGRSqVMly5dmD179rDaN2zYwACw+C85Odm8Tnl5OTNr1iwmODiY8fPzY0aNGsVkZWU51O+ioiIGAFNUVOTwe25IVVVVjFarZaqqqoTuikei/Pih/PhpKvntO3+f6fPuQab1a9+b/+vz7kFm3/n7nOuvOHDFvN77j05kGIBhAOb9RyeytvHTZY3d+bnyGE6PUXMSzSMlhBDHmU7R1i08prHo6gk9Wd93GowMui38AWVVBvNIFACWPjoRq+LGsrbx0VPdMapHC7v6QY9RI1YVFhbiu+++o6dHOIny44fy48fb8zMYGaTsvmRRRAGYl6XsvgSD8a81Tl7Ps6uIAkB2Tp4g+VEh9TLl5eXIzMyk5xk6i
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step \n",
"************ 3 ************\n",
"Mean Absolute Percentage Errors: LR, kNN, RF, ANN\n",
"4.84 5.51 3.16 2.93\n",
"Max Absolute Percentage Errors: LR, kNN, RF, ANN\n",
"30.31 47.61 29.01 24.77\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[1m11/11\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 3ms/step \n",
"************ 4 ************\n",
"Mean Absolute Percentage Errors: LR, kNN, RF, ANN\n",
"10.0 11.53 6.99 5.02\n",
"Max Absolute Percentage Errors: LR, kNN, RF, ANN\n",
"99.5 61.48 49.85 56.26\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for var_index in np.arange(5):\n",
" X_Train, X_Test, Y_Train, Y_Test = train_test_split(df.iloc[0:-1,5:40],df.iloc[0:-1,var_index], test_size=0.2, random_state=55)\n",
"\n",
" train_statsY = Y_Train.describe().transpose()\n",
" train_statsX = X_Train.describe().transpose()\n",
" XX = normx(X_Train)\n",
" YY = norm(Y_Train)\n",
" xx = normx(X_Test)\n",
" yy = norm(Y_Test)\n",
" #\n",
" visible = Input(shape=(len(X_Train.keys()),))\n",
" hidden1 = Dense(nnno, activation=ac)(visible)\n",
" hidden1 = Dropout(dr_rate)(hidden1)\n",
" hidden2 = Dense(nnno, activation=ac)(hidden1)\n",
" hidden2 = Dropout(dr_rate)(hidden2)\n",
" mergeA = concatenate([hidden2, visible])\n",
" hiddenB = Dense(nnno, activation=ac)(mergeA)\n",
" hiddenB = Dropout(dr_rate)(hiddenB)\n",
" hidden3 = Dense(nnno, activation=ac)(hiddenB)\n",
" hidden3 = Dropout(dr_rate)(hidden3)\n",
" merge = concatenate([hidden3, visible])\n",
" hidden4 = Dense(nnno, activation=ac)(merge)\n",
" hidden4 = Dropout(dr_rate)(hidden4)\n",
" predicted_value = Dense(1)(hidden4)\n",
" modelANN = Model(inputs=visible, outputs=predicted_value)\n",
" #\n",
" opt = optimizers.Adamax(learning_rate=LR)\n",
" modelANN.compile(optimizer=opt, loss=['mse'])\n",
" history = modelANN.fit(XX, YY,epochs=EPOCHS, validation_data = (xx,yy), verbose=0)\n",
" # plot losses\n",
" plt.figure(var_index+10)\n",
" plt.plot(history.history['loss'])\n",
" plt.plot(history.history['val_loss'])\n",
" plt.ylabel('loss')\n",
" plt.xlabel('epoch')\n",
" plt.legend(['train', 'test'], loc='upper right')\n",
" plt.show()\n",
" #\n",
" test_predictions = modelANN.predict(xx)\n",
" u1 = denorm(yy).to_numpy()\n",
" u2 = denorm(pd.Series(np.squeeze(test_predictions)))\n",
" # plot truth vs. prediction\n",
" x1 = min(min(u1),min(u2))\n",
" x2 = max(max(u1),max(u2))\n",
" plt.figure(var_index)\n",
" plt.plot([x1,x2],[x1,x2],color='red')\n",
" plt.scatter(u1, u2)\n",
" plt.xlabel('Ground Truth')\n",
" plt.ylabel('Prediction')\n",
" plt.gca().set_aspect('equal', adjustable='box')\n",
" plt.grid(color='grey', linestyle='--', linewidth=1)\n",
" # Errors\n",
" error_ANN, error_ANN_max = mean_aep(u1,u2), max_aep(u1,u2) \n",
" # Save ANN Results\n",
" if var_index == 0:\n",
" np.savetxt(\"MUTC_training_loss.csv\", history.history['loss'], delimiter=\",\")\n",
" np.savetxt(\"MUTC_testing_loss.csv\", history.history['val_loss'], delimiter=\",\")\n",
" np.savetxt(\"MUTC_phasenoise_truth.csv\", u1, delimiter=\",\")\n",
" np.savetxt(\"MUTC_phasenoise_predictions.csv\", u2, delimiter=\",\")\n",
" ## LINEAR REGRESSION\n",
" modelLR = LinearRegression()\n",
" modelLR.fit(XX, YY)\n",
" yhat = modelLR.predict(xx)\n",
" u2 = denorm(pd.Series(np.squeeze(yhat)))\n",
" # calculate errors\n",
" error_LR, error_LR_max = mean_aep(u1,u2), max_aep(u1,u2)\n",
" ## k-Nearest Neighbors\n",
" modelkNN = KNeighborsRegressor()\n",
" modelkNN.fit(XX, YY)\n",
" yhat = modelkNN.predict(xx)\n",
" u2 = denorm(pd.Series(np.squeeze(yhat)))\n",
" # calculate errors\n",
" error_kNN, error_kNN_max = mean_aep(u1,u2), max_aep(u1,u2)\n",
" ## RANDOM FOREST \n",
" modelRF = RandomForestRegressor()\n",
" modelRF.fit(XX, YY)\n",
" yhat = modelRF.predict(xx)\n",
" u2 = denorm(pd.Series(np.squeeze(yhat)))\n",
" # calculate errors\n",
" error_RF, error_RF_max = mean_aep(u1,u2), max_aep(u1,u2)\n",
" # PRINT ERRORS\n",
" print('************',var_index,'************')\n",
" print('Mean Absolute Percentage Errors: LR, kNN, RF, ANN')\n",
" print(error_LR, error_kNN, error_RF, error_ANN)\n",
" print('Max Absolute Percentage Errors: LR, kNN, RF, ANN')\n",
" print(error_LR_max, error_kNN_max, error_RF_max, error_ANN_max)\n",
" backend.clear_session()"
2 months ago
]
},
{
"cell_type": "code",
2 months ago
"execution_count": null,
"metadata": {
"id": "FFtnWBnMmbAu"
},
2 months ago
"outputs": [],
"source": []
}
2 months ago
],
"metadata": {
"accelerator": "GPU",
"colab": {
"collapsed_sections": [],
"name": "MUTC1750_Predict_Metrics.ipynb",
"private_outputs": true,
"provenance": []
},
"kernelspec": {
"display_name": "adept",
"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.12.3"
}
},
"nbformat": 4,
"nbformat_minor": 0
}