diff --git a/Experiments/.ipynb_checkpoints/MQ3_Regression-checkpoint.ipynb b/Experiments/.ipynb_checkpoints/MQ3_Regression-checkpoint.ipynb
index 94b706c..3375f49 100644
--- a/Experiments/.ipynb_checkpoints/MQ3_Regression-checkpoint.ipynb
+++ b/Experiments/.ipynb_checkpoints/MQ3_Regression-checkpoint.ipynb
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": 70,
"metadata": {},
"outputs": [
{
@@ -10,29 +10,22 @@
"output_type": "stream",
"text": [
"Requirement already satisfied: pandas in c:\\programdata\\anaconda3\\lib\\site-packages (0.24.2)\n",
- "Requirement already satisfied: numpy>=1.12.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (1.16.2)\n",
"Requirement already satisfied: pytz>=2011k in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (2018.9)\n",
"Requirement already satisfied: python-dateutil>=2.5.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (2.8.0)\n",
+ "Requirement already satisfied: numpy>=1.12.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (1.16.2)\n",
"Requirement already satisfied: six>=1.5 in c:\\programdata\\anaconda3\\lib\\site-packages (from python-dateutil>=2.5.0->pandas) (1.12.0)\n",
"Requirement already satisfied: xlrd in c:\\programdata\\anaconda3\\lib\\site-packages (1.2.0)\n",
"Requirement already satisfied: sklearn in c:\\programdata\\anaconda3\\lib\\site-packages (0.0)\n",
- "Requirement already satisfied: scikit-learn in c:\\programdata\\anaconda3\\lib\\site-packages (from sklearn) (0.20.3)\n",
- "Requirement already satisfied: scipy>=0.13.3 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.2.1)\n",
- "Requirement already satisfied: numpy>=1.8.2 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.16.2)\n",
- "Collecting imblearn\n",
- " Using cached https://files.pythonhosted.org/packages/81/a7/4179e6ebfd654bd0eac0b9c06125b8b4c96a9d0a8ff9e9507eb2a26d2d7e/imblearn-0.0-py2.py3-none-any.whl\n",
- "Collecting imbalanced-learn (from imblearn)\n",
- " Using cached https://files.pythonhosted.org/packages/e6/62/08c14224a7e242df2cef7b312d2ef821c3931ec9b015ff93bb52ec8a10a3/imbalanced_learn-0.5.0-py3-none-any.whl\n",
- "Requirement already satisfied: joblib>=0.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (0.13.2)\n",
- "Requirement already satisfied: numpy>=1.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (1.16.2)\n",
- "Collecting scikit-learn>=0.21 (from imbalanced-learn->imblearn)\n",
- " Using cached https://files.pythonhosted.org/packages/75/14/fde90de4fc6722303ddbc183ec253c288dae8c7e4eb5a069ac49f14c9a0f/scikit_learn-0.21.2-cp37-cp37m-win_amd64.whl\n",
+ "Requirement already satisfied: scikit-learn in c:\\programdata\\anaconda3\\lib\\site-packages (from sklearn) (0.21.2)\n",
+ "Requirement already satisfied: joblib>=0.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (0.13.2)\n",
+ "Requirement already satisfied: numpy>=1.11.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.16.2)\n",
+ "Requirement already satisfied: scipy>=0.17.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.2.1)\n",
+ "Requirement already satisfied: imblearn in c:\\programdata\\anaconda3\\lib\\site-packages (0.0)\n",
+ "Requirement already satisfied: imbalanced-learn in c:\\programdata\\anaconda3\\lib\\site-packages (from imblearn) (0.5.0)\n",
"Requirement already satisfied: scipy>=0.17 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (1.2.1)\n",
- "Installing collected packages: scikit-learn, imbalanced-learn, imblearn\n",
- " Found existing installation: scikit-learn 0.20.3\n",
- " Uninstalling scikit-learn-0.20.3:\n",
- " Successfully uninstalled scikit-learn-0.20.3\n",
- "Successfully installed imbalanced-learn-0.5.0 imblearn-0.0 scikit-learn-0.21.2\n"
+ "Requirement already satisfied: scikit-learn>=0.21 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (0.21.2)\n",
+ "Requirement already satisfied: numpy>=1.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (1.16.2)\n",
+ "Requirement already satisfied: joblib>=0.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (0.13.2)\n"
]
}
],
@@ -45,7 +38,7 @@
},
{
"cell_type": "code",
- "execution_count": 32,
+ "execution_count": 71,
"metadata": {},
"outputs": [],
"source": [
@@ -67,7 +60,7 @@
},
{
"cell_type": "code",
- "execution_count": 33,
+ "execution_count": 72,
"metadata": {},
"outputs": [
{
@@ -105,7 +98,7 @@
},
{
"cell_type": "code",
- "execution_count": 38,
+ "execution_count": 73,
"metadata": {},
"outputs": [],
"source": [
@@ -120,7 +113,7 @@
},
{
"cell_type": "code",
- "execution_count": 39,
+ "execution_count": 74,
"metadata": {},
"outputs": [],
"source": [
@@ -131,7 +124,7 @@
},
{
"cell_type": "code",
- "execution_count": 40,
+ "execution_count": 75,
"metadata": {},
"outputs": [],
"source": [
@@ -145,7 +138,7 @@
},
{
"cell_type": "code",
- "execution_count": 41,
+ "execution_count": 76,
"metadata": {
"scrolled": false
},
@@ -193,7 +186,7 @@
},
{
"cell_type": "code",
- "execution_count": 43,
+ "execution_count": 77,
"metadata": {},
"outputs": [],
"source": [
@@ -212,7 +205,7 @@
},
{
"cell_type": "code",
- "execution_count": 67,
+ "execution_count": 78,
"metadata": {},
"outputs": [],
"source": [
@@ -231,7 +224,7 @@
},
{
"cell_type": "code",
- "execution_count": 45,
+ "execution_count": 79,
"metadata": {},
"outputs": [],
"source": [
@@ -250,7 +243,7 @@
},
{
"cell_type": "code",
- "execution_count": 46,
+ "execution_count": 80,
"metadata": {},
"outputs": [],
"source": [
@@ -269,7 +262,7 @@
},
{
"cell_type": "code",
- "execution_count": 62,
+ "execution_count": 81,
"metadata": {},
"outputs": [],
"source": [
@@ -288,7 +281,7 @@
},
{
"cell_type": "code",
- "execution_count": 64,
+ "execution_count": 82,
"metadata": {},
"outputs": [],
"source": [
@@ -307,7 +300,7 @@
},
{
"cell_type": "code",
- "execution_count": 68,
+ "execution_count": 83,
"metadata": {},
"outputs": [
{
@@ -347,10 +340,10 @@
" \r\n",
" \r\n",
+ "\" id=\"md0e3683457\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
@@ -408,7 +401,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -423,7 +416,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -437,7 +430,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
@@ -445,262 +438,262 @@
" \r\n",
" \r\n",
+ "\" id=\"md63d1a0a53\" style=\"stroke:#000000;stroke-width:0.6;\"/>\r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -955,10 +948,10 @@
" \r\n",
" \r\n",
+ "\" id=\"mc1bcec9881\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -973,7 +966,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -988,7 +981,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -1028,7 +1021,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
@@ -1036,286 +1029,286 @@
" \r\n",
" \r\n",
+ "\" id=\"mc49a650fd5\" style=\"stroke:#000000;stroke-width:0.6;\"/>\r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -1397,7 +1390,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ "\" id=\"meebf1fc7a9\" style=\"stroke:#1f77b4;\"/>\r\n",
" \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ "\" id=\"m4f70cb6133\" style=\"stroke:#ff7f0e;\"/>\r\n",
" \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ "\" id=\"m33cbaacdb3\" style=\"stroke:#2ca02c;\"/>\r\n",
" \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ "\" id=\"mf17cc4d4af\" style=\"stroke:#d62728;\"/>\r\n",
" \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ "\" id=\"me809331671\" style=\"stroke:#9467bd;\"/>\r\n",
" \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ "\" id=\"m55067d34b2\" style=\"stroke:#8c564b;\"/>\r\n",
" \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -1769,7 +1762,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -1832,7 +1825,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -1897,7 +1890,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -1948,7 +1941,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -1985,7 +1978,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -2038,7 +2031,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -2273,7 +2266,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
diff --git a/Experiments/.ipynb_checkpoints/MQ4_Regression-checkpoint.ipynb b/Experiments/.ipynb_checkpoints/MQ4_Regression-checkpoint.ipynb
new file mode 100644
index 0000000..5fcf942
--- /dev/null
+++ b/Experiments/.ipynb_checkpoints/MQ4_Regression-checkpoint.ipynb
@@ -0,0 +1,2010 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Requirement already satisfied: pandas in c:\\programdata\\anaconda3\\lib\\site-packages (0.24.2)\n",
+ "Requirement already satisfied: pytz>=2011k in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (2018.9)\n",
+ "Requirement already satisfied: numpy>=1.12.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (1.16.2)\n",
+ "Requirement already satisfied: python-dateutil>=2.5.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (2.8.0)\n",
+ "Requirement already satisfied: six>=1.5 in c:\\programdata\\anaconda3\\lib\\site-packages (from python-dateutil>=2.5.0->pandas) (1.12.0)\n",
+ "Requirement already satisfied: xlrd in c:\\programdata\\anaconda3\\lib\\site-packages (1.2.0)\n",
+ "Requirement already satisfied: sklearn in c:\\programdata\\anaconda3\\lib\\site-packages (0.0)\n",
+ "Requirement already satisfied: scikit-learn in c:\\programdata\\anaconda3\\lib\\site-packages (from sklearn) (0.21.2)\n",
+ "Requirement already satisfied: joblib>=0.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (0.13.2)\n",
+ "Requirement already satisfied: numpy>=1.11.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.16.2)\n",
+ "Requirement already satisfied: scipy>=0.17.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.2.1)\n",
+ "Requirement already satisfied: imblearn in c:\\programdata\\anaconda3\\lib\\site-packages (0.0)\n",
+ "Requirement already satisfied: imbalanced-learn in c:\\programdata\\anaconda3\\lib\\site-packages (from imblearn) (0.5.0)\n",
+ "Requirement already satisfied: scikit-learn>=0.21 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (0.21.2)\n",
+ "Requirement already satisfied: joblib>=0.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (0.13.2)\n",
+ "Requirement already satisfied: scipy>=0.17 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (1.2.1)\n",
+ "Requirement already satisfied: numpy>=1.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (1.16.2)\n"
+ ]
+ }
+ ],
+ "source": [
+ "!pip install pandas\n",
+ "!pip install xlrd\n",
+ "!pip install sklearn\n",
+ "!pip install imblearn"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import xlrd\n",
+ "book = xlrd.open_workbook(\"Datasheets info.xlsx\")\n",
+ "sheetMQ2 = book.sheet_by_name(\"MQ2 - Pololulu\")\n",
+ "sheetMQ3 = book.sheet_by_name(\"MQ3 - Sparkfun\")\n",
+ "sheetMQ4 = book.sheet_by_name(\"MQ4 - Sparkfun\")\n",
+ "sheetMQ5 = book.sheet_by_name(\"MQ5 - Sparkfun\")\n",
+ "sheetMQ6 = book.sheet_by_name(\"MQ6 - Sparkfun\")\n",
+ "sheetMQ7 = book.sheet_by_name(\"MQ7 - Sparkfun\")\n",
+ "sheetMQ8 = book.sheet_by_name(\"MQ8 - Sparkfun\")\n",
+ "sheetMQ9 = book.sheet_by_name(\"MQ9 - Haoyuelectronics\")\n",
+ "sheetMQ131 = book.sheet_by_name(\"MQ131- Sensorsportal\")\n",
+ "sheetMQ135 = book.sheet_by_name(\"MQ135 - HANWEI\")\n",
+ "sheetMQ303A = book.sheet_by_name(\"MQ303A - HANWEI\")\n",
+ "sheetMQ309A = book.sheet_by_name(\"MQ309A - HANWEI\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0.1 \t \t \t \t \n",
+ "0.2 \t \t \t \t \n",
+ "0.3 \t \t \t \t \n",
+ "0.4 \t \t \t \t \n",
+ "0.5 \t \t \t \t \n",
+ "0.6 \t \t \t \t \n",
+ "0.7 \t \t \t \t \n",
+ "0.8 \t \t \t \t \n",
+ "0.9 \t 5000.0 \t \t \t \n",
+ "1.0 \t \t 1000.0 \t \t \n",
+ "2.0 \t 1000.0 \t 200.0 \t \t \n",
+ "3.0 \t 200.0 \t \t 1000.0 \t 5000.0\n",
+ "4.0 \t \t \t 200.0 \t 200.0\n",
+ "5.0 \t \t 4000.0 \t \t \n",
+ "6.0 \t \t \t \t \n",
+ "7.0 \t \t \t \t \n",
+ "8.0 \t \t \t \t \n",
+ "9.0 \t \t \t \t \n",
+ "10.0 \t \t \t \t \n"
+ ]
+ }
+ ],
+ "source": [
+ "for row_index in range(1,20): #reading first columns\n",
+ " RsR0, CH4, CO, H2, Alcohol = sheetMQ4.row_values(row_index, start_colx=0, end_colx=5)\n",
+ " print(RsR0, \"\t\", CH4, \"\t\", CO, \"\t\", H2, \"\t\", Alcohol)\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "x_MQ4 = sheetMQ3.col_values(0)[2:]\n",
+ "MQ4_CH4 = sheetMQ3.col_values(1)[2:]\n",
+ "MQ4_CO = sheetMQ3.col_values(2)[2:]\n",
+ "MQ4_H2 = sheetMQ3.col_values(3)[2:]\n",
+ "MQ4_Alcohol = sheetMQ3.col_values(4)[2:]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def zero_to_nan(values):\n",
+ " \"\"\"Replace every 0 with 'nan' and return a copy.\"\"\"\n",
+ " return [float('nan') if x==0 else x for x in values]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "MQ4_CH4 =zero_to_nan(MQ4_CH4)\n",
+ "MQ4_CO =zero_to_nan(MQ4_CO)\n",
+ "MQ4_H2 =zero_to_nan(MQ4_H2)\n",
+ "MQ4_Alcohol =zero_to_nan(MQ4_Alcohol)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {
+ "scrolled": false
+ },
+ "outputs": [],
+ "source": [
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "from sklearn.datasets import load_iris\n",
+ "#from sklearn.cross_validation import train_test_split\n",
+ "from sklearn.tree import DecisionTreeClassifier\n",
+ "from sklearn import datasets\n",
+ "from sklearn import linear_model\n",
+ "\n",
+ "dataCH4 = {'RsRo': x_MQ4, 'CH4': MQ4_CH4}\n",
+ "dataCO = {'RsRo': x_MQ4, 'CO': MQ4_CO}\n",
+ "dataH2 = {'RsRo': x_MQ4, 'H2': MQ4_H2}\n",
+ "dataAlcohol = {'RsRo': x_MQ4, 'Alcohol': MQ4_Alcohol}\n",
+ "\n",
+ "dfMQ4_CH4 = pd.DataFrame(dataCH4)\n",
+ "dfMQ4_CO = pd.DataFrame(dataCO)\n",
+ "dfMQ4_H2 = pd.DataFrame(dataH2)\n",
+ "dfMQ4_Alcohol = pd.DataFrame(dataAlcohol)\n",
+ "\n",
+ "dfMQ4_CH4['CH4'] = pd.to_numeric(dfMQ4_CH4['CH4'])\n",
+ "dfMQ4_CO['CO'] = pd.to_numeric(dfMQ4_CO['CO'])\n",
+ "dfMQ4_H2['H2'] = pd.to_numeric(dfMQ4_H2['H2'])\n",
+ "dfMQ4_Alcohol['Alcohol'] = pd.to_numeric(dfMQ4_Alcohol['Alcohol'])\n",
+ "\n",
+ "dfMQ4_CH4['CH4'] = dfMQ4_CH4['CH4'].replace('',None, regex=True)\n",
+ "dfMQ4_CO['CO'] = dfMQ4_CO['CO'].replace('',None, regex=True)\n",
+ "dfMQ4_H2['H2'] = dfMQ4_H2['H2'].replace('',None, regex=True)\n",
+ "dfMQ4_Alcohol['Alcohol'] = dfMQ4_Alcohol['Alcohol'].replace('',None, regex=True)\n",
+ "\n",
+ "#Global X_Predict variable\n",
+ "X_Predict = dfMQ4_Alcohol.RsRo.apply(lambda x: [x]).tolist()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#Model and train CH4\n",
+ "dataset2TrainCH4 = dfMQ4_CH4.copy()\n",
+ "dataset2TrainCH4.dropna(inplace=True)\n",
+ "X_trainCH4 = dataset2TrainCH4.RsRo.apply(lambda x: [x]).tolist()\n",
+ "y_trainCH4 = dataset2TrainCH4['CH4'].tolist()\n",
+ "model = linear_model.Lasso(alpha=0.1)\n",
+ "model.fit(X_trainCH4, y_trainCH4)\n",
+ "#Predict\n",
+ "CH4_Predicted = model.predict(X_Predict)\n",
+ "#save into MQ2\n",
+ "MQ4_CH4 = CH4_Predicted\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#Model and train CO\n",
+ "dataset2TrainCO = dfMQ4_CO.copy()\n",
+ "dataset2TrainCO.dropna(inplace=True)\n",
+ "X_trainCO = dataset2TrainCO.RsRo.apply(lambda x: [x]).tolist()\n",
+ "y_trainCO = dataset2TrainCO['CO'].tolist()\n",
+ "model = linear_model.Lasso(alpha=0.1)\n",
+ "model.fit(X_trainCO, y_trainCO)\n",
+ "#Predict\n",
+ "CO_Predicted = model.predict(X_Predict)\n",
+ "#save into MQ2\n",
+ "MQ4_CO = CO_Predicted"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#Model and train H2\n",
+ "dataset2TrainH2 = dfMQ4_H2.copy()\n",
+ "dataset2TrainH2.dropna(inplace=True)\n",
+ "X_trainH2 = dataset2TrainH2.RsRo.apply(lambda x: [x]).tolist()\n",
+ "y_trainH2 = dataset2TrainH2['H2'].tolist()\n",
+ "model = linear_model.Lasso(alpha=0.1)\n",
+ "model.fit(X_trainH2, y_trainH2)\n",
+ "#Predict\n",
+ "H2_Predicted = model.predict(X_Predict)\n",
+ "#save into MQ2\n",
+ "MQ4_H2 = H2_Predicted"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#Model and train Alcohol\n",
+ "dataset2TrainAlcohol = dfMQ4_Alcohol.copy()\n",
+ "dataset2TrainAlcohol.dropna(inplace=True)\n",
+ "X_trainAlcohol = dataset2TrainAlcohol.RsRo.apply(lambda x: [x]).tolist()\n",
+ "y_trainAlcohol = dataset2TrainAlcohol['Alcohol'].tolist()\n",
+ "model = linear_model.Lasso(alpha=0.1)\n",
+ "model.fit(X_trainAlcohol, y_trainAlcohol)\n",
+ "#Predict\n",
+ "Alcohol_Predicted = model.predict(X_Predict)\n",
+ "#save into MQ2\n",
+ "MQ4_Alcohol = Alcohol_Predicted"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\r\n",
+ "\r\n",
+ "\r\n",
+ "\r\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "%config InlineBackend.figure_formats = ['svg']\n",
+ "%matplotlib inline\n",
+ "import matplotlib.pyplot as plt\n",
+ "import matplotlib.lines as mlines\n",
+ "import matplotlib.transforms as mtransforms\n",
+ "\n",
+ "fig, ax = plt.subplots()\n",
+ "\n",
+ "fig.set_size_inches(9, 5.5, forward=True)\n",
+ "fig.set_dpi(200)\n",
+ "\n",
+ "# only these two lines are calibration curves\n",
+ "plt.plot(MQ4_CH4, x_MQ4, marker='o', linewidth=1, label='CH4')\n",
+ "plt.plot(MQ4_CO, x_MQ4, marker='o', linewidth=1, label='CO')\n",
+ "plt.plot(MQ4_H2, x_MQ4, marker='o', linewidth=1, label='H2')\n",
+ "plt.plot(MQ4_Alcohol, x_MQ4, marker='o', linewidth=1, label='Alcohol')\n",
+ "\n",
+ "# reference line, legends, and axis labels\n",
+ "#line = mlines.Line2D([0, 1], [0, 1], color='black')\n",
+ "#transform = ax.transAxes\n",
+ "#line.set_transform(transform)\n",
+ "#ax.add_line(line)\n",
+ "plt.yscale('log')\n",
+ "plt.xscale('log')\n",
+ "plt.legend()\n",
+ "\n",
+ "plt.grid(b=True, which='minor', color='lightgrey', linestyle='--')\n",
+ "\n",
+ "fig.suptitle('Calibration plot for MQ-4 data')\n",
+ "ax.set_xlabel('PPM Concentration')\n",
+ "ax.set_ylabel('Rs/Ro')\n",
+ "\n",
+ "\n",
+ "#Save image\n",
+ "plt.savefig('MQ4.svg', format = 'svg', dpi = 1200)\n",
+ "plt.savefig('MQ4.png')\n",
+ "plt.savefig('MQ4.eps', format = 'eps', dpi = 1200)"
+ ]
+ },
+ {
+ "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.3"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/Experiments/MQ3.eps b/Experiments/MQ3.eps
index 83f9428..f691d65 100644
--- a/Experiments/MQ3.eps
+++ b/Experiments/MQ3.eps
@@ -1,7 +1,7 @@
%!PS-Adobe-3.0 EPSF-3.0
%%Title: MQ3.eps
%%Creator: matplotlib version 3.0.3, http://matplotlib.org/
-%%CreationDate: Mon Jul 1 21:44:55 2019
+%%CreationDate: Mon Jul 1 22:07:09 2019
%%Orientation: portrait
%%BoundingBox: -18 198 630 594
%%EndComments
diff --git a/Experiments/MQ3.svg b/Experiments/MQ3.svg
index a7673af..97681d7 100644
--- a/Experiments/MQ3.svg
+++ b/Experiments/MQ3.svg
@@ -32,10 +32,10 @@ z
+" id="ma8165da9da" style="stroke:#000000;stroke-width:0.8;"/>
-
+
@@ -93,7 +93,7 @@ z
-
+
@@ -108,7 +108,7 @@ z
-
+
@@ -122,7 +122,7 @@ z
-
@@ -130,262 +130,262 @@ L 80.767292 47.52
+" id="m53867a3613" style="stroke:#000000;stroke-width:0.6;"/>
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
@@ -640,10 +640,10 @@ z
+" id="m90588ac6bb" style="stroke:#000000;stroke-width:0.8;"/>
-
+
@@ -658,7 +658,7 @@ L -3.5 0
-
+
@@ -673,7 +673,7 @@ L -3.5 0
-
+
@@ -713,7 +713,7 @@ z
-
@@ -721,286 +721,286 @@ L 583.2 332.91
+" id="m39df2a3d4b" style="stroke:#000000;stroke-width:0.6;"/>
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
@@ -1082,7 +1082,7 @@ z
-
+" id="m59b2da56e4" style="stroke:#1f77b4;"/>
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+" id="mf35dbef7f7" style="stroke:#ff7f0e;"/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+" id="m747d1af1aa" style="stroke:#2ca02c;"/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+" id="ma727f64ea5" style="stroke:#d62728;"/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+" id="m74ee734d67" style="stroke:#9467bd;"/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+" id="mf2c7963712" style="stroke:#8c564b;"/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1454,7 +1454,7 @@ L 110 258.529688
-
+
@@ -1517,7 +1517,7 @@ L 110 273.207813
-
+
@@ -1582,7 +1582,7 @@ L 110 287.885938
-
+
@@ -1633,7 +1633,7 @@ L 110 302.564063
-
+
@@ -1670,7 +1670,7 @@ L 110 317.242188
-
+
@@ -1723,7 +1723,7 @@ L 110 331.920313
-
+
@@ -1958,7 +1958,7 @@ z
-
+
diff --git a/Experiments/MQ3_Regression.ipynb b/Experiments/MQ3_Regression.ipynb
index 94b706c..3375f49 100644
--- a/Experiments/MQ3_Regression.ipynb
+++ b/Experiments/MQ3_Regression.ipynb
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": 70,
"metadata": {},
"outputs": [
{
@@ -10,29 +10,22 @@
"output_type": "stream",
"text": [
"Requirement already satisfied: pandas in c:\\programdata\\anaconda3\\lib\\site-packages (0.24.2)\n",
- "Requirement already satisfied: numpy>=1.12.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (1.16.2)\n",
"Requirement already satisfied: pytz>=2011k in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (2018.9)\n",
"Requirement already satisfied: python-dateutil>=2.5.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (2.8.0)\n",
+ "Requirement already satisfied: numpy>=1.12.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (1.16.2)\n",
"Requirement already satisfied: six>=1.5 in c:\\programdata\\anaconda3\\lib\\site-packages (from python-dateutil>=2.5.0->pandas) (1.12.0)\n",
"Requirement already satisfied: xlrd in c:\\programdata\\anaconda3\\lib\\site-packages (1.2.0)\n",
"Requirement already satisfied: sklearn in c:\\programdata\\anaconda3\\lib\\site-packages (0.0)\n",
- "Requirement already satisfied: scikit-learn in c:\\programdata\\anaconda3\\lib\\site-packages (from sklearn) (0.20.3)\n",
- "Requirement already satisfied: scipy>=0.13.3 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.2.1)\n",
- "Requirement already satisfied: numpy>=1.8.2 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.16.2)\n",
- "Collecting imblearn\n",
- " Using cached https://files.pythonhosted.org/packages/81/a7/4179e6ebfd654bd0eac0b9c06125b8b4c96a9d0a8ff9e9507eb2a26d2d7e/imblearn-0.0-py2.py3-none-any.whl\n",
- "Collecting imbalanced-learn (from imblearn)\n",
- " Using cached https://files.pythonhosted.org/packages/e6/62/08c14224a7e242df2cef7b312d2ef821c3931ec9b015ff93bb52ec8a10a3/imbalanced_learn-0.5.0-py3-none-any.whl\n",
- "Requirement already satisfied: joblib>=0.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (0.13.2)\n",
- "Requirement already satisfied: numpy>=1.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (1.16.2)\n",
- "Collecting scikit-learn>=0.21 (from imbalanced-learn->imblearn)\n",
- " Using cached https://files.pythonhosted.org/packages/75/14/fde90de4fc6722303ddbc183ec253c288dae8c7e4eb5a069ac49f14c9a0f/scikit_learn-0.21.2-cp37-cp37m-win_amd64.whl\n",
+ "Requirement already satisfied: scikit-learn in c:\\programdata\\anaconda3\\lib\\site-packages (from sklearn) (0.21.2)\n",
+ "Requirement already satisfied: joblib>=0.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (0.13.2)\n",
+ "Requirement already satisfied: numpy>=1.11.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.16.2)\n",
+ "Requirement already satisfied: scipy>=0.17.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.2.1)\n",
+ "Requirement already satisfied: imblearn in c:\\programdata\\anaconda3\\lib\\site-packages (0.0)\n",
+ "Requirement already satisfied: imbalanced-learn in c:\\programdata\\anaconda3\\lib\\site-packages (from imblearn) (0.5.0)\n",
"Requirement already satisfied: scipy>=0.17 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (1.2.1)\n",
- "Installing collected packages: scikit-learn, imbalanced-learn, imblearn\n",
- " Found existing installation: scikit-learn 0.20.3\n",
- " Uninstalling scikit-learn-0.20.3:\n",
- " Successfully uninstalled scikit-learn-0.20.3\n",
- "Successfully installed imbalanced-learn-0.5.0 imblearn-0.0 scikit-learn-0.21.2\n"
+ "Requirement already satisfied: scikit-learn>=0.21 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (0.21.2)\n",
+ "Requirement already satisfied: numpy>=1.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (1.16.2)\n",
+ "Requirement already satisfied: joblib>=0.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (0.13.2)\n"
]
}
],
@@ -45,7 +38,7 @@
},
{
"cell_type": "code",
- "execution_count": 32,
+ "execution_count": 71,
"metadata": {},
"outputs": [],
"source": [
@@ -67,7 +60,7 @@
},
{
"cell_type": "code",
- "execution_count": 33,
+ "execution_count": 72,
"metadata": {},
"outputs": [
{
@@ -105,7 +98,7 @@
},
{
"cell_type": "code",
- "execution_count": 38,
+ "execution_count": 73,
"metadata": {},
"outputs": [],
"source": [
@@ -120,7 +113,7 @@
},
{
"cell_type": "code",
- "execution_count": 39,
+ "execution_count": 74,
"metadata": {},
"outputs": [],
"source": [
@@ -131,7 +124,7 @@
},
{
"cell_type": "code",
- "execution_count": 40,
+ "execution_count": 75,
"metadata": {},
"outputs": [],
"source": [
@@ -145,7 +138,7 @@
},
{
"cell_type": "code",
- "execution_count": 41,
+ "execution_count": 76,
"metadata": {
"scrolled": false
},
@@ -193,7 +186,7 @@
},
{
"cell_type": "code",
- "execution_count": 43,
+ "execution_count": 77,
"metadata": {},
"outputs": [],
"source": [
@@ -212,7 +205,7 @@
},
{
"cell_type": "code",
- "execution_count": 67,
+ "execution_count": 78,
"metadata": {},
"outputs": [],
"source": [
@@ -231,7 +224,7 @@
},
{
"cell_type": "code",
- "execution_count": 45,
+ "execution_count": 79,
"metadata": {},
"outputs": [],
"source": [
@@ -250,7 +243,7 @@
},
{
"cell_type": "code",
- "execution_count": 46,
+ "execution_count": 80,
"metadata": {},
"outputs": [],
"source": [
@@ -269,7 +262,7 @@
},
{
"cell_type": "code",
- "execution_count": 62,
+ "execution_count": 81,
"metadata": {},
"outputs": [],
"source": [
@@ -288,7 +281,7 @@
},
{
"cell_type": "code",
- "execution_count": 64,
+ "execution_count": 82,
"metadata": {},
"outputs": [],
"source": [
@@ -307,7 +300,7 @@
},
{
"cell_type": "code",
- "execution_count": 68,
+ "execution_count": 83,
"metadata": {},
"outputs": [
{
@@ -347,10 +340,10 @@
" \r\n",
" \r\n",
+ "\" id=\"md0e3683457\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -408,7 +401,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -423,7 +416,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -437,7 +430,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
@@ -445,262 +438,262 @@
" \r\n",
" \r\n",
+ "\" id=\"md63d1a0a53\" style=\"stroke:#000000;stroke-width:0.6;\"/>\r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -955,10 +948,10 @@
" \r\n",
" \r\n",
+ "\" id=\"mc1bcec9881\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -973,7 +966,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -988,7 +981,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -1028,7 +1021,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
@@ -1036,286 +1029,286 @@
" \r\n",
" \r\n",
+ "\" id=\"mc49a650fd5\" style=\"stroke:#000000;stroke-width:0.6;\"/>\r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -1397,7 +1390,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ "\" id=\"meebf1fc7a9\" style=\"stroke:#1f77b4;\"/>\r\n",
" \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ "\" id=\"m4f70cb6133\" style=\"stroke:#ff7f0e;\"/>\r\n",
" \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ "\" id=\"m33cbaacdb3\" style=\"stroke:#2ca02c;\"/>\r\n",
" \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ "\" id=\"mf17cc4d4af\" style=\"stroke:#d62728;\"/>\r\n",
" \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ "\" id=\"me809331671\" style=\"stroke:#9467bd;\"/>\r\n",
" \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ "\" id=\"m55067d34b2\" style=\"stroke:#8c564b;\"/>\r\n",
" \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
- " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -1769,7 +1762,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -1832,7 +1825,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -1897,7 +1890,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -1948,7 +1941,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -1985,7 +1978,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -2038,7 +2031,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
@@ -2273,7 +2266,7 @@
" \r\n",
" \r\n",
" \r\n",
- " \r\n",
+ " \r\n",
" \r\n",
" \r\n",
" \r\n",
diff --git a/Experiments/MQ4.eps b/Experiments/MQ4.eps
new file mode 100644
index 0000000..9c19ddf
--- /dev/null
+++ b/Experiments/MQ4.eps
@@ -0,0 +1,2967 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Title: MQ4.eps
+%%Creator: matplotlib version 3.0.3, http://matplotlib.org/
+%%CreationDate: Mon Jul 1 22:07:15 2019
+%%Orientation: portrait
+%%BoundingBox: -18 198 630 594
+%%EndComments
+%%BeginProlog
+/mpldict 8 dict def
+mpldict begin
+/m { moveto } bind def
+/l { lineto } bind def
+/r { rlineto } bind def
+/c { curveto } bind def
+/cl { closepath } bind def
+/box {
+m
+1 index 0 r
+0 exch r
+neg 0 r
+cl
+} bind def
+/clipbox {
+box
+clip
+newpath
+} bind def
+%!PS-Adobe-3.0 Resource-Font
+%%Title: DejaVu Sans
+%%Copyright: Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. DejaVu changes are in public domain
+%%Creator: Converted from TrueType to type 3 by PPR
+25 dict begin
+/_d{bind def}bind def
+/_m{moveto}_d
+/_l{lineto}_d
+/_cl{closepath eofill}_d
+/_c{curveto}_d
+/_sc{7 -1 roll{setcachedevice}{pop pop pop pop pop pop}ifelse}_d
+/_e{exec}_d
+/FontName /DejaVuSans def
+/PaintType 0 def
+/FontMatrix[.001 0 0 .001 0 0]def
+/FontBBox[-1021 -463 1793 1232]def
+/FontType 3 def
+/Encoding [ /space /hyphen /slash /zero /one /two /four /A /C /H /M /O /P /Q /R /a /b /c /d /e /f /h /i /l /n /o /p /r /s /t /minus ] def
+/FontInfo 10 dict dup begin
+/FamilyName (DejaVu Sans) def
+/FullName (DejaVu Sans) def
+/Notice (Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. DejaVu changes are in public domain ) def
+/Weight (Book) def
+/Version (Version 2.35) def
+/ItalicAngle 0.0 def
+/isFixedPitch false def
+/UnderlinePosition -130 def
+/UnderlineThickness 90 def
+end readonly def
+/CharStrings 32 dict dup begin
+/.notdef 0 def
+/space{318 0 0 0 0 0 _sc
+}_d
+/hyphen{361 0 49 234 312 314 _sc
+49 314 _m
+312 314 _l
+312 234 _l
+49 234 _l
+49 314 _l
+_cl}_d
+/slash{337 0 0 -92 337 729 _sc
+254 729 _m
+337 729 _l
+83 -92 _l
+0 -92 _l
+254 729 _l
+_cl}_d
+/zero{636 0 66 -13 570 742 _sc
+318 664 _m
+267 664 229 639 203 589 _c
+177 539 165 464 165 364 _c
+165 264 177 189 203 139 _c
+229 89 267 64 318 64 _c
+369 64 407 89 433 139 _c
+458 189 471 264 471 364 _c
+471 464 458 539 433 589 _c
+407 639 369 664 318 664 _c
+318 742 _m
+399 742 461 709 505 645 _c
+548 580 570 486 570 364 _c
+570 241 548 147 505 83 _c
+461 19 399 -13 318 -13 _c
+236 -13 173 19 130 83 _c
+87 147 66 241 66 364 _c
+66 486 87 580 130 645 _c
+173 709 236 742 318 742 _c
+_cl}_d
+/one{636 0 110 0 544 729 _sc
+124 83 _m
+285 83 _l
+285 639 _l
+110 604 _l
+110 694 _l
+284 729 _l
+383 729 _l
+383 83 _l
+544 83 _l
+544 0 _l
+124 0 _l
+124 83 _l
+_cl}_d
+/two{{636 0 73 0 536 742 _sc
+192 83 _m
+536 83 _l
+536 0 _l
+73 0 _l
+73 83 _l
+110 121 161 173 226 239 _c
+290 304 331 346 348 365 _c
+380 400 402 430 414 455 _c
+426 479 433 504 433 528 _c
+433 566 419 598 392 622 _c
+365 646 330 659 286 659 _c
+255 659 222 653 188 643 _c
+154 632 117 616 78 594 _c
+78 694 _l
+118 710 155 722 189 730 _c
+223 738 255 742 284 742 _c
+}_e{359 742 419 723 464 685 _c
+509 647 532 597 532 534 _c
+532 504 526 475 515 449 _c
+504 422 484 390 454 354 _c
+446 344 420 317 376 272 _c
+332 227 271 164 192 83 _c
+_cl}_e}_d
+/four{636 0 49 0 580 729 _sc
+378 643 _m
+129 254 _l
+378 254 _l
+378 643 _l
+352 729 _m
+476 729 _l
+476 254 _l
+580 254 _l
+580 172 _l
+476 172 _l
+476 0 _l
+378 0 _l
+378 172 _l
+49 172 _l
+49 267 _l
+352 729 _l
+_cl}_d
+/A{684 0 8 0 676 729 _sc
+342 632 _m
+208 269 _l
+476 269 _l
+342 632 _l
+286 729 _m
+398 729 _l
+676 0 _l
+573 0 _l
+507 187 _l
+178 187 _l
+112 0 _l
+8 0 _l
+286 729 _l
+_cl}_d
+/C{{698 0 56 -13 644 742 _sc
+644 673 _m
+644 569 _l
+610 599 575 622 537 638 _c
+499 653 460 661 418 661 _c
+334 661 270 635 226 584 _c
+182 533 160 460 160 364 _c
+160 268 182 194 226 143 _c
+270 92 334 67 418 67 _c
+460 67 499 74 537 90 _c
+575 105 610 128 644 159 _c
+644 56 _l
+609 32 572 15 534 4 _c
+496 -7 455 -13 412 -13 _c
+302 -13 215 20 151 87 _c
+}_e{87 154 56 246 56 364 _c
+56 481 87 573 151 641 _c
+215 708 302 742 412 742 _c
+456 742 497 736 535 725 _c
+573 713 610 696 644 673 _c
+_cl}_e}_d
+/H{752 0 98 0 654 729 _sc
+98 729 _m
+197 729 _l
+197 430 _l
+555 430 _l
+555 729 _l
+654 729 _l
+654 0 _l
+555 0 _l
+555 347 _l
+197 347 _l
+197 0 _l
+98 0 _l
+98 729 _l
+_cl}_d
+/M{863 0 98 0 765 729 _sc
+98 729 _m
+245 729 _l
+431 233 _l
+618 729 _l
+765 729 _l
+765 0 _l
+669 0 _l
+669 640 _l
+481 140 _l
+382 140 _l
+194 640 _l
+194 0 _l
+98 0 _l
+98 729 _l
+_cl}_d
+/O{787 0 56 -13 731 742 _sc
+394 662 _m
+322 662 265 635 223 582 _c
+181 528 160 456 160 364 _c
+160 272 181 199 223 146 _c
+265 92 322 66 394 66 _c
+465 66 522 92 564 146 _c
+606 199 627 272 627 364 _c
+627 456 606 528 564 582 _c
+522 635 465 662 394 662 _c
+394 742 _m
+496 742 577 707 639 639 _c
+700 571 731 479 731 364 _c
+731 248 700 157 639 89 _c
+577 21 496 -13 394 -13 _c
+291 -13 209 21 148 89 _c
+86 157 56 248 56 364 _c
+56 479 86 571 148 639 _c
+209 707 291 742 394 742 _c
+_cl}_d
+/P{603 0 98 0 569 729 _sc
+197 648 _m
+197 374 _l
+321 374 _l
+367 374 402 385 427 409 _c
+452 433 465 467 465 511 _c
+465 555 452 588 427 612 _c
+402 636 367 648 321 648 _c
+197 648 _l
+98 729 _m
+321 729 _l
+402 729 464 710 506 673 _c
+548 636 569 582 569 511 _c
+569 439 548 384 506 348 _c
+464 311 402 293 321 293 _c
+197 293 _l
+197 0 _l
+98 0 _l
+98 729 _l
+_cl}_d
+/Q{{787 0 56 -128 731 742 _sc
+394 662 _m
+322 662 265 635 223 582 _c
+181 528 160 456 160 364 _c
+160 272 181 199 223 146 _c
+265 92 322 66 394 66 _c
+465 66 522 92 564 146 _c
+606 199 627 272 627 364 _c
+627 456 606 528 564 582 _c
+522 635 465 662 394 662 _c
+532 13 _m
+662 -128 _l
+543 -128 _l
+435 -11 _l
+424 -11 416 -12 410 -12 _c
+404 -12 399 -13 394 -13 _c
+291 -13 209 21 148 89 _c
+}_e{86 157 56 248 56 364 _c
+56 479 86 571 148 639 _c
+209 707 291 742 394 742 _c
+496 742 577 707 639 639 _c
+700 571 731 479 731 364 _c
+731 279 714 206 680 146 _c
+646 86 596 41 532 13 _c
+_cl}_e}_d
+/R{{695 0 98 0 666 729 _sc
+444 342 _m
+465 334 486 319 506 296 _c
+526 272 546 240 566 199 _c
+666 0 _l
+560 0 _l
+467 187 _l
+443 235 419 268 397 284 _c
+374 300 343 308 304 308 _c
+197 308 _l
+197 0 _l
+98 0 _l
+98 729 _l
+321 729 _l
+404 729 466 711 507 677 _c
+548 642 569 589 569 519 _c
+569 473 558 434 537 404 _c
+515 374 484 353 444 342 _c
+197 648 _m
+197 389 _l
+321 389 _l
+}_e{368 389 404 400 428 422 _c
+452 444 465 476 465 519 _c
+465 561 452 593 428 615 _c
+404 637 368 648 321 648 _c
+197 648 _l
+_cl}_e}_d
+/a{{613 0 60 -13 522 560 _sc
+343 275 _m
+270 275 220 266 192 250 _c
+164 233 150 205 150 165 _c
+150 133 160 107 181 89 _c
+202 70 231 61 267 61 _c
+317 61 357 78 387 114 _c
+417 149 432 196 432 255 _c
+432 275 _l
+343 275 _l
+522 312 _m
+522 0 _l
+432 0 _l
+432 83 _l
+411 49 385 25 355 10 _c
+325 -5 287 -13 243 -13 _c
+187 -13 142 2 109 33 _c
+76 64 60 106 60 159 _c
+}_e{60 220 80 266 122 298 _c
+163 329 224 345 306 345 _c
+432 345 _l
+432 354 _l
+432 395 418 427 391 450 _c
+364 472 326 484 277 484 _c
+245 484 215 480 185 472 _c
+155 464 127 453 100 439 _c
+100 522 _l
+132 534 164 544 195 550 _c
+226 556 256 560 286 560 _c
+365 560 424 539 463 498 _c
+502 457 522 395 522 312 _c
+_cl}_e}_d
+/b{{635 0 91 -13 580 760 _sc
+487 273 _m
+487 339 473 390 446 428 _c
+418 466 381 485 334 485 _c
+286 485 249 466 222 428 _c
+194 390 181 339 181 273 _c
+181 207 194 155 222 117 _c
+249 79 286 61 334 61 _c
+381 61 418 79 446 117 _c
+473 155 487 207 487 273 _c
+181 464 _m
+199 496 223 520 252 536 _c
+281 552 316 560 356 560 _c
+422 560 476 533 518 481 _c
+559 428 580 359 580 273 _c
+}_e{580 187 559 117 518 65 _c
+476 13 422 -13 356 -13 _c
+316 -13 281 -5 252 10 _c
+223 25 199 49 181 82 _c
+181 0 _l
+91 0 _l
+91 760 _l
+181 760 _l
+181 464 _l
+_cl}_e}_d
+/c{{550 0 55 -13 488 560 _sc
+488 526 _m
+488 442 _l
+462 456 437 466 411 473 _c
+385 480 360 484 334 484 _c
+276 484 230 465 198 428 _c
+166 391 150 339 150 273 _c
+150 206 166 154 198 117 _c
+230 80 276 62 334 62 _c
+360 62 385 65 411 72 _c
+437 79 462 90 488 104 _c
+488 21 _l
+462 9 436 0 410 -5 _c
+383 -10 354 -13 324 -13 _c
+242 -13 176 12 128 64 _c
+}_e{79 115 55 185 55 273 _c
+55 362 79 432 128 483 _c
+177 534 244 560 330 560 _c
+358 560 385 557 411 551 _c
+437 545 463 537 488 526 _c
+_cl}_e}_d
+/d{{635 0 55 -13 544 760 _sc
+454 464 _m
+454 760 _l
+544 760 _l
+544 0 _l
+454 0 _l
+454 82 _l
+435 49 411 25 382 10 _c
+353 -5 319 -13 279 -13 _c
+213 -13 159 13 117 65 _c
+75 117 55 187 55 273 _c
+55 359 75 428 117 481 _c
+159 533 213 560 279 560 _c
+319 560 353 552 382 536 _c
+411 520 435 496 454 464 _c
+148 273 _m
+148 207 161 155 188 117 _c
+215 79 253 61 301 61 _c
+}_e{348 61 385 79 413 117 _c
+440 155 454 207 454 273 _c
+454 339 440 390 413 428 _c
+385 466 348 485 301 485 _c
+253 485 215 466 188 428 _c
+161 390 148 339 148 273 _c
+_cl}_e}_d
+/e{{615 0 55 -13 562 560 _sc
+562 296 _m
+562 252 _l
+149 252 _l
+153 190 171 142 205 110 _c
+238 78 284 62 344 62 _c
+378 62 412 66 444 74 _c
+476 82 509 95 541 113 _c
+541 28 _l
+509 14 476 3 442 -3 _c
+408 -9 373 -13 339 -13 _c
+251 -13 182 12 131 62 _c
+80 112 55 181 55 268 _c
+55 357 79 428 127 481 _c
+175 533 241 560 323 560 _c
+397 560 455 536 498 489 _c
+}_e{540 441 562 377 562 296 _c
+472 322 _m
+471 371 457 410 431 440 _c
+404 469 368 484 324 484 _c
+274 484 234 469 204 441 _c
+174 413 156 373 152 322 _c
+472 322 _l
+_cl}_e}_d
+/f{352 0 23 0 371 760 _sc
+371 760 _m
+371 685 _l
+285 685 _l
+253 685 230 678 218 665 _c
+205 652 199 629 199 595 _c
+199 547 _l
+347 547 _l
+347 477 _l
+199 477 _l
+199 0 _l
+109 0 _l
+109 477 _l
+23 477 _l
+23 547 _l
+109 547 _l
+109 585 _l
+109 645 123 690 151 718 _c
+179 746 224 760 286 760 _c
+371 760 _l
+_cl}_d
+/h{634 0 91 0 549 760 _sc
+549 330 _m
+549 0 _l
+459 0 _l
+459 327 _l
+459 379 448 417 428 443 _c
+408 469 378 482 338 482 _c
+289 482 251 466 223 435 _c
+195 404 181 362 181 309 _c
+181 0 _l
+91 0 _l
+91 760 _l
+181 760 _l
+181 462 _l
+202 494 227 519 257 535 _c
+286 551 320 560 358 560 _c
+420 560 468 540 500 501 _c
+532 462 549 405 549 330 _c
+_cl}_d
+/i{278 0 94 0 184 760 _sc
+94 547 _m
+184 547 _l
+184 0 _l
+94 0 _l
+94 547 _l
+94 760 _m
+184 760 _l
+184 646 _l
+94 646 _l
+94 760 _l
+_cl}_d
+/l{278 0 94 0 184 760 _sc
+94 760 _m
+184 760 _l
+184 0 _l
+94 0 _l
+94 760 _l
+_cl}_d
+/n{634 0 91 0 549 560 _sc
+549 330 _m
+549 0 _l
+459 0 _l
+459 327 _l
+459 379 448 417 428 443 _c
+408 469 378 482 338 482 _c
+289 482 251 466 223 435 _c
+195 404 181 362 181 309 _c
+181 0 _l
+91 0 _l
+91 547 _l
+181 547 _l
+181 462 _l
+202 494 227 519 257 535 _c
+286 551 320 560 358 560 _c
+420 560 468 540 500 501 _c
+532 462 549 405 549 330 _c
+_cl}_d
+/o{612 0 55 -13 557 560 _sc
+306 484 _m
+258 484 220 465 192 427 _c
+164 389 150 338 150 273 _c
+150 207 163 156 191 118 _c
+219 80 257 62 306 62 _c
+354 62 392 80 420 118 _c
+448 156 462 207 462 273 _c
+462 337 448 389 420 427 _c
+392 465 354 484 306 484 _c
+306 560 _m
+384 560 445 534 490 484 _c
+534 433 557 363 557 273 _c
+557 183 534 113 490 63 _c
+445 12 384 -13 306 -13 _c
+227 -13 165 12 121 63 _c
+77 113 55 183 55 273 _c
+55 363 77 433 121 484 _c
+165 534 227 560 306 560 _c
+_cl}_d
+/p{{635 0 91 -207 580 560 _sc
+181 82 _m
+181 -207 _l
+91 -207 _l
+91 547 _l
+181 547 _l
+181 464 _l
+199 496 223 520 252 536 _c
+281 552 316 560 356 560 _c
+422 560 476 533 518 481 _c
+559 428 580 359 580 273 _c
+580 187 559 117 518 65 _c
+476 13 422 -13 356 -13 _c
+316 -13 281 -5 252 10 _c
+223 25 199 49 181 82 _c
+487 273 _m
+487 339 473 390 446 428 _c
+418 466 381 485 334 485 _c
+}_e{286 485 249 466 222 428 _c
+194 390 181 339 181 273 _c
+181 207 194 155 222 117 _c
+249 79 286 61 334 61 _c
+381 61 418 79 446 117 _c
+473 155 487 207 487 273 _c
+_cl}_e}_d
+/r{411 0 91 0 411 560 _sc
+411 463 _m
+401 469 390 473 378 476 _c
+366 478 353 480 339 480 _c
+288 480 249 463 222 430 _c
+194 397 181 350 181 288 _c
+181 0 _l
+91 0 _l
+91 547 _l
+181 547 _l
+181 462 _l
+199 495 224 520 254 536 _c
+284 552 321 560 365 560 _c
+371 560 378 559 386 559 _c
+393 558 401 557 411 555 _c
+411 463 _l
+_cl}_d
+/s{{521 0 54 -13 472 560 _sc
+443 531 _m
+443 446 _l
+417 458 391 468 364 475 _c
+336 481 308 485 279 485 _c
+234 485 200 478 178 464 _c
+156 450 145 430 145 403 _c
+145 382 153 366 169 354 _c
+185 342 217 330 265 320 _c
+296 313 _l
+360 299 405 279 432 255 _c
+458 230 472 195 472 151 _c
+472 100 452 60 412 31 _c
+372 1 316 -13 246 -13 _c
+216 -13 186 -10 154 -5 _c
+}_e{122 0 89 8 54 20 _c
+54 113 _l
+87 95 120 82 152 74 _c
+184 65 216 61 248 61 _c
+290 61 323 68 346 82 _c
+368 96 380 117 380 144 _c
+380 168 371 187 355 200 _c
+339 213 303 226 247 238 _c
+216 245 _l
+160 257 119 275 95 299 _c
+70 323 58 356 58 399 _c
+58 450 76 490 112 518 _c
+148 546 200 560 268 560 _c
+301 560 332 557 362 552 _c
+391 547 418 540 443 531 _c
+}_e{_cl}_e}_d
+/t{392 0 27 0 368 702 _sc
+183 702 _m
+183 547 _l
+368 547 _l
+368 477 _l
+183 477 _l
+183 180 _l
+183 135 189 106 201 94 _c
+213 81 238 75 276 75 _c
+368 75 _l
+368 0 _l
+276 0 _l
+206 0 158 13 132 39 _c
+106 65 93 112 93 180 _c
+93 477 _l
+27 477 _l
+27 547 _l
+93 547 _l
+93 702 _l
+183 702 _l
+_cl}_d
+/minus{838 0 106 272 732 355 _sc
+106 355 _m
+732 355 _l
+732 272 _l
+106 272 _l
+106 355 _l
+_cl}_d
+end readonly def
+
+/BuildGlyph
+ {exch begin
+ CharStrings exch
+ 2 copy known not{pop /.notdef}if
+ true 3 1 roll get exec
+ end}_d
+
+/BuildChar {
+ 1 index /Encoding get exch get
+ 1 index /BuildGlyph get exec
+}_d
+
+FontName currentdict end definefont pop
+end
+%%EndProlog
+mpldict begin
+-18 198 translate
+648 396 0 0 clipbox
+gsave
+0 0 m
+648 0 l
+648 396 l
+0 396 l
+cl
+1.000 setgray
+fill
+grestore
+gsave
+81 49.5 m
+583.2 49.5 l
+583.2 348.48 l
+81 348.48 l
+cl
+1.000 setgray
+fill
+grestore
+0.800 setlinewidth
+1 setlinejoin
+0 setlinecap
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.8 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -3.5 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+121.567 49.5 o
+grestore
+gsave
+109.566941 34.578125 translate
+0.000000 rotate
+/DejaVuSans findfont
+10.0 scalefont
+setfont
+0.000000 0.064063 moveto
+/one glyphshow
+
+6.362305 0.064063 moveto
+/zero glyphshow
+
+/DejaVuSans findfont
+7.0 scalefont
+setfont
+12.820312 3.892188 moveto
+/minus glyphshow
+
+18.685547 3.892188 moveto
+/one glyphshow
+
+
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0.8 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -3.5 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+305.474 49.5 o
+grestore
+gsave
+296.474439 33.578125 translate
+0.000000 rotate
+/DejaVuSans findfont
+10.0 scalefont
+setfont
+0.000000 0.976562 moveto
+/one glyphshow
+
+6.362305 0.976562 moveto
+/zero glyphshow
+
+/DejaVuSans findfont
+7.0 scalefont
+setfont
+12.820312 4.804688 moveto
+/zero glyphshow
+
+
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0.8 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -3.5 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+489.382 49.5 o
+grestore
+gsave
+480.381938 34.578125 translate
+0.000000 rotate
+/DejaVuSans findfont
+10.0 scalefont
+setfont
+0.000000 0.064063 moveto
+/one glyphshow
+
+6.362305 0.064063 moveto
+/zero glyphshow
+
+/DejaVuSans findfont
+7.0 scalefont
+setfont
+12.820312 3.892188 moveto
+/one glyphshow
+
+
+grestore
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+80.767292 49.5 m
+80.767292 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+80.7673 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+93.079309 49.5 m
+93.079309 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+93.0793 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+103.744463 49.5 m
+103.744463 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+103.744 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+113.151795 49.5 m
+113.151795 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+113.152 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+176.928614 49.5 m
+176.928614 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+176.929 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+209.313117 49.5 m
+209.313117 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+209.313 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+232.290288 49.5 m
+232.290288 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+232.29 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+250.112766 49.5 m
+250.112766 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+250.113 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+264.674791 49.5 m
+264.674791 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+264.675 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+276.986807 49.5 m
+276.986807 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+276.987 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+287.651961 49.5 m
+287.651961 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+287.652 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+297.059294 49.5 m
+297.059294 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+297.059 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+360.836113 49.5 m
+360.836113 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+360.836 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+393.220616 49.5 m
+393.220616 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+393.221 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+416.197786 49.5 m
+416.197786 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+416.198 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+434.020264 49.5 m
+434.020264 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+434.02 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+448.582289 49.5 m
+448.582289 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+448.582 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+460.894306 49.5 m
+460.894306 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+460.894 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+471.559459 49.5 m
+471.559459 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+471.559 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+480.966792 49.5 m
+480.966792 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+480.967 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+544.743611 49.5 m
+544.743611 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+544.744 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+577.128114 49.5 m
+577.128114 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+577.128 49.5 o
+grestore
+/DejaVuSans findfont
+10.000 scalefont
+setfont
+gsave
+284.771875 19.906250 translate
+0.000000 rotate
+0.000000 0.000000 m /P glyphshow
+6.030273 0.000000 m /P glyphshow
+12.060547 0.000000 m /M glyphshow
+20.688477 0.000000 m /space glyphshow
+23.867188 0.000000 m /C glyphshow
+30.849609 0.000000 m /o glyphshow
+36.967773 0.000000 m /n glyphshow
+43.305664 0.000000 m /c glyphshow
+48.803711 0.000000 m /e glyphshow
+54.956055 0.000000 m /n glyphshow
+61.293945 0.000000 m /t glyphshow
+65.214844 0.000000 m /r glyphshow
+69.326172 0.000000 m /a glyphshow
+75.454102 0.000000 m /t glyphshow
+79.375000 0.000000 m /i glyphshow
+82.153320 0.000000 m /o glyphshow
+88.271484 0.000000 m /n glyphshow
+grestore
+0.800 setlinewidth
+gsave
+/o {
+gsave
+newpath
+translate
+0.8 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-3.5 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 133.48 o
+grestore
+gsave
+56.000000 129.018895 translate
+0.000000 rotate
+/DejaVuSans findfont
+10.0 scalefont
+setfont
+0.000000 0.976562 moveto
+/one glyphshow
+
+6.362305 0.976562 moveto
+/zero glyphshow
+
+/DejaVuSans findfont
+7.0 scalefont
+setfont
+12.820312 4.804688 moveto
+/zero glyphshow
+
+
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0.8 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-3.5 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 234.185 o
+grestore
+gsave
+56.000000 230.223979 translate
+0.000000 rotate
+/DejaVuSans findfont
+10.0 scalefont
+setfont
+0.000000 0.064063 moveto
+/one glyphshow
+
+6.362305 0.064063 moveto
+/zero glyphshow
+
+/DejaVuSans findfont
+7.0 scalefont
+setfont
+12.820312 3.892188 moveto
+/one glyphshow
+
+
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0.8 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-3.5 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 334.89 o
+grestore
+gsave
+56.000000 330.429062 translate
+0.000000 rotate
+/DejaVuSans findfont
+10.0 scalefont
+setfont
+0.000000 0.976562 moveto
+/one glyphshow
+
+6.362305 0.976562 moveto
+/zero glyphshow
+
+/DejaVuSans findfont
+7.0 scalefont
+setfont
+12.820312 4.804688 moveto
+/two glyphshow
+
+
+grestore
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 63.09 m
+583.2 63.09 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 63.09 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 80.823285 m
+583.2 80.823285 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 80.8233 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 93.405251 m
+583.2 93.405251 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 93.4053 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 103.164582 m
+583.2 103.164582 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 103.165 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 111.138536 m
+583.2 111.138536 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 111.139 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 117.880418 m
+583.2 117.880418 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 117.88 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 123.720502 m
+583.2 123.720502 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 123.721 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 128.871821 m
+583.2 128.871821 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 128.872 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 163.795084 m
+583.2 163.795084 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 163.795 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 181.528369 m
+583.2 181.528369 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 181.528 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 194.110335 m
+583.2 194.110335 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 194.11 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 203.869665 m
+583.2 203.869665 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 203.87 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 211.843619 m
+583.2 211.843619 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 211.844 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 218.585502 m
+583.2 218.585502 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 218.586 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 224.425585 m
+583.2 224.425585 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 224.426 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 229.576904 m
+583.2 229.576904 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 229.577 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 264.500167 m
+583.2 264.500167 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 264.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 282.233452 m
+583.2 282.233452 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 282.233 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 294.815418 m
+583.2 294.815418 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 294.815 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 304.574749 m
+583.2 304.574749 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 304.575 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 312.548703 m
+583.2 312.548703 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 312.549 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 319.290585 m
+583.2 319.290585 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 319.291 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 325.130669 m
+583.2 325.130669 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 325.131 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 330.281988 m
+583.2 330.281988 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 330.282 o
+grestore
+gsave
+49.921875 184.677500 translate
+90.000000 rotate
+0.000000 0.000000 m /R glyphshow
+6.948242 0.000000 m /s glyphshow
+12.158203 0.000000 m /slash glyphshow
+15.527344 0.000000 m /R glyphshow
+22.475586 0.000000 m /o glyphshow
+grestore
+1.000 setlinewidth
+2 setlinecap
+0.122 0.467 0.706 setrgbcolor
+gsave
+502.2 299 81 49.5 clipbox
+392.948486 63.09 m
+383.772523 80.823285 l
+373.403862 93.405251 l
+361.485466 103.164582 l
+347.471271 111.138536 l
+330.463555 117.880418 l
+308.82612 123.720502 l
+279.055499 128.871821 l
+231.058335 133.479833 l
+-1 133.518101 l
+stroke
+grestore
+0 setlinecap
+gsave
+502.2 299 81 49.5 clipbox
+/o {
+gsave
+newpath
+translate
+1.0 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 -3 m
+0.795609 -3 1.55874 -2.683901 2.12132 -2.12132 c
+2.683901 -1.55874 3 -0.795609 3 0 c
+3 0.795609 2.683901 1.55874 2.12132 2.12132 c
+1.55874 2.683901 0.795609 3 0 3 c
+-0.795609 3 -1.55874 2.683901 -2.12132 2.12132 c
+-2.683901 1.55874 -3 0.795609 -3 0 c
+-3 -0.795609 -2.683901 -1.55874 -2.12132 -2.12132 c
+-1.55874 -2.683901 -0.795609 -3 0 -3 c
+cl
+
+gsave
+0.122 0.467 0.706 setrgbcolor
+fill
+grestore
+stroke
+grestore
+} bind def
+392.948 63.09 o
+383.773 80.8233 o
+373.404 93.4053 o
+361.485 103.165 o
+347.471 111.139 o
+330.464 117.88 o
+308.826 123.721 o
+279.055 128.872 o
+231.058 133.48 o
+-1 133.518 o
+grestore
+2 setlinecap
+1.000 0.498 0.055 setrgbcolor
+gsave
+502.2 299 81 49.5 clipbox
+464.779903 63.09 m
+462.67343 80.823285 l
+460.509892 93.405251 l
+458.286113 103.164582 l
+455.99864 111.138536 l
+453.643718 117.880418 l
+451.217247 123.720502 l
+448.714743 128.871821 l
+446.131288 133.479833 l
+414.294532 163.795084 l
+360.553916 181.528369 l
+103.827273 194.110335 l
+-1 194.115903 l
+stroke
+grestore
+0 setlinecap
+gsave
+502.2 299 81 49.5 clipbox
+/o {
+gsave
+newpath
+translate
+1.0 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 -3 m
+0.795609 -3 1.55874 -2.683901 2.12132 -2.12132 c
+2.683901 -1.55874 3 -0.795609 3 0 c
+3 0.795609 2.683901 1.55874 2.12132 2.12132 c
+1.55874 2.683901 0.795609 3 0 3 c
+-0.795609 3 -1.55874 2.683901 -2.12132 2.12132 c
+-2.683901 1.55874 -3 0.795609 -3 0 c
+-3 -0.795609 -2.683901 -1.55874 -2.12132 -2.12132 c
+-1.55874 -2.683901 -0.795609 -3 0 -3 c
+cl
+
+gsave
+1.000 0.498 0.055 setrgbcolor
+fill
+grestore
+stroke
+grestore
+} bind def
+464.78 63.09 o
+462.673 80.8233 o
+460.51 93.4053 o
+458.286 103.165 o
+455.999 111.139 o
+453.644 117.88 o
+451.217 123.721 o
+448.715 128.872 o
+446.131 133.48 o
+414.295 163.795 o
+360.554 181.528 o
+103.827 194.11 o
+-1 194.116 o
+grestore
+2 setlinecap
+0.173 0.627 0.173 setrgbcolor
+gsave
+502.2 299 81 49.5 clipbox
+560.372727 63.09 m
+560.212977 80.823285 l
+560.052907 93.405251 l
+559.892516 103.164582 l
+559.731801 111.138536 l
+559.570763 117.880418 l
+559.409399 123.720502 l
+559.247709 128.871821 l
+559.085691 133.479833 l
+557.44717 163.795084 l
+555.774331 181.528369 l
+554.065703 194.110335 l
+552.319723 203.869665 l
+550.534721 211.843619 l
+548.708913 218.585502 l
+546.840388 224.425585 l
+544.927101 229.576904 l
+542.966854 234.184916 l
+520.15285 264.500167 l
+488.093684 282.233452 l
+433.700143 294.815418 l
+136.128966 304.574749 l
+-1 304.5807 l
+stroke
+grestore
+0 setlinecap
+gsave
+502.2 299 81 49.5 clipbox
+/o {
+gsave
+newpath
+translate
+1.0 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 -3 m
+0.795609 -3 1.55874 -2.683901 2.12132 -2.12132 c
+2.683901 -1.55874 3 -0.795609 3 0 c
+3 0.795609 2.683901 1.55874 2.12132 2.12132 c
+1.55874 2.683901 0.795609 3 0 3 c
+-0.795609 3 -1.55874 2.683901 -2.12132 2.12132 c
+-2.683901 1.55874 -3 0.795609 -3 0 c
+-3 -0.795609 -2.683901 -1.55874 -2.12132 -2.12132 c
+-1.55874 -2.683901 -0.795609 -3 0 -3 c
+cl
+
+gsave
+0.173 0.627 0.173 setrgbcolor
+fill
+grestore
+stroke
+grestore
+} bind def
+560.373 63.09 o
+560.213 80.8233 o
+560.053 93.4053 o
+559.893 103.165 o
+559.732 111.139 o
+559.571 117.88 o
+559.409 123.721 o
+559.248 128.872 o
+559.086 133.48 o
+557.447 163.795 o
+555.774 181.528 o
+554.066 194.11 o
+552.32 203.87 o
+550.535 211.844 o
+548.709 218.586 o
+546.84 224.426 o
+544.927 229.577 o
+542.967 234.185 o
+520.153 264.5 o
+488.094 282.233 o
+433.7 294.815 o
+136.129 304.575 o
+-1 304.581 o
+grestore
+2 setlinecap
+0.839 0.153 0.157 setrgbcolor
+gsave
+502.2 299 81 49.5 clipbox
+478.329351 63.09 m
+478.148335 80.823285 l
+477.966908 93.405251 l
+477.785068 103.164582 l
+477.602814 111.138536 l
+477.420142 117.880418 l
+477.237051 123.720502 l
+477.05354 128.871821 l
+476.869607 133.479833 l
+475.00659 163.795084 l
+473.099078 181.528369 l
+471.144892 194.110335 l
+469.141691 203.869665 l
+467.086953 211.843619 l
+464.977955 218.585502 l
+462.811755 224.425585 l
+460.585163 229.576904 l
+458.294713 234.184916 l
+430.836039 264.500167 l
+388.655372 282.233452 l
+293.621463 294.815418 l
+-1 294.831054 l
+stroke
+grestore
+0 setlinecap
+gsave
+502.2 299 81 49.5 clipbox
+/o {
+gsave
+newpath
+translate
+1.0 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 -3 m
+0.795609 -3 1.55874 -2.683901 2.12132 -2.12132 c
+2.683901 -1.55874 3 -0.795609 3 0 c
+3 0.795609 2.683901 1.55874 2.12132 2.12132 c
+1.55874 2.683901 0.795609 3 0 3 c
+-0.795609 3 -1.55874 2.683901 -2.12132 2.12132 c
+-2.683901 1.55874 -3 0.795609 -3 0 c
+-3 -0.795609 -2.683901 -1.55874 -2.12132 -2.12132 c
+-1.55874 -2.683901 -0.795609 -3 0 -3 c
+cl
+
+gsave
+0.839 0.153 0.157 setrgbcolor
+fill
+grestore
+stroke
+grestore
+} bind def
+478.329 63.09 o
+478.148 80.8233 o
+477.967 93.4053 o
+477.785 103.165 o
+477.603 111.139 o
+477.42 117.88 o
+477.237 123.721 o
+477.054 128.872 o
+476.87 133.48 o
+475.007 163.795 o
+473.099 181.528 o
+471.145 194.11 o
+469.142 203.87 o
+467.087 211.844 o
+464.978 218.586 o
+462.812 224.426 o
+460.585 229.577 o
+458.295 234.185 o
+430.836 264.5 o
+388.655 282.233 o
+293.621 294.815 o
+-1 294.831 o
+grestore
+0.800 setlinewidth
+0 setlinejoin
+2 setlinecap
+[] 0 setdash
+0.000 setgray
+gsave
+81 49.5 m
+81 348.48 l
+stroke
+grestore
+gsave
+583.2 49.5 m
+583.2 348.48 l
+stroke
+grestore
+gsave
+81 49.5 m
+583.2 49.5 l
+stroke
+grestore
+gsave
+81 348.48 m
+583.2 348.48 l
+stroke
+grestore
+1.000 setlinewidth
+0 setlinecap
+0.800 setgray
+gsave
+507.7 281.7925 m
+576.2 281.7925 l
+577.533333 281.7925 578.2 282.459167 578.2 283.7925 c
+578.2 341.48 l
+578.2 342.813333 577.533333 343.48 576.2 343.48 c
+507.7 343.48 l
+506.366667 343.48 505.7 342.813333 505.7 341.48 c
+505.7 283.7925 l
+505.7 282.459167 506.366667 281.7925 507.7 281.7925 c
+cl
+gsave
+1.000 setgray
+fill
+grestore
+stroke
+grestore
+1 setlinejoin
+2 setlinecap
+[] 0 setdash
+0.122 0.467 0.706 setrgbcolor
+gsave
+509.7 335.38625 m
+529.7 335.38625 l
+stroke
+grestore
+0 setlinecap
+gsave
+/o {
+gsave
+newpath
+translate
+1.0 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 -3 m
+0.795609 -3 1.55874 -2.683901 2.12132 -2.12132 c
+2.683901 -1.55874 3 -0.795609 3 0 c
+3 0.795609 2.683901 1.55874 2.12132 2.12132 c
+1.55874 2.683901 0.795609 3 0 3 c
+-0.795609 3 -1.55874 2.683901 -2.12132 2.12132 c
+-2.683901 1.55874 -3 0.795609 -3 0 c
+-3 -0.795609 -2.683901 -1.55874 -2.12132 -2.12132 c
+-1.55874 -2.683901 -0.795609 -3 0 -3 c
+cl
+
+gsave
+0.122 0.467 0.706 setrgbcolor
+fill
+grestore
+stroke
+grestore
+} bind def
+519.7 335.386 o
+grestore
+0.000 setgray
+gsave
+537.700000 331.886250 translate
+0.000000 rotate
+0.000000 0.000000 m /C glyphshow
+6.982422 0.000000 m /H glyphshow
+14.501953 0.000000 m /four glyphshow
+grestore
+2 setlinecap
+1.000 0.498 0.055 setrgbcolor
+gsave
+509.7 320.714375 m
+529.7 320.714375 l
+stroke
+grestore
+0 setlinecap
+gsave
+/o {
+gsave
+newpath
+translate
+1.0 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 -3 m
+0.795609 -3 1.55874 -2.683901 2.12132 -2.12132 c
+2.683901 -1.55874 3 -0.795609 3 0 c
+3 0.795609 2.683901 1.55874 2.12132 2.12132 c
+1.55874 2.683901 0.795609 3 0 3 c
+-0.795609 3 -1.55874 2.683901 -2.12132 2.12132 c
+-2.683901 1.55874 -3 0.795609 -3 0 c
+-3 -0.795609 -2.683901 -1.55874 -2.12132 -2.12132 c
+-1.55874 -2.683901 -0.795609 -3 0 -3 c
+cl
+
+gsave
+1.000 0.498 0.055 setrgbcolor
+fill
+grestore
+stroke
+grestore
+} bind def
+519.7 320.714 o
+grestore
+0.000 setgray
+gsave
+537.700000 317.214375 translate
+0.000000 rotate
+0.000000 0.000000 m /C glyphshow
+6.982422 0.000000 m /O glyphshow
+grestore
+2 setlinecap
+0.173 0.627 0.173 setrgbcolor
+gsave
+509.7 306.0425 m
+529.7 306.0425 l
+stroke
+grestore
+0 setlinecap
+gsave
+/o {
+gsave
+newpath
+translate
+1.0 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 -3 m
+0.795609 -3 1.55874 -2.683901 2.12132 -2.12132 c
+2.683901 -1.55874 3 -0.795609 3 0 c
+3 0.795609 2.683901 1.55874 2.12132 2.12132 c
+1.55874 2.683901 0.795609 3 0 3 c
+-0.795609 3 -1.55874 2.683901 -2.12132 2.12132 c
+-2.683901 1.55874 -3 0.795609 -3 0 c
+-3 -0.795609 -2.683901 -1.55874 -2.12132 -2.12132 c
+-1.55874 -2.683901 -0.795609 -3 0 -3 c
+cl
+
+gsave
+0.173 0.627 0.173 setrgbcolor
+fill
+grestore
+stroke
+grestore
+} bind def
+519.7 306.043 o
+grestore
+0.000 setgray
+gsave
+537.700000 302.542500 translate
+0.000000 rotate
+0.000000 0.000000 m /H glyphshow
+7.519531 0.000000 m /two glyphshow
+grestore
+2 setlinecap
+0.839 0.153 0.157 setrgbcolor
+gsave
+509.7 291.370625 m
+529.7 291.370625 l
+stroke
+grestore
+0 setlinecap
+gsave
+/o {
+gsave
+newpath
+translate
+1.0 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 -3 m
+0.795609 -3 1.55874 -2.683901 2.12132 -2.12132 c
+2.683901 -1.55874 3 -0.795609 3 0 c
+3 0.795609 2.683901 1.55874 2.12132 2.12132 c
+1.55874 2.683901 0.795609 3 0 3 c
+-0.795609 3 -1.55874 2.683901 -2.12132 2.12132 c
+-2.683901 1.55874 -3 0.795609 -3 0 c
+-3 -0.795609 -2.683901 -1.55874 -2.12132 -2.12132 c
+-1.55874 -2.683901 -0.795609 -3 0 -3 c
+cl
+
+gsave
+0.839 0.153 0.157 setrgbcolor
+fill
+grestore
+stroke
+grestore
+} bind def
+519.7 291.371 o
+grestore
+0.000 setgray
+gsave
+537.700000 287.870625 translate
+0.000000 rotate
+0.000000 0.000000 m /A glyphshow
+6.840820 0.000000 m /l glyphshow
+9.619141 0.000000 m /c glyphshow
+15.117188 0.000000 m /o glyphshow
+21.235352 0.000000 m /h glyphshow
+27.573242 0.000000 m /o glyphshow
+33.691406 0.000000 m /l glyphshow
+grestore
+/DejaVuSans findfont
+12.000 scalefont
+setfont
+gsave
+234.562500 378.955000 translate
+0.000000 rotate
+0.000000 0.000000 m /C glyphshow
+8.378906 0.000000 m /a glyphshow
+15.732422 0.000000 m /l glyphshow
+19.066406 0.000000 m /i glyphshow
+22.400391 0.000000 m /b glyphshow
+30.017578 0.000000 m /r glyphshow
+34.951172 0.000000 m /a glyphshow
+42.304688 0.000000 m /t glyphshow
+47.009766 0.000000 m /i glyphshow
+50.343750 0.000000 m /o glyphshow
+57.685547 0.000000 m /n glyphshow
+65.291016 0.000000 m /space glyphshow
+69.105469 0.000000 m /p glyphshow
+76.722656 0.000000 m /l glyphshow
+80.056641 0.000000 m /o glyphshow
+87.398438 0.000000 m /t glyphshow
+92.103516 0.000000 m /space glyphshow
+95.917969 0.000000 m /f glyphshow
+100.142578 0.000000 m /o glyphshow
+107.484375 0.000000 m /r glyphshow
+112.417969 0.000000 m /space glyphshow
+116.232422 0.000000 m /M glyphshow
+126.585938 0.000000 m /Q glyphshow
+136.031250 0.000000 m /hyphen glyphshow
+140.361328 0.000000 m /four glyphshow
+147.996094 0.000000 m /space glyphshow
+151.810547 0.000000 m /d glyphshow
+159.427734 0.000000 m /a glyphshow
+166.781250 0.000000 m /t glyphshow
+171.486328 0.000000 m /a glyphshow
+grestore
+
+end
+showpage
diff --git a/Experiments/MQ4.png b/Experiments/MQ4.png
new file mode 100644
index 0000000..7230a7d
Binary files /dev/null and b/Experiments/MQ4.png differ
diff --git a/Experiments/MQ4.svg b/Experiments/MQ4.svg
new file mode 100644
index 0000000..1c48e73
--- /dev/null
+++ b/Experiments/MQ4.svg
@@ -0,0 +1,1671 @@
+
+
+
+
diff --git a/Experiments/MQ4_Regression.ipynb b/Experiments/MQ4_Regression.ipynb
new file mode 100644
index 0000000..5fcf942
--- /dev/null
+++ b/Experiments/MQ4_Regression.ipynb
@@ -0,0 +1,2010 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Requirement already satisfied: pandas in c:\\programdata\\anaconda3\\lib\\site-packages (0.24.2)\n",
+ "Requirement already satisfied: pytz>=2011k in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (2018.9)\n",
+ "Requirement already satisfied: numpy>=1.12.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (1.16.2)\n",
+ "Requirement already satisfied: python-dateutil>=2.5.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (2.8.0)\n",
+ "Requirement already satisfied: six>=1.5 in c:\\programdata\\anaconda3\\lib\\site-packages (from python-dateutil>=2.5.0->pandas) (1.12.0)\n",
+ "Requirement already satisfied: xlrd in c:\\programdata\\anaconda3\\lib\\site-packages (1.2.0)\n",
+ "Requirement already satisfied: sklearn in c:\\programdata\\anaconda3\\lib\\site-packages (0.0)\n",
+ "Requirement already satisfied: scikit-learn in c:\\programdata\\anaconda3\\lib\\site-packages (from sklearn) (0.21.2)\n",
+ "Requirement already satisfied: joblib>=0.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (0.13.2)\n",
+ "Requirement already satisfied: numpy>=1.11.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.16.2)\n",
+ "Requirement already satisfied: scipy>=0.17.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.2.1)\n",
+ "Requirement already satisfied: imblearn in c:\\programdata\\anaconda3\\lib\\site-packages (0.0)\n",
+ "Requirement already satisfied: imbalanced-learn in c:\\programdata\\anaconda3\\lib\\site-packages (from imblearn) (0.5.0)\n",
+ "Requirement already satisfied: scikit-learn>=0.21 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (0.21.2)\n",
+ "Requirement already satisfied: joblib>=0.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (0.13.2)\n",
+ "Requirement already satisfied: scipy>=0.17 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (1.2.1)\n",
+ "Requirement already satisfied: numpy>=1.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (1.16.2)\n"
+ ]
+ }
+ ],
+ "source": [
+ "!pip install pandas\n",
+ "!pip install xlrd\n",
+ "!pip install sklearn\n",
+ "!pip install imblearn"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import xlrd\n",
+ "book = xlrd.open_workbook(\"Datasheets info.xlsx\")\n",
+ "sheetMQ2 = book.sheet_by_name(\"MQ2 - Pololulu\")\n",
+ "sheetMQ3 = book.sheet_by_name(\"MQ3 - Sparkfun\")\n",
+ "sheetMQ4 = book.sheet_by_name(\"MQ4 - Sparkfun\")\n",
+ "sheetMQ5 = book.sheet_by_name(\"MQ5 - Sparkfun\")\n",
+ "sheetMQ6 = book.sheet_by_name(\"MQ6 - Sparkfun\")\n",
+ "sheetMQ7 = book.sheet_by_name(\"MQ7 - Sparkfun\")\n",
+ "sheetMQ8 = book.sheet_by_name(\"MQ8 - Sparkfun\")\n",
+ "sheetMQ9 = book.sheet_by_name(\"MQ9 - Haoyuelectronics\")\n",
+ "sheetMQ131 = book.sheet_by_name(\"MQ131- Sensorsportal\")\n",
+ "sheetMQ135 = book.sheet_by_name(\"MQ135 - HANWEI\")\n",
+ "sheetMQ303A = book.sheet_by_name(\"MQ303A - HANWEI\")\n",
+ "sheetMQ309A = book.sheet_by_name(\"MQ309A - HANWEI\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0.1 \t \t \t \t \n",
+ "0.2 \t \t \t \t \n",
+ "0.3 \t \t \t \t \n",
+ "0.4 \t \t \t \t \n",
+ "0.5 \t \t \t \t \n",
+ "0.6 \t \t \t \t \n",
+ "0.7 \t \t \t \t \n",
+ "0.8 \t \t \t \t \n",
+ "0.9 \t 5000.0 \t \t \t \n",
+ "1.0 \t \t 1000.0 \t \t \n",
+ "2.0 \t 1000.0 \t 200.0 \t \t \n",
+ "3.0 \t 200.0 \t \t 1000.0 \t 5000.0\n",
+ "4.0 \t \t \t 200.0 \t 200.0\n",
+ "5.0 \t \t 4000.0 \t \t \n",
+ "6.0 \t \t \t \t \n",
+ "7.0 \t \t \t \t \n",
+ "8.0 \t \t \t \t \n",
+ "9.0 \t \t \t \t \n",
+ "10.0 \t \t \t \t \n"
+ ]
+ }
+ ],
+ "source": [
+ "for row_index in range(1,20): #reading first columns\n",
+ " RsR0, CH4, CO, H2, Alcohol = sheetMQ4.row_values(row_index, start_colx=0, end_colx=5)\n",
+ " print(RsR0, \"\t\", CH4, \"\t\", CO, \"\t\", H2, \"\t\", Alcohol)\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "x_MQ4 = sheetMQ3.col_values(0)[2:]\n",
+ "MQ4_CH4 = sheetMQ3.col_values(1)[2:]\n",
+ "MQ4_CO = sheetMQ3.col_values(2)[2:]\n",
+ "MQ4_H2 = sheetMQ3.col_values(3)[2:]\n",
+ "MQ4_Alcohol = sheetMQ3.col_values(4)[2:]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def zero_to_nan(values):\n",
+ " \"\"\"Replace every 0 with 'nan' and return a copy.\"\"\"\n",
+ " return [float('nan') if x==0 else x for x in values]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "MQ4_CH4 =zero_to_nan(MQ4_CH4)\n",
+ "MQ4_CO =zero_to_nan(MQ4_CO)\n",
+ "MQ4_H2 =zero_to_nan(MQ4_H2)\n",
+ "MQ4_Alcohol =zero_to_nan(MQ4_Alcohol)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {
+ "scrolled": false
+ },
+ "outputs": [],
+ "source": [
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "from sklearn.datasets import load_iris\n",
+ "#from sklearn.cross_validation import train_test_split\n",
+ "from sklearn.tree import DecisionTreeClassifier\n",
+ "from sklearn import datasets\n",
+ "from sklearn import linear_model\n",
+ "\n",
+ "dataCH4 = {'RsRo': x_MQ4, 'CH4': MQ4_CH4}\n",
+ "dataCO = {'RsRo': x_MQ4, 'CO': MQ4_CO}\n",
+ "dataH2 = {'RsRo': x_MQ4, 'H2': MQ4_H2}\n",
+ "dataAlcohol = {'RsRo': x_MQ4, 'Alcohol': MQ4_Alcohol}\n",
+ "\n",
+ "dfMQ4_CH4 = pd.DataFrame(dataCH4)\n",
+ "dfMQ4_CO = pd.DataFrame(dataCO)\n",
+ "dfMQ4_H2 = pd.DataFrame(dataH2)\n",
+ "dfMQ4_Alcohol = pd.DataFrame(dataAlcohol)\n",
+ "\n",
+ "dfMQ4_CH4['CH4'] = pd.to_numeric(dfMQ4_CH4['CH4'])\n",
+ "dfMQ4_CO['CO'] = pd.to_numeric(dfMQ4_CO['CO'])\n",
+ "dfMQ4_H2['H2'] = pd.to_numeric(dfMQ4_H2['H2'])\n",
+ "dfMQ4_Alcohol['Alcohol'] = pd.to_numeric(dfMQ4_Alcohol['Alcohol'])\n",
+ "\n",
+ "dfMQ4_CH4['CH4'] = dfMQ4_CH4['CH4'].replace('',None, regex=True)\n",
+ "dfMQ4_CO['CO'] = dfMQ4_CO['CO'].replace('',None, regex=True)\n",
+ "dfMQ4_H2['H2'] = dfMQ4_H2['H2'].replace('',None, regex=True)\n",
+ "dfMQ4_Alcohol['Alcohol'] = dfMQ4_Alcohol['Alcohol'].replace('',None, regex=True)\n",
+ "\n",
+ "#Global X_Predict variable\n",
+ "X_Predict = dfMQ4_Alcohol.RsRo.apply(lambda x: [x]).tolist()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#Model and train CH4\n",
+ "dataset2TrainCH4 = dfMQ4_CH4.copy()\n",
+ "dataset2TrainCH4.dropna(inplace=True)\n",
+ "X_trainCH4 = dataset2TrainCH4.RsRo.apply(lambda x: [x]).tolist()\n",
+ "y_trainCH4 = dataset2TrainCH4['CH4'].tolist()\n",
+ "model = linear_model.Lasso(alpha=0.1)\n",
+ "model.fit(X_trainCH4, y_trainCH4)\n",
+ "#Predict\n",
+ "CH4_Predicted = model.predict(X_Predict)\n",
+ "#save into MQ2\n",
+ "MQ4_CH4 = CH4_Predicted\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#Model and train CO\n",
+ "dataset2TrainCO = dfMQ4_CO.copy()\n",
+ "dataset2TrainCO.dropna(inplace=True)\n",
+ "X_trainCO = dataset2TrainCO.RsRo.apply(lambda x: [x]).tolist()\n",
+ "y_trainCO = dataset2TrainCO['CO'].tolist()\n",
+ "model = linear_model.Lasso(alpha=0.1)\n",
+ "model.fit(X_trainCO, y_trainCO)\n",
+ "#Predict\n",
+ "CO_Predicted = model.predict(X_Predict)\n",
+ "#save into MQ2\n",
+ "MQ4_CO = CO_Predicted"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#Model and train H2\n",
+ "dataset2TrainH2 = dfMQ4_H2.copy()\n",
+ "dataset2TrainH2.dropna(inplace=True)\n",
+ "X_trainH2 = dataset2TrainH2.RsRo.apply(lambda x: [x]).tolist()\n",
+ "y_trainH2 = dataset2TrainH2['H2'].tolist()\n",
+ "model = linear_model.Lasso(alpha=0.1)\n",
+ "model.fit(X_trainH2, y_trainH2)\n",
+ "#Predict\n",
+ "H2_Predicted = model.predict(X_Predict)\n",
+ "#save into MQ2\n",
+ "MQ4_H2 = H2_Predicted"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#Model and train Alcohol\n",
+ "dataset2TrainAlcohol = dfMQ4_Alcohol.copy()\n",
+ "dataset2TrainAlcohol.dropna(inplace=True)\n",
+ "X_trainAlcohol = dataset2TrainAlcohol.RsRo.apply(lambda x: [x]).tolist()\n",
+ "y_trainAlcohol = dataset2TrainAlcohol['Alcohol'].tolist()\n",
+ "model = linear_model.Lasso(alpha=0.1)\n",
+ "model.fit(X_trainAlcohol, y_trainAlcohol)\n",
+ "#Predict\n",
+ "Alcohol_Predicted = model.predict(X_Predict)\n",
+ "#save into MQ2\n",
+ "MQ4_Alcohol = Alcohol_Predicted"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\r\n",
+ "\r\n",
+ "\r\n",
+ "\r\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "%config InlineBackend.figure_formats = ['svg']\n",
+ "%matplotlib inline\n",
+ "import matplotlib.pyplot as plt\n",
+ "import matplotlib.lines as mlines\n",
+ "import matplotlib.transforms as mtransforms\n",
+ "\n",
+ "fig, ax = plt.subplots()\n",
+ "\n",
+ "fig.set_size_inches(9, 5.5, forward=True)\n",
+ "fig.set_dpi(200)\n",
+ "\n",
+ "# only these two lines are calibration curves\n",
+ "plt.plot(MQ4_CH4, x_MQ4, marker='o', linewidth=1, label='CH4')\n",
+ "plt.plot(MQ4_CO, x_MQ4, marker='o', linewidth=1, label='CO')\n",
+ "plt.plot(MQ4_H2, x_MQ4, marker='o', linewidth=1, label='H2')\n",
+ "plt.plot(MQ4_Alcohol, x_MQ4, marker='o', linewidth=1, label='Alcohol')\n",
+ "\n",
+ "# reference line, legends, and axis labels\n",
+ "#line = mlines.Line2D([0, 1], [0, 1], color='black')\n",
+ "#transform = ax.transAxes\n",
+ "#line.set_transform(transform)\n",
+ "#ax.add_line(line)\n",
+ "plt.yscale('log')\n",
+ "plt.xscale('log')\n",
+ "plt.legend()\n",
+ "\n",
+ "plt.grid(b=True, which='minor', color='lightgrey', linestyle='--')\n",
+ "\n",
+ "fig.suptitle('Calibration plot for MQ-4 data')\n",
+ "ax.set_xlabel('PPM Concentration')\n",
+ "ax.set_ylabel('Rs/Ro')\n",
+ "\n",
+ "\n",
+ "#Save image\n",
+ "plt.savefig('MQ4.svg', format = 'svg', dpi = 1200)\n",
+ "plt.savefig('MQ4.png')\n",
+ "plt.savefig('MQ4.eps', format = 'eps', dpi = 1200)"
+ ]
+ },
+ {
+ "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.3"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}