Skip to content

Instantly share code, notes, and snippets.

@clementpoiret
Last active March 25, 2020 14:28
Show Gist options
  • Save clementpoiret/0dc4021a3e81f0c60fa49f9d5dc7c602 to your computer and use it in GitHub Desktop.
Save clementpoiret/0dc4021a3e81f0c60fa49f9d5dc7c602 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import pandas as pd\n",
"import pingouin as pg\n",
"import seaborn as sns\n",
"import tensorflow as tf\n",
"from sklearn.model_selection import KFold\n",
"from sklearn.preprocessing import MinMaxScaler, StandardScaler\n",
"from tensorflow.keras.activations import relu, sigmoid\n",
"from tensorflow.keras.callbacks import CSVLogger\n",
"from tensorflow.keras.layers import BatchNormalization, Dense, Input\n",
"from tensorflow.keras.models import Model"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def get_dataset(path, pheno, shape, kind, standardize=False):\n",
" connectivities = np.load(path, allow_pickle=True)\n",
"\n",
" connectivity = connectivities[kind] \n",
"\n",
" pheno = pd.read_csv(pheno)\n",
" pheno = pheno[pheno.iloc[:, 0].isin(connectivity.keys())]\n",
"\n",
" #subjects = pheno.iloc[:, 0]\n",
" subjects = np.array(list(connectivity.keys()))\n",
" subjects = subjects[np.isin(subjects, pheno.iloc[:, 0])]\n",
" \n",
" X = np.array([\n",
" connectivity[subject][np.tril_indices(shape, k=-1)] for subject in subjects\n",
" ])\n",
" X = np.hstack((X, np.array([pheno[pheno.iloc[:, 0]==ID].Sex.values[0] for ID in subjects]).reshape(-1,1)))\n",
" \n",
" sc_X = StandardScaler()\n",
" \n",
" if standardize:\n",
" X = sc_X.fit_transform(X)\n",
"\n",
" y = np.array([pheno[pheno.iloc[:, 0]==ID].Age.values[0] for ID in subjects]).reshape(-1,1)\n",
" sc_y = MinMaxScaler()\n",
" y = sc_y.fit_transform(y)\n",
" \n",
" return (X, y, sc_X, sc_y)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def get_model():\n",
" input = Input(shape=(X.shape[1]))\n",
" a = Dense(128,\n",
" activation='relu',\n",
" kernel_initializer='he_uniform')(input)\n",
" a = tf.keras.layers.Dropout(0.5)(a)\n",
" a = Dense(128,\n",
" activation='relu',\n",
" kernel_initializer='he_uniform')(a)\n",
" a = tf.keras.layers.Dropout(0.5)(a)\n",
" a = Dense(128,\n",
" activation='relu',\n",
" kernel_initializer='he_uniform')(a)\n",
" a = tf.keras.layers.Dropout(0.5)(a)\n",
" a = Dense(1, activation='sigmoid')(a)\n",
"\n",
" model = Model(inputs=[input], outputs=[a])\n",
"\n",
" model.compile(optimizer='adam',\n",
" loss=\"mean_squared_error\",\n",
" metrics=[\"mean_absolute_error\"])\n",
" return model"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'correlation': {'old': 'data/cbic_r7_msdl_correlation_matrices.pkl',\n",
" 'new': 'data/1584804874451_64subjects_correlation.pkl'},\n",
" 'partial_correlation': {'old': 'data/cbic_r7_msdl_partial correlation_matrices.pkl',\n",
" 'new': 'data/1584806176292_64subjects_partial-correlation.pkl'}}"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"datasets = {'correlation': {'old': 'data/cbic_r7_msdl_correlation_matrices.pkl',\n",
" 'new': 'data/1584804874451_64subjects_correlation.pkl'},\n",
" 'partial_correlation': {'old': 'data/cbic_r7_msdl_partial correlation_matrices.pkl',\n",
" 'new': 'data/1584806176292_64subjects_partial-correlation.pkl'}}\n",
"datasets"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'data/cbic_r7_msdl_correlation_matrices.pkl'"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"datasets['correlation']['old']"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"tags": [
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend",
"outputPrepend"
]
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Trial 0\n",
"Training on correlation\n",
"7/7 [==============================] - 0s 802us/sample - loss: 0.0740 - mean_absolute_error: 0.2326\n",
"7/7 [==============================] - 0s 805us/sample - loss: 0.0702 - mean_absolute_error: 0.1735\n",
"7/7 [==============================] - 0s 802us/sample - loss: 0.1075 - mean_absolute_error: 0.3009\n",
"6/6 [==============================] - 0s 933us/sample - loss: 0.0457 - mean_absolute_error: 0.1847\n",
"6/6 [==============================] - 0s 907us/sample - loss: 0.0119 - mean_absolute_error: 0.0988\n",
"6/6 [==============================] - 0s 943us/sample - loss: 0.0806 - mean_absolute_error: 0.2346\n",
"6/6 [==============================] - 0s 883us/sample - loss: 0.0602 - mean_absolute_error: 0.2078\n",
"6/6 [==============================] - 0s 789us/sample - loss: 0.0282 - mean_absolute_error: 0.1338\n",
"6/6 [==============================] - 0s 506us/sample - loss: 0.0584 - mean_absolute_error: 0.1904\n",
"6/6 [==============================] - 0s 916us/sample - loss: 0.0532 - mean_absolute_error: 0.1885\n",
"Training on partial correlation\n",
"7/7 [==============================] - 0s 785us/sample - loss: 0.0883 - mean_absolute_error: 0.2447\n",
"7/7 [==============================] - 0s 785us/sample - loss: 0.0461 - mean_absolute_error: 0.1828\n",
"7/7 [==============================] - 0s 842us/sample - loss: 0.0419 - mean_absolute_error: 0.1640\n",
"6/6 [==============================] - 0s 966us/sample - loss: 0.0486 - mean_absolute_error: 0.1937\n",
"6/6 [==============================] - 0s 938us/sample - loss: 0.0674 - mean_absolute_error: 0.2075\n",
"6/6 [==============================] - 0s 904us/sample - loss: 0.0595 - mean_absolute_error: 0.1881\n",
"6/6 [==============================] - 0s 893us/sample - loss: 0.0333 - mean_absolute_error: 0.1623\n",
"6/6 [==============================] - 0s 933us/sample - loss: 0.0336 - mean_absolute_error: 0.1463\n",
"6/6 [==============================] - 0s 938us/sample - loss: 0.0708 - mean_absolute_error: 0.2342\n",
"6/6 [==============================] - 0s 912us/sample - loss: 0.1105 - mean_absolute_error: 0.2601\n",
"Training on tangent\n",
"7/7 [==============================] - 0s 782us/sample - loss: 0.0452 - mean_absolute_error: 0.1810\n",
"7/7 [==============================] - 0s 715us/sample - loss: 0.0952 - mean_absolute_error: 0.2774\n",
"7/7 [==============================] - 0s 762us/sample - loss: 0.0333 - mean_absolute_error: 0.1549\n",
"6/6 [==============================] - 0s 344us/sample - loss: 0.0703 - mean_absolute_error: 0.2336\n",
"6/6 [==============================] - 0s 951us/sample - loss: 0.0772 - mean_absolute_error: 0.1817\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.0630 - mean_absolute_error: 0.2378\n",
"6/6 [==============================] - 0s 305us/sample - loss: 0.0098 - mean_absolute_error: 0.0855\n",
"6/6 [==============================] - 0s 931us/sample - loss: 0.0500 - mean_absolute_error: 0.1930\n",
"6/6 [==============================] - 0s 905us/sample - loss: 0.1243 - mean_absolute_error: 0.2955\n",
"6/6 [==============================] - 0s 889us/sample - loss: 0.0777 - mean_absolute_error: 0.2629\n",
"Trial 1\n",
"Training on correlation\n",
"7/7 [==============================] - 0s 762us/sample - loss: 0.1238 - mean_absolute_error: 0.2961\n",
"7/7 [==============================] - 0s 802us/sample - loss: 0.0361 - mean_absolute_error: 0.1706\n",
"7/7 [==============================] - 0s 825us/sample - loss: 0.1038 - mean_absolute_error: 0.2672\n",
"6/6 [==============================] - 0s 912us/sample - loss: 0.0821 - mean_absolute_error: 0.2716\n",
"6/6 [==============================] - 0s 938us/sample - loss: 0.0294 - mean_absolute_error: 0.1569\n",
"6/6 [==============================] - 0s 926us/sample - loss: 0.1056 - mean_absolute_error: 0.2988\n",
"6/6 [==============================] - 0s 911us/sample - loss: 0.0360 - mean_absolute_error: 0.1593\n",
"6/6 [==============================] - 0s 934us/sample - loss: 0.0575 - mean_absolute_error: 0.1981\n",
"6/6 [==============================] - 0s 309us/sample - loss: 0.1032 - mean_absolute_error: 0.2538\n",
"6/6 [==============================] - 0s 930us/sample - loss: 0.0441 - mean_absolute_error: 0.1750\n",
"Training on partial correlation\n",
"7/7 [==============================] - 0s 730us/sample - loss: 0.0221 - mean_absolute_error: 0.1278\n",
"7/7 [==============================] - 0s 733us/sample - loss: 0.0759 - mean_absolute_error: 0.2464\n",
"7/7 [==============================] - 0s 752us/sample - loss: 0.0741 - mean_absolute_error: 0.1657\n",
"6/6 [==============================] - 0s 923us/sample - loss: 0.0677 - mean_absolute_error: 0.2115\n",
"6/6 [==============================] - 0s 922us/sample - loss: 0.0376 - mean_absolute_error: 0.1511\n",
"6/6 [==============================] - 0s 891us/sample - loss: 0.0641 - mean_absolute_error: 0.2233\n",
"6/6 [==============================] - 0s 322us/sample - loss: 0.0643 - mean_absolute_error: 0.1987\n",
"6/6 [==============================] - 0s 928us/sample - loss: 0.0734 - mean_absolute_error: 0.2381\n",
"6/6 [==============================] - 0s 921us/sample - loss: 0.0311 - mean_absolute_error: 0.1577\n",
"6/6 [==============================] - 0s 893us/sample - loss: 0.0793 - mean_absolute_error: 0.2568\n",
"Training on tangent\n",
"7/7 [==============================] - 0s 754us/sample - loss: 0.0481 - mean_absolute_error: 0.1973\n",
"7/7 [==============================] - 0s 798us/sample - loss: 0.0259 - mean_absolute_error: 0.1466\n",
"7/7 [==============================] - 0s 351us/sample - loss: 0.0630 - mean_absolute_error: 0.2013\n",
"6/6 [==============================] - 0s 920us/sample - loss: 0.0704 - mean_absolute_error: 0.2326\n",
"6/6 [==============================] - 0s 899us/sample - loss: 0.0474 - mean_absolute_error: 0.1910\n",
"6/6 [==============================] - 0s 905us/sample - loss: 0.1100 - mean_absolute_error: 0.2748\n",
"6/6 [==============================] - 0s 917us/sample - loss: 0.1202 - mean_absolute_error: 0.2881\n",
"6/6 [==============================] - 0s 907us/sample - loss: 0.0515 - mean_absolute_error: 0.1951\n",
"6/6 [==============================] - 0s 921us/sample - loss: 0.0786 - mean_absolute_error: 0.2596\n",
"6/6 [==============================] - 0s 898us/sample - loss: 0.0766 - mean_absolute_error: 0.2505\n",
"Trial 2\n",
"Training on correlation\n",
"7/7 [==============================] - 0s 804us/sample - loss: 0.0785 - mean_absolute_error: 0.2542\n",
"7/7 [==============================] - 0s 765us/sample - loss: 0.0352 - mean_absolute_error: 0.1529\n",
"7/7 [==============================] - 0s 783us/sample - loss: 0.0515 - mean_absolute_error: 0.1866\n",
"6/6 [==============================] - 0s 252us/sample - loss: 0.0649 - mean_absolute_error: 0.2156\n",
"6/6 [==============================] - 0s 906us/sample - loss: 0.0866 - mean_absolute_error: 0.2406\n",
"6/6 [==============================] - 0s 900us/sample - loss: 0.0538 - mean_absolute_error: 0.1873\n",
"6/6 [==============================] - 0s 897us/sample - loss: 0.0658 - mean_absolute_error: 0.1828\n",
"6/6 [==============================] - 0s 901us/sample - loss: 0.0787 - mean_absolute_error: 0.2125\n",
"6/6 [==============================] - 0s 939us/sample - loss: 0.0793 - mean_absolute_error: 0.2321\n",
"6/6 [==============================] - 0s 942us/sample - loss: 0.0350 - mean_absolute_error: 0.1530\n",
"Training on partial correlation\n",
"7/7 [==============================] - 0s 839us/sample - loss: 0.0771 - mean_absolute_error: 0.2391\n",
"7/7 [==============================] - 0s 768us/sample - loss: 0.0798 - mean_absolute_error: 0.2191\n",
"7/7 [==============================] - 0s 801us/sample - loss: 0.0309 - mean_absolute_error: 0.1515\n",
"6/6 [==============================] - 0s 908us/sample - loss: 0.0226 - mean_absolute_error: 0.1262\n",
"6/6 [==============================] - 0s 912us/sample - loss: 0.0439 - mean_absolute_error: 0.1897\n",
"6/6 [==============================] - 0s 925us/sample - loss: 0.0489 - mean_absolute_error: 0.1738\n",
"6/6 [==============================] - 0s 662us/sample - loss: 0.0052 - mean_absolute_error: 0.0625\n",
"6/6 [==============================] - 0s 900us/sample - loss: 0.0965 - mean_absolute_error: 0.2774\n",
"6/6 [==============================] - 0s 901us/sample - loss: 0.0950 - mean_absolute_error: 0.2928\n",
"6/6 [==============================] - 0s 936us/sample - loss: 0.0595 - mean_absolute_error: 0.2185\n",
"Training on tangent\n",
"7/7 [==============================] - 0s 803us/sample - loss: 0.0730 - mean_absolute_error: 0.1900\n",
"7/7 [==============================] - 0s 798us/sample - loss: 0.0362 - mean_absolute_error: 0.1450\n",
"7/7 [==============================] - 0s 793us/sample - loss: 0.1019 - mean_absolute_error: 0.2417\n",
"6/6 [==============================] - 0s 917us/sample - loss: 0.0257 - mean_absolute_error: 0.1355\n",
"6/6 [==============================] - 0s 273us/sample - loss: 0.1171 - mean_absolute_error: 0.2872\n",
"6/6 [==============================] - 0s 907us/sample - loss: 0.0692 - mean_absolute_error: 0.2468\n",
"6/6 [==============================] - 0s 931us/sample - loss: 0.0412 - mean_absolute_error: 0.1778\n",
"6/6 [==============================] - 0s 912us/sample - loss: 0.0288 - mean_absolute_error: 0.1488\n",
"6/6 [==============================] - 0s 309us/sample - loss: 0.0788 - mean_absolute_error: 0.2624\n",
"6/6 [==============================] - 0s 921us/sample - loss: 0.0733 - mean_absolute_error: 0.2248\n",
"Trial 3\n",
"Training on correlation\n",
"7/7 [==============================] - 0s 808us/sample - loss: 0.0776 - mean_absolute_error: 0.2312\n",
"7/7 [==============================] - 0s 844us/sample - loss: 0.0333 - mean_absolute_error: 0.1527\n",
"7/7 [==============================] - 0s 798us/sample - loss: 0.0661 - mean_absolute_error: 0.2083\n",
"6/6 [==============================] - 0s 946us/sample - loss: 0.0506 - mean_absolute_error: 0.1817\n",
"6/6 [==============================] - 0s 923us/sample - loss: 0.1007 - mean_absolute_error: 0.2543\n",
"6/6 [==============================] - 0s 934us/sample - loss: 0.0421 - mean_absolute_error: 0.1752\n",
"6/6 [==============================] - 0s 900us/sample - loss: 0.0408 - mean_absolute_error: 0.1799\n",
"6/6 [==============================] - 0s 891us/sample - loss: 0.0941 - mean_absolute_error: 0.2434\n",
"6/6 [==============================] - 0s 940us/sample - loss: 0.1099 - mean_absolute_error: 0.3062\n",
"6/6 [==============================] - 0s 924us/sample - loss: 0.0742 - mean_absolute_error: 0.2227\n",
"Training on partial correlation\n",
"7/7 [==============================] - 0s 861us/sample - loss: 0.0772 - mean_absolute_error: 0.2595\n",
"7/7 [==============================] - 0s 800us/sample - loss: 0.0260 - mean_absolute_error: 0.1158\n",
"7/7 [==============================] - 0s 798us/sample - loss: 0.1019 - mean_absolute_error: 0.2297\n",
"6/6 [==============================] - 0s 276us/sample - loss: 0.0542 - mean_absolute_error: 0.1761\n",
"6/6 [==============================] - 0s 933us/sample - loss: 0.0415 - mean_absolute_error: 0.1789\n",
"6/6 [==============================] - 0s 892us/sample - loss: 0.0743 - mean_absolute_error: 0.2625\n",
"6/6 [==============================] - 0s 894us/sample - loss: 0.0607 - mean_absolute_error: 0.2246\n",
"6/6 [==============================] - 0s 906us/sample - loss: 0.0321 - mean_absolute_error: 0.1591\n",
"6/6 [==============================] - 0s 912us/sample - loss: 0.0234 - mean_absolute_error: 0.1234\n",
"6/6 [==============================] - 0s 862us/sample - loss: 0.0686 - mean_absolute_error: 0.2183\n",
"Training on tangent\n",
"7/7 [==============================] - 0s 784us/sample - loss: 0.0683 - mean_absolute_error: 0.2378\n",
"7/7 [==============================] - 0s 870us/sample - loss: 0.0739 - mean_absolute_error: 0.2548\n",
"7/7 [==============================] - 0s 796us/sample - loss: 0.0588 - mean_absolute_error: 0.1967\n",
"6/6 [==============================] - 0s 897us/sample - loss: 0.1128 - mean_absolute_error: 0.2793\n",
"6/6 [==============================] - 0s 987us/sample - loss: 0.0604 - mean_absolute_error: 0.2233\n",
"6/6 [==============================] - 0s 275us/sample - loss: 0.1029 - mean_absolute_error: 0.2946\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.0799 - mean_absolute_error: 0.2140\n",
"6/6 [==============================] - 0s 244us/sample - loss: 0.0361 - mean_absolute_error: 0.1595\n",
"6/6 [==============================] - 0s 404us/sample - loss: 0.0291 - mean_absolute_error: 0.1317\n",
"6/6 [==============================] - 0s 293us/sample - loss: 0.0160 - mean_absolute_error: 0.1152\n",
"Trial 4\n",
"Training on correlation\n",
"7/7 [==============================] - 0s 225us/sample - loss: 0.1204 - mean_absolute_error: 0.2923\n",
"7/7 [==============================] - 0s 750us/sample - loss: 0.0650 - mean_absolute_error: 0.2194\n",
"7/7 [==============================] - 0s 804us/sample - loss: 0.0174 - mean_absolute_error: 0.1125\n",
"6/6 [==============================] - 0s 927us/sample - loss: 0.0272 - mean_absolute_error: 0.1321\n",
"6/6 [==============================] - 0s 288us/sample - loss: 0.0299 - mean_absolute_error: 0.1379\n",
"6/6 [==============================] - 0s 923us/sample - loss: 0.0836 - mean_absolute_error: 0.1900\n",
"6/6 [==============================] - 0s 955us/sample - loss: 0.0769 - mean_absolute_error: 0.2227\n",
"6/6 [==============================] - 0s 262us/sample - loss: 0.0485 - mean_absolute_error: 0.2060\n",
"6/6 [==============================] - 0s 869us/sample - loss: 0.0422 - mean_absolute_error: 0.1765\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.0628 - mean_absolute_error: 0.1743\n",
"Training on partial correlation\n",
"7/7 [==============================] - 0s 741us/sample - loss: 0.0609 - mean_absolute_error: 0.2071\n",
"7/7 [==============================] - 0s 263us/sample - loss: 0.0746 - mean_absolute_error: 0.2587\n",
"7/7 [==============================] - 0s 735us/sample - loss: 0.0500 - mean_absolute_error: 0.1986\n",
"6/6 [==============================] - 0s 902us/sample - loss: 0.0572 - mean_absolute_error: 0.2031\n",
"6/6 [==============================] - 0s 834us/sample - loss: 0.0385 - mean_absolute_error: 0.1600\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.1265 - mean_absolute_error: 0.2646\n",
"6/6 [==============================] - 0s 306us/sample - loss: 0.0753 - mean_absolute_error: 0.2264\n",
"6/6 [==============================] - 0s 988us/sample - loss: 0.0160 - mean_absolute_error: 0.1005\n",
"6/6 [==============================] - 0s 563us/sample - loss: 0.0601 - mean_absolute_error: 0.2056\n",
"6/6 [==============================] - 0s 862us/sample - loss: 0.0522 - mean_absolute_error: 0.1890\n",
"Training on tangent\n",
"7/7 [==============================] - 0s 276us/sample - loss: 0.0480 - mean_absolute_error: 0.1842\n",
"7/7 [==============================] - 0s 362us/sample - loss: 0.0456 - mean_absolute_error: 0.1633\n",
"7/7 [==============================] - 0s 677us/sample - loss: 0.0541 - mean_absolute_error: 0.2021\n",
"6/6 [==============================] - 0s 318us/sample - loss: 0.0171 - mean_absolute_error: 0.1197\n",
"6/6 [==============================] - 0s 679us/sample - loss: 0.1223 - mean_absolute_error: 0.2916\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.1706 - mean_absolute_error: 0.3696\n",
"6/6 [==============================] - 0s 988us/sample - loss: 0.0442 - mean_absolute_error: 0.1880\n",
"6/6 [==============================] - 0s 997us/sample - loss: 0.0425 - mean_absolute_error: 0.1914\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.0802 - mean_absolute_error: 0.2344\n",
"6/6 [==============================] - 0s 232us/sample - loss: 0.0398 - mean_absolute_error: 0.1740\n",
"Trial 5\n",
"Training on correlation\n",
"7/7 [==============================] - 0s 981us/sample - loss: 0.1415 - mean_absolute_error: 0.2885\n",
"7/7 [==============================] - 0s 864us/sample - loss: 0.0434 - mean_absolute_error: 0.1790\n",
"7/7 [==============================] - 0s 327us/sample - loss: 0.0764 - mean_absolute_error: 0.2321\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.0347 - mean_absolute_error: 0.1629\n",
"6/6 [==============================] - 0s 284us/sample - loss: 0.0768 - mean_absolute_error: 0.2075\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.0673 - mean_absolute_error: 0.2276\n",
"6/6 [==============================] - 0s 279us/sample - loss: 0.0300 - mean_absolute_error: 0.1449\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.0605 - mean_absolute_error: 0.1756\n",
"6/6 [==============================] - 0s 255us/sample - loss: 0.0710 - mean_absolute_error: 0.2401\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.0468 - mean_absolute_error: 0.1870\n",
"Training on partial correlation\n",
"7/7 [==============================] - 0s 251us/sample - loss: 0.0821 - mean_absolute_error: 0.2667\n",
"7/7 [==============================] - 0s 893us/sample - loss: 0.0741 - mean_absolute_error: 0.2365\n",
"7/7 [==============================] - 0s 416us/sample - loss: 0.0875 - mean_absolute_error: 0.1939\n",
"6/6 [==============================] - 0s 224us/sample - loss: 0.0956 - mean_absolute_error: 0.2819\n",
"6/6 [==============================] - 0s 674us/sample - loss: 0.0955 - mean_absolute_error: 0.2713\n",
"6/6 [==============================] - 0s 290us/sample - loss: 0.0228 - mean_absolute_error: 0.1305\n",
"6/6 [==============================] - 0s 2ms/sample - loss: 0.0119 - mean_absolute_error: 0.0880\n",
"6/6 [==============================] - 0s 906us/sample - loss: 0.0565 - mean_absolute_error: 0.1853\n",
"6/6 [==============================] - 0s 260us/sample - loss: 0.0283 - mean_absolute_error: 0.1247\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.0577 - mean_absolute_error: 0.2079\n",
"Training on tangent\n",
"7/7 [==============================] - 0s 267us/sample - loss: 0.0533 - mean_absolute_error: 0.1992\n",
"7/7 [==============================] - 0s 533us/sample - loss: 0.0654 - mean_absolute_error: 0.1836\n",
"7/7 [==============================] - 0s 936us/sample - loss: 0.1033 - mean_absolute_error: 0.2484\n",
"6/6 [==============================] - 0s 572us/sample - loss: 0.0505 - mean_absolute_error: 0.1915\n",
"6/6 [==============================] - 0s 322us/sample - loss: 0.0440 - mean_absolute_error: 0.1897\n",
"6/6 [==============================] - 0s 477us/sample - loss: 0.0793 - mean_absolute_error: 0.2582\n",
"6/6 [==============================] - 0s 917us/sample - loss: 0.0435 - mean_absolute_error: 0.1628\n",
"6/6 [==============================] - 0s 767us/sample - loss: 0.0535 - mean_absolute_error: 0.2175\n",
"6/6 [==============================] - 0s 280us/sample - loss: 0.0275 - mean_absolute_error: 0.1438\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.0693 - mean_absolute_error: 0.2387\n",
"Trial 6\n",
"Training on correlation\n",
"7/7 [==============================] - 0s 905us/sample - loss: 0.0713 - mean_absolute_error: 0.2121\n",
"7/7 [==============================] - 0s 716us/sample - loss: 0.0634 - mean_absolute_error: 0.1746\n",
"7/7 [==============================] - 0s 1ms/sample - loss: 0.0748 - mean_absolute_error: 0.2047\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.0794 - mean_absolute_error: 0.2150\n",
"6/6 [==============================] - 0s 547us/sample - loss: 0.1270 - mean_absolute_error: 0.3197\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.0259 - mean_absolute_error: 0.1341\n",
"6/6 [==============================] - 0s 499us/sample - loss: 0.0428 - mean_absolute_error: 0.1861\n",
"6/6 [==============================] - 0s 517us/sample - loss: 0.0234 - mean_absolute_error: 0.1297\n",
"6/6 [==============================] - 0s 686us/sample - loss: 0.0382 - mean_absolute_error: 0.1699\n",
"6/6 [==============================] - 0s 978us/sample - loss: 0.0785 - mean_absolute_error: 0.2470\n",
"Training on partial correlation\n",
"7/7 [==============================] - 0s 959us/sample - loss: 0.0727 - mean_absolute_error: 0.2159\n",
"7/7 [==============================] - 0s 383us/sample - loss: 0.0526 - mean_absolute_error: 0.2008\n",
"7/7 [==============================] - 0s 847us/sample - loss: 0.0500 - mean_absolute_error: 0.1999\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.0530 - mean_absolute_error: 0.1416\n",
"6/6 [==============================] - 0s 2ms/sample - loss: 0.0444 - mean_absolute_error: 0.1871\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.1124 - mean_absolute_error: 0.2961\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.1466 - mean_absolute_error: 0.2916\n",
"6/6 [==============================] - 0s 791us/sample - loss: 0.0546 - mean_absolute_error: 0.2056\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.0428 - mean_absolute_error: 0.1833\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.0532 - mean_absolute_error: 0.2207\n",
"Training on tangent\n",
"7/7 [==============================] - 0s 945us/sample - loss: 0.0673 - mean_absolute_error: 0.2166\n",
"7/7 [==============================] - 0s 872us/sample - loss: 0.0995 - mean_absolute_error: 0.2476\n",
"7/7 [==============================] - 0s 1ms/sample - loss: 0.0450 - mean_absolute_error: 0.1961\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.0191 - mean_absolute_error: 0.1074\n",
"6/6 [==============================] - 0s 884us/sample - loss: 0.0590 - mean_absolute_error: 0.1855\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.0501 - mean_absolute_error: 0.1932\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.0360 - mean_absolute_error: 0.1685\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.0646 - mean_absolute_error: 0.2059\n",
"6/6 [==============================] - 0s 409us/sample - loss: 0.1237 - mean_absolute_error: 0.3014\n",
"6/6 [==============================] - 0s 919us/sample - loss: 0.0691 - mean_absolute_error: 0.2478\n",
"Trial 7\n",
"Training on correlation\n",
"7/7 [==============================] - 0s 810us/sample - loss: 0.0586 - mean_absolute_error: 0.1809\n",
"7/7 [==============================] - 0s 811us/sample - loss: 0.1151 - mean_absolute_error: 0.2772\n",
"7/7 [==============================] - 0s 800us/sample - loss: 0.0574 - mean_absolute_error: 0.2294\n",
"6/6 [==============================] - 0s 926us/sample - loss: 0.0357 - mean_absolute_error: 0.1550\n",
"6/6 [==============================] - 0s 267us/sample - loss: 0.0334 - mean_absolute_error: 0.1803\n",
"6/6 [==============================] - 0s 897us/sample - loss: 0.1120 - mean_absolute_error: 0.2855\n",
"6/6 [==============================] - 0s 870us/sample - loss: 0.0152 - mean_absolute_error: 0.0787\n",
"6/6 [==============================] - 0s 939us/sample - loss: 0.0717 - mean_absolute_error: 0.2230\n",
"6/6 [==============================] - 0s 954us/sample - loss: 0.0525 - mean_absolute_error: 0.2049\n",
"6/6 [==============================] - 0s 939us/sample - loss: 0.0886 - mean_absolute_error: 0.2342\n",
"Training on partial correlation\n",
"7/7 [==============================] - 0s 808us/sample - loss: 0.1724 - mean_absolute_error: 0.3516\n",
"7/7 [==============================] - 0s 837us/sample - loss: 0.0582 - mean_absolute_error: 0.2040\n",
"7/7 [==============================] - 0s 772us/sample - loss: 0.0280 - mean_absolute_error: 0.1036\n",
"6/6 [==============================] - 0s 969us/sample - loss: 0.0762 - mean_absolute_error: 0.2497\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.0754 - mean_absolute_error: 0.2592\n",
"6/6 [==============================] - 0s 826us/sample - loss: 0.0360 - mean_absolute_error: 0.1747\n",
"6/6 [==============================] - 0s 925us/sample - loss: 0.0178 - mean_absolute_error: 0.1148\n",
"6/6 [==============================] - 0s 909us/sample - loss: 0.0539 - mean_absolute_error: 0.2069\n",
"6/6 [==============================] - 0s 906us/sample - loss: 0.0537 - mean_absolute_error: 0.2047\n",
"6/6 [==============================] - 0s 285us/sample - loss: 0.0418 - mean_absolute_error: 0.1557\n",
"Training on tangent\n",
"7/7 [==============================] - 0s 843us/sample - loss: 0.0562 - mean_absolute_error: 0.2163\n",
"7/7 [==============================] - 0s 837us/sample - loss: 0.0686 - mean_absolute_error: 0.2267\n",
"7/7 [==============================] - 0s 807us/sample - loss: 0.0737 - mean_absolute_error: 0.2508\n",
"6/6 [==============================] - 0s 288us/sample - loss: 0.0822 - mean_absolute_error: 0.2367\n",
"6/6 [==============================] - 0s 938us/sample - loss: 0.0538 - mean_absolute_error: 0.1928\n",
"6/6 [==============================] - 0s 943us/sample - loss: 0.0615 - mean_absolute_error: 0.1890\n",
"6/6 [==============================] - 0s 257us/sample - loss: 0.0982 - mean_absolute_error: 0.2579\n",
"6/6 [==============================] - 0s 919us/sample - loss: 0.0496 - mean_absolute_error: 0.2069\n",
"6/6 [==============================] - 0s 941us/sample - loss: 0.0385 - mean_absolute_error: 0.1550\n",
"6/6 [==============================] - 0s 933us/sample - loss: 0.0532 - mean_absolute_error: 0.2237\n",
"Trial 8\n",
"Training on correlation\n",
"7/7 [==============================] - 0s 772us/sample - loss: 0.0264 - mean_absolute_error: 0.1244\n",
"7/7 [==============================] - 0s 731us/sample - loss: 0.0594 - mean_absolute_error: 0.2268\n",
"7/7 [==============================] - 0s 855us/sample - loss: 0.0885 - mean_absolute_error: 0.2661\n",
"6/6 [==============================] - 0s 721us/sample - loss: 0.0791 - mean_absolute_error: 0.1958\n",
"6/6 [==============================] - 0s 505us/sample - loss: 0.0550 - mean_absolute_error: 0.1636\n",
"6/6 [==============================] - 0s 343us/sample - loss: 0.0356 - mean_absolute_error: 0.1718\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.0685 - mean_absolute_error: 0.2064\n",
"6/6 [==============================] - 0s 880us/sample - loss: 0.0572 - mean_absolute_error: 0.1924\n",
"6/6 [==============================] - 0s 610us/sample - loss: 0.0783 - mean_absolute_error: 0.2085\n",
"6/6 [==============================] - 0s 916us/sample - loss: 0.0664 - mean_absolute_error: 0.2025\n",
"Training on partial correlation\n",
"7/7 [==============================] - 0s 882us/sample - loss: 0.0728 - mean_absolute_error: 0.2641\n",
"7/7 [==============================] - 0s 825us/sample - loss: 0.1274 - mean_absolute_error: 0.2713\n",
"7/7 [==============================] - 0s 815us/sample - loss: 0.0502 - mean_absolute_error: 0.1512\n",
"6/6 [==============================] - 0s 912us/sample - loss: 0.0229 - mean_absolute_error: 0.1356\n",
"6/6 [==============================] - 0s 834us/sample - loss: 0.0431 - mean_absolute_error: 0.1871\n",
"6/6 [==============================] - 0s 888us/sample - loss: 0.0940 - mean_absolute_error: 0.2807\n",
"6/6 [==============================] - 0s 905us/sample - loss: 0.0362 - mean_absolute_error: 0.1667\n",
"6/6 [==============================] - 0s 926us/sample - loss: 0.0121 - mean_absolute_error: 0.0806\n",
"6/6 [==============================] - 0s 895us/sample - loss: 0.0706 - mean_absolute_error: 0.2234\n",
"6/6 [==============================] - 0s 938us/sample - loss: 0.0610 - mean_absolute_error: 0.2300\n",
"Training on tangent\n",
"7/7 [==============================] - 0s 298us/sample - loss: 0.1504 - mean_absolute_error: 0.2743\n",
"7/7 [==============================] - 0s 248us/sample - loss: 0.0381 - mean_absolute_error: 0.1486\n",
"7/7 [==============================] - 0s 255us/sample - loss: 0.0737 - mean_absolute_error: 0.2052\n",
"6/6 [==============================] - 0s 926us/sample - loss: 0.0322 - mean_absolute_error: 0.1492\n",
"6/6 [==============================] - 0s 887us/sample - loss: 0.0626 - mean_absolute_error: 0.2235\n",
"6/6 [==============================] - 0s 941us/sample - loss: 0.0486 - mean_absolute_error: 0.1727\n",
"6/6 [==============================] - 0s 290us/sample - loss: 0.0663 - mean_absolute_error: 0.2332\n",
"6/6 [==============================] - 0s 901us/sample - loss: 0.0659 - mean_absolute_error: 0.2235\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.0487 - mean_absolute_error: 0.2109\n",
"6/6 [==============================] - 0s 963us/sample - loss: 0.0609 - mean_absolute_error: 0.2249\n",
"Trial 9\n",
"Training on correlation\n",
"7/7 [==============================] - 0s 966us/sample - loss: 0.0525 - mean_absolute_error: 0.1725\n",
"7/7 [==============================] - 0s 823us/sample - loss: 0.0523 - mean_absolute_error: 0.1648\n",
"7/7 [==============================] - 0s 797us/sample - loss: 0.0355 - mean_absolute_error: 0.1643\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.0191 - mean_absolute_error: 0.1130\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.0453 - mean_absolute_error: 0.2010\n",
"6/6 [==============================] - 0s 373us/sample - loss: 0.0842 - mean_absolute_error: 0.2683\n",
"6/6 [==============================] - 0s 549us/sample - loss: 0.0745 - mean_absolute_error: 0.2271\n",
"6/6 [==============================] - 0s 940us/sample - loss: 0.0591 - mean_absolute_error: 0.2035\n",
"6/6 [==============================] - 0s 932us/sample - loss: 0.0873 - mean_absolute_error: 0.2229\n",
"6/6 [==============================] - 0s 944us/sample - loss: 0.0774 - mean_absolute_error: 0.2364\n",
"Training on partial correlation\n",
"7/7 [==============================] - 0s 899us/sample - loss: 0.0321 - mean_absolute_error: 0.1437\n",
"7/7 [==============================] - 0s 848us/sample - loss: 0.0598 - mean_absolute_error: 0.2197\n",
"7/7 [==============================] - 0s 811us/sample - loss: 0.0434 - mean_absolute_error: 0.1825\n",
"6/6 [==============================] - 0s 792us/sample - loss: 0.0642 - mean_absolute_error: 0.1745\n",
"6/6 [==============================] - 0s 932us/sample - loss: 0.1254 - mean_absolute_error: 0.2942\n",
"6/6 [==============================] - 0s 944us/sample - loss: 0.0487 - mean_absolute_error: 0.1717\n",
"6/6 [==============================] - 0s 904us/sample - loss: 0.1015 - mean_absolute_error: 0.2779\n",
"6/6 [==============================] - 0s 931us/sample - loss: 0.0362 - mean_absolute_error: 0.1620\n",
"6/6 [==============================] - 0s 936us/sample - loss: 0.0303 - mean_absolute_error: 0.1666\n",
"6/6 [==============================] - 0s 913us/sample - loss: 0.0694 - mean_absolute_error: 0.2388\n",
"Training on tangent\n",
"7/7 [==============================] - 0s 261us/sample - loss: 0.0426 - mean_absolute_error: 0.1846\n",
"7/7 [==============================] - 0s 766us/sample - loss: 0.0716 - mean_absolute_error: 0.2226\n",
"7/7 [==============================] - 0s 367us/sample - loss: 0.0968 - mean_absolute_error: 0.2530\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.0288 - mean_absolute_error: 0.1373\n",
"6/6 [==============================] - 0s 937us/sample - loss: 0.0577 - mean_absolute_error: 0.2095\n",
"6/6 [==============================] - 0s 377us/sample - loss: 0.0716 - mean_absolute_error: 0.1919\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.1049 - mean_absolute_error: 0.2761\n",
"6/6 [==============================] - 0s 289us/sample - loss: 0.0429 - mean_absolute_error: 0.1990\n",
"6/6 [==============================] - 0s 1ms/sample - loss: 0.0726 - mean_absolute_error: 0.2170\n",
"6/6 [==============================] - 0s 267us/sample - loss: 0.0267 - mean_absolute_error: 0.1470\n"
]
}
],
"source": [
"model = None\n",
"\n",
"scores = pd.DataFrame()\n",
"\n",
"trials = 10\n",
"\n",
"kinds = ['correlation', 'partial correlation', 'tangent']\n",
"\n",
"for trial in range(trials):\n",
" print(f'Trial {trial}')\n",
" kfold = KFold(n_splits=10, shuffle=True)\n",
" \n",
" for kind in kinds:\n",
" print('Training on {}'.format(kind))\n",
" \n",
" X, y, sc_X, sc_y = get_dataset('data/1585070166511_63subjects_correlation_partial-correlation_tangent.pkl',\n",
" 'data/HBN_R7_Pheno.csv',\n",
" 39,\n",
" kind=kind)\n",
" for split, (train, test) in enumerate(kfold.split(X, y)):\n",
" tf.keras.backend.clear_session()\n",
"\n",
" if model:\n",
" model.reset_states()\n",
" del model\n",
"\n",
" model = get_model()\n",
"\n",
" history = model.fit(X[train], y[train],\n",
" batch_size=16,\n",
" epochs=256,\n",
" verbose=0,\n",
" validation_split=0.2)\n",
"\n",
" score = model.evaluate(X[test], y[test])\n",
" scores = scores.append([[kind,\n",
" trial,\n",
" split,\n",
" history.history['loss'][-1],\n",
" history.history['val_loss'][-1],\n",
" history.history['mean_absolute_error'][-1],\n",
" history.history['val_mean_absolute_error'][-1],\n",
" score[0],\n",
" score[1]]])"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"scores.columns = ['kind',\n",
" 'trial',\n",
" 'split',\n",
" 'MSE',\n",
" 'val_MSE',\n",
" 'MAE',\n",
" 'val_MAE',\n",
" 'dev_MSE',\n",
" 'dev_MAE']\n",
"scores.to_csv('./scores.csv')"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>kind</th>\n",
" <th>trial</th>\n",
" <th>split</th>\n",
" <th>MSE</th>\n",
" <th>val_MSE</th>\n",
" <th>MAE</th>\n",
" <th>val_MAE</th>\n",
" <th>dev_MSE</th>\n",
" <th>dev_MAE</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>correlation</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.018553</td>\n",
" <td>0.074741</td>\n",
" <td>0.103415</td>\n",
" <td>0.225603</td>\n",
" <td>0.074033</td>\n",
" <td>0.232597</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>correlation</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0.017185</td>\n",
" <td>0.066889</td>\n",
" <td>0.105498</td>\n",
" <td>0.201655</td>\n",
" <td>0.070227</td>\n",
" <td>0.173453</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>correlation</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0.015297</td>\n",
" <td>0.047304</td>\n",
" <td>0.093099</td>\n",
" <td>0.169098</td>\n",
" <td>0.107540</td>\n",
" <td>0.300915</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>correlation</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>0.025425</td>\n",
" <td>0.032396</td>\n",
" <td>0.109083</td>\n",
" <td>0.133276</td>\n",
" <td>0.045701</td>\n",
" <td>0.184709</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>correlation</td>\n",
" <td>0</td>\n",
" <td>4</td>\n",
" <td>0.017808</td>\n",
" <td>0.043696</td>\n",
" <td>0.104037</td>\n",
" <td>0.161209</td>\n",
" <td>0.011879</td>\n",
" <td>0.098843</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" kind trial split MSE val_MSE MAE val_MAE \\\n",
"0 correlation 0 0 0.018553 0.074741 0.103415 0.225603 \n",
"0 correlation 0 1 0.017185 0.066889 0.105498 0.201655 \n",
"0 correlation 0 2 0.015297 0.047304 0.093099 0.169098 \n",
"0 correlation 0 3 0.025425 0.032396 0.109083 0.133276 \n",
"0 correlation 0 4 0.017808 0.043696 0.104037 0.161209 \n",
"\n",
" dev_MSE dev_MAE \n",
"0 0.074033 0.232597 \n",
"0 0.070227 0.173453 \n",
"0 0.107540 0.300915 \n",
"0 0.045701 0.184709 \n",
"0 0.011879 0.098843 "
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"scores.head()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f2b68145590>"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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tm0bjY2NzJw5c6S3FhEZc7W1taxcuZLvfOc79Pb2Atmnrg8++CDnnHMOjz/+OMlkkmQyyRNPPMG5556bc98rV67k4YcfpqenB8iuH7B9+/YB7UKhEFVVVdhsNnbu3MnGjRv7zvl8PkKh0KD9n3vuubz88su0tbUB8F//9V+sWLEi5/hERETGI+XmySenN6133HEHGzZsoL29nWuuuYaioiKeeeYZIFu0/q//9b8GXPOlL32Jr33tayxevJif/OQnvP/++1gsFux2O//6r/96SkwYFpGTw+2ycda8ilHpNxd33nknP/vZz7j88sux2+19y+rfeOONNDY29g0hOu+887jiiityvv+ll15Kd3d335wX0zT5zGc+w+mnn96v3Q033MA3v/lNnnrqKaZPn87ZZ5/dd2716tV861vf4r//+7/7Fns4ZM6cOXzjG9/g2muvBWDatGl8//vfzzk+ERGRY1FuVm7OJ8M0TXOsgziehoYGVq1axQsvvEBNTc1YhyMiY2zbtm3Mnz9/rMOQCWKwnxfllZHT91BEjqTcLEMxnNw84uHBIiIiIiIiIqMlL6sHi4yldLSXTDyS934tTg9W98DV4ERERGRy6E2EiSZjeevPbXfhc3jz1p+IZKlolQkvE48Q3fvXvPfrnnWmilYREZFJLJqMsTmwNW/9LalaoKJVZBRoeLCIiIiIiIiMWypaRUREREREZNxS0SoiIiIiIiLjlua0isiEp8W4RERExhflZsknFa0iMuGN5WJcK1euxOFw4HA4yGQy3HDDDVx88cVDvtc999zDddddh8PhAODf/u3fmDNnDh//+MePe93nP/95rr32Wj784Q8PONfb28tPf/pTXnnlFZxOJwCf+MQnuP7664cc31DccsstLFq0qG/j9WNZv349S5cuZebMmQC88MILbNy4kZtvvnlU4xMRkdGn3KzcnE8qWkVERujuu+9m7ty5bN26lauuuopzzz2XkpKSnK5NpVLYbDbuvfderr322r7E+PWvf31EMZmmyXXXXce8efN45plncDgcxGIxHnnkkSH1cyi+Ex0bjscff5zi4uK+xLhq1SpWrVo14n5FRESUm4dnvOZmFa0iInmyYMECvF4vDQ0NtLW18b3vfY9oNEo8HueKK67gb//2b4Hs006v10tdXR1dXV0sWbIEgKuuugqLxcJvfvMbfvCDH/Q9EX3jjTe46667iMfjpNNprr/++hM+MX7jjTdobGzkgQcewG63A+Byufj85z8PQDgc5o477uC9994DYPXq1Xz5y18Gsk+Ily5dyubNm3E6nXznO9/h8ssv53Of+xyvv/46q1ev5vLLL+enP/0pb731Fslkkrlz53Lbbbfh9XoHxDFY7I899hhbtmzhjjvu4K677uLmm28mEAjwxz/+kbvvvhuA+++/n6eeegqAxYsXc+utt+L1ernnnnvYt28foVCI+vp6pk+fzr/927/hdrvz8P+iiIhMJsrNkyM3q2gVEcmTP//5z8TjcWpra7FYLDzwwAM4HA7C4TCf/vSnOf/885k9ezYAmzZt4re//S0ejweAhx9+mP/8z/8ckFggm3AffvhhrFYr7e3tfPKTn+S8886jsLDwmLG8//77LFiwoC8pHu2+++4jk8nw9NNPEw6HufLKK5k3bx4XXnghADt37uRXv/oVNpuNhoYGuru7mT17Nl/96lf7ri8oKODRRx8F4H//7//N/fffz4033phT7JdffjlPPPFEv+FT69ev77vu5Zdf5qmnnur7ntx8883cd999/PM//zMAW7Zs4dFHH6WgoIAvfvGLPP3001xxxRUn/j9JREROKcrNkyM3q2gVERmhr33tazidTnw+H/fccw9+v5/29nZuu+02duzYgWEYtLa2sn379r7EeNFFF/UlxRPp7Ozk29/+Nvv378dqtdLT08O+ffs488wzj3mNaZrH7fONN97g29/+NoZh4PP5uPjii3njjTf6EuMll1zSb5iR0+nkb/7mb/o+v/jii/T29vLcc88BkEgkOP300/MS+6H4Pv7xj+PzZectXXHFFfzgBz/oO3/eeefh9/sBOOOMMzhw4MBx+xMRkVOLcvPkys0qWkVERujQvJkj/eQnP6G8vJw777wTm83GtddeSzwe7zufa1IEuO2221i5ciX33nsvhmHwsY99rF9fg1m0aBEPP/zwMee4mKaJYRj9jh35+ej43G53v/OmafLd736Xc889N++xHyu+Ix1avALAarXm1KeIiJw6lJvzG/ux4jvSaOZm7dMqIjIKQqEQVVVV2Gw2du7cycaNG4/b3uv10tvbe8y+pk6dimEYvPbaa+zfv/+E9z/33HOpqqrizjvvJJFIABCPx7n//vsBWLFiBY8++iimadLb28uzzz57wiR3pJUrV/LAAw8Qi8WA7GqIe/bsGVLsXq+XUCg0aP8rVqzg2Wefpbe3F9M0efTRR1mxYkXO8YmIiBxNufnEsY/X3Kw3rSIy4VmcHtyzjj+kZbj9DtcNN9zAN7/5TZ566immT5/O2Weffdz21157LV/4whdwuVz85je/6XfuG9/4Bt/73vf45S9/ybx585g3b94J728YBv/n//wffvzjH/Pxj3+8byGESy65BICvfOUr3H777X2fV69ezQUXXJDz1/flL3+Ze++9l0996lMYhoFhGPzDP/xD3xCrXGK/8sorWbduHb/+9a/55je/2e+6Cy+8kB07dnDVVVcB2afTN9xwQ87xiYjI2FJuHki5efgM80SDq8dYQ0MDq1at4oUXXqCmpmasw5FxKNndOmr7gNmLKvLer4zMtm3bmD9//liHIRPEYD8vyisjp++hTBZt4Q42B7bmrb8lVQso95bmrb+JQrlZhmI4uVnDg0VERERERGTcUtEqIiIiIiIi45aKVhERERERERm3VLSKiIiIiIjIuKWiVUREZBJbt24dK1euZN68eezcubPv+L59+7jyyiv52Mc+xpVXXkldXd3YBSkiInIcKlpFREQmsVWrVvHQQw8xderUfse/+93v8tnPfpbnnnuOz372s3znO98ZowhFRESOT/u0isiE15sIE03G8t6v2+7C5/Aet82nP/1pEokEyWSSuro65syZA8CCBQv44Q9/mPeYhmPDhg1UV1ezePHisQ5FxsDy5csHHOvo6GDr1q38x3/8BwCf+MQnuP322+ns7KSkpKRf22AwSDAY7HcsEAiMXsAiMikoNx+fcvPQqGgVkQkvmozldZ+9Q5ZULThhYnzkkUeA7P5il19+OU8++WTe4xipDRs2sGzZMiVG6dPc3ExlZSVWqxUAq9VKRUUFzc3NA4rWBx98kHvvvXcswhSRCUy5+fiUm4dGRauIyChoaWnhpptuore3l3g8zkc+8hH+6Z/+CYCf/vSnNDQ00NPTQ0NDA7W1tdx11124XC6CwSDf+ta32Lt3L5WVlZSVlVFVVcVNN91EIpHgJz/5CRs3biSRSDB//nxuu+023G43N910Ez6fjz179hAIBFi+fDk/+MEPeOWVV3jllVd46623+M///E+++MUvsnr16jH+7shEcvXVV3PZZZf1OxYIBFi7du0YRSQiMjzKzROXilYRkVFQWFjIL37xCzweD4lEgmuuuYbXX3+dFStWALBlyxYeffRRfD4fV199Nc888wyXX345d999N6WlpfzsZz+jq6uLT37yk1x88cUA/OIXv6CkpIRHH30UgDvvvJNf/vKXfO1rXwNg9+7d/PrXvwZg9erVvPnmm1x44YVccMEFLFu2jM985jNj8J2Q8ai6upqWlhbS6TRWq5V0Ok1rayvV1dUD2vr9fvx+/xhEKSKSX8rNE5eKVhGRUZBOp1m3bh2bNm0CoK2tjW3btvUlxgsuuICCggIAlixZwoEDBwB48803ueOOOwAoLi5m5cqVfX2++OKLRKNRnnnmGQASiQQLFy7sO/+Rj3wEh8MBZOft1NfX88EPfnCUv1KZiEpLS5k/fz6///3vWbNmDb///e+ZP3/+gKHBIiKTiXLzxKWiVURkFPzqV78iHA7z2GOP4XA4+Na3vkU8Hu8773Q6+/5usVhIp9N9nw3DGLRP0zS5/fbbOfvsswc9f3SfqVRqpF+GTAJ33HEHGzZsoL29nWuuuYaioiKeeeYZbrvtNm655Rbuu+8+/H4/69atG+tQRURGlXLzxKUtb0RERkEwGKSiogKHw0FzczMvvfRSTtedc845rF+/HoDu7u5+161cuZJf//rXfQm2t7eXPXv2nLBPn89HKBQaxlchk8Gtt97KK6+8wtatW3nttdf63gbMnj2bRx55hOeee45HHnmEWbNmjXGkIiKjS7l54tKbVhGZ8Nx2F0uqFoxKv8N19dVX8/Wvf51LL72U6urqnIcCffWrX+WWW27h4osvZtq0aSxdurRvqNL111/P3Xffzac+9Skg+8T2q1/9KrNnzz5un5deeinf/va3efbZZ7n22mu12IOIiIw65Wbl5nwyTNM0xzqI42loaGDVqlW88MIL1NTUjHU4Mg4lu1uJ7v1r3vt1zzoTe1FF3vuVkdm2bRvz588f6zBGTTKZxDRNHA4HoVCIq666iu985zucc845Yx3ahDTYz4vyysjpeyiTRVu4I6/bsiypWkC5tzRv/U0Uys0yFMPJzXrTKpJnoUiCaGx05iu4XTYKPI5R6VvGh66uLq677jrS6TSJRII1a9YoKYqIiIwh5eaxp6JVJM+isRTv7Ggdlb7PmlehonWSq6io4PHHHx/rMEREROQg5eaxp4WYREREREREZNxS0SoiE844n4ov44R+TkRETh79myu5GO7PiYpWEZlQXC4XHR0dSo5yXKZp0tHRgcs1/FUmRUQkN8rNkouR5GbNaRWRCaWmpoaGhgba2trGOhQZ51wul1a2FRE5CZSbJVfDzc0qWkVkQrHb7cycOXOswxAREZGDlJtltKloFclRbyJMNBk7YbtIJklRaSbnfi0ZG51dubcXERERETmVqGgVyVE0GctpA/JgOMGBllDO/X5wxhloermIiIiIyOD0m7KIiIiIiIiMWypaRUREREREZNxS0SoiIiIiIiLjlopWERERERERGbdUtIqIiIiIiMi4paJVRERERERExi0VrSIiIiIiIjJuqWgVERERERGRcUtFq4iIiIiIiIxbKlpFRERERERk3FLRKiIiIiIiIuNWTkXrunXrWLlyJfPmzWPnzp19x1euXMlFF13EmjVrWLNmDa+++uqg10ejUf7xH/+Rj370o1x00UW89NJL+YleREREREREJjVbLo1WrVrFF77wBdauXTvg3N13383cuXOPe/2vfvUrvF4vf/jDH6irq2Pt2rVs2LABr9c7vKhFRERERETklJDTm9bly5dTXV097Jv8v//3/7jqqqsAqK2tZdGiRbzyyivD7k9ERERERERODTm9aT2em266CdM0WbZsGf/0T/+E3+8f0KapqYmpU6f2fa6uriYQCAxoFwwGCQaD/Y4N1k5ERERERERODSMqWh966CGqq6tJJBL8y7/8C9///vf50Y9+NOz+HnzwQe69996RhCQiIiIiIiKTyIiK1kNDhh0OB5/97Ge54YYbBm03ZcoUGhsbKSkpAaC5uZlzzjlnQLurr76ayy67rN+xQCAw6FxaERERERERmfyGXbRGIhHS6TQFBQWYpsmzzz7L/PnzB2170UUX8bvf/Y7FixdTV1fHe++9x49//OMB7fx+/6DDi0VEREREROTUlNNCTHfccQcXXHABgUCAa665hosvvpiOjg4+//nPc8kll/CJT3yCffv28d3vfrfvmjVr1tDS0gLAF7/4RYLBIB/96Ee57rrr+P73v4/P5xudr0hEREREREQmjZzetN56663ceuutA44/8cQTx7zmySef7Pu7x+Ph7rvvHkZ4IiIiIiIicirL6U2riIiIiIiIyFhQ0SoiIiIiIiLjlopWERERERERGbdUtIqIiIiIiMi4paJVRERERERExq1h79MqMhmYpklL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\n",
"text/plain": [
"<Figure size 1152x576 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, (ax1, ax2) = plt.subplots(figsize=(16, 8), nrows=1, ncols=2)\n",
"sns.distplot(scores[(scores.kind == 'correlation')].dev_MSE, label='Correlation', ax=ax1)\n",
"sns.distplot(scores[(scores.kind == 'partial correlation')].dev_MSE, label='Partial Correlation', ax=ax1)\n",
"sns.distplot(scores[(scores.kind == 'tangent')].dev_MSE, label='Tangent', ax=ax1)\n",
"ax1.legend()\n",
"sns.distplot(scores[(scores.kind == 'correlation')].dev_MAE, label='Correlation', ax=ax2)\n",
"sns.distplot(scores[(scores.kind == 'partial correlation')].dev_MAE, label='Partial Correlation', ax=ax2)\n",
"sns.distplot(scores[(scores.kind == 'tangent')].dev_MAE, label='Tangent', ax=ax2)\n",
"ax2.legend()\n",
"\n",
"\n",
"\n",
"#plt.savefig('./comparison.pdf')"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"MSE - CORRELATION: 0.0631906935106963\n",
"MSE - PARTIAL CORRELATION: 0.060293166567571464\n",
"MSE - TANGENT: 0.06407719370909035\n",
"MAE - CORRELATION: 0.20249531373381616\n",
"MAE - PARTIAL CORRELATION: 0.20049512945115566\n",
"MAE - TANGENT: 0.20988476172089576\n"
]
}
],
"source": [
"print('MSE - CORRELATION: {}'.format(scores[(scores.kind == 'correlation')].dev_MSE.mean()))\n",
"print('MSE - PARTIAL CORRELATION: {}'.format(scores[(scores.kind == 'partial correlation')].dev_MSE.mean()))\n",
"print('MSE - TANGENT: {}'.format(scores[(scores.kind == 'tangent')].dev_MSE.mean()))\n",
"print('MAE - CORRELATION: {}'.format(scores[(scores.kind == 'correlation')].dev_MAE.mean()))\n",
"print('MAE - PARTIAL CORRELATION: {}'.format(scores[(scores.kind == 'partial correlation')].dev_MAE.mean()))\n",
"print('MAE - TANGENT: {}'.format(scores[(scores.kind == 'tangent')].dev_MAE.mean()))"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Source</th>\n",
" <th>SS</th>\n",
" <th>DF</th>\n",
" <th>MS</th>\n",
" <th>F</th>\n",
" <th>p-unc</th>\n",
" <th>np2</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>kind</td>\n",
" <td>0.001</td>\n",
" <td>2</td>\n",
" <td>0.000</td>\n",
" <td>0.471</td>\n",
" <td>0.625003</td>\n",
" <td>0.003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Within</td>\n",
" <td>0.247</td>\n",
" <td>297</td>\n",
" <td>0.001</td>\n",
" <td>-</td>\n",
" <td>-</td>\n",
" <td>-</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Source SS DF MS F p-unc np2\n",
"0 kind 0.001 2 0.000 0.471 0.625003 0.003\n",
"1 Within 0.247 297 0.001 - - -"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aov = pg.anova(dv='dev_MSE',\n",
" between=['kind'],\n",
" data=scores,\n",
" detailed=True,\n",
" ss_type=2)\n",
"aov.to_csv('./anova.csv')\n",
"aov"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Contrast</th>\n",
" <th>A</th>\n",
" <th>B</th>\n",
" <th>mean(A)</th>\n",
" <th>std(A)</th>\n",
" <th>mean(B)</th>\n",
" <th>std(B)</th>\n",
" <th>Paired</th>\n",
" <th>Parametric</th>\n",
" <th>T</th>\n",
" <th>dof</th>\n",
" <th>Tail</th>\n",
" <th>p-unc</th>\n",
" <th>p-corr</th>\n",
" <th>p-adjust</th>\n",
" <th>BF10</th>\n",
" <th>cohen</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>kind</td>\n",
" <td>correlation</td>\n",
" <td>partial correlation</td>\n",
" <td>0.063</td>\n",
" <td>0.027</td>\n",
" <td>0.060</td>\n",
" <td>0.030</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" <td>0.717</td>\n",
" <td>198.0</td>\n",
" <td>two-sided</td>\n",
" <td>0.474118</td>\n",
" <td>0.711177</td>\n",
" <td>fdr_bh</td>\n",
" <td>0.196</td>\n",
" <td>0.101</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>kind</td>\n",
" <td>correlation</td>\n",
" <td>tangent</td>\n",
" <td>0.063</td>\n",
" <td>0.027</td>\n",
" <td>0.064</td>\n",
" <td>0.029</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" <td>-0.221</td>\n",
" <td>198.0</td>\n",
" <td>two-sided</td>\n",
" <td>0.825269</td>\n",
" <td>0.825269</td>\n",
" <td>fdr_bh</td>\n",
" <td>0.157</td>\n",
" <td>-0.031</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>kind</td>\n",
" <td>partial correlation</td>\n",
" <td>tangent</td>\n",
" <td>0.060</td>\n",
" <td>0.030</td>\n",
" <td>0.064</td>\n",
" <td>0.029</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" <td>-0.904</td>\n",
" <td>198.0</td>\n",
" <td>two-sided</td>\n",
" <td>0.367035</td>\n",
" <td>0.711177</td>\n",
" <td>fdr_bh</td>\n",
" <td>0.226</td>\n",
" <td>-0.128</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Contrast A B mean(A) std(A) \\\n",
"0 kind correlation partial correlation 0.063 0.027 \n",
"1 kind correlation tangent 0.063 0.027 \n",
"2 kind partial correlation tangent 0.060 0.030 \n",
"\n",
" mean(B) std(B) Paired Parametric T dof Tail p-unc \\\n",
"0 0.060 0.030 False True 0.717 198.0 two-sided 0.474118 \n",
"1 0.064 0.029 False True -0.221 198.0 two-sided 0.825269 \n",
"2 0.064 0.029 False True -0.904 198.0 two-sided 0.367035 \n",
"\n",
" p-corr p-adjust BF10 cohen \n",
"0 0.711177 fdr_bh 0.196 0.101 \n",
"1 0.825269 fdr_bh 0.157 -0.031 \n",
"2 0.711177 fdr_bh 0.226 -0.128 "
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"posthocs = pg.pairwise_ttests(dv='dev_MSE',\n",
" between=['kind'],\n",
" data=scores,\n",
" alpha=.5,\n",
" padjust='fdr_bh',\n",
" effsize='cohen',\n",
" return_desc=True)\n",
"posthocs.to_csv('./ttests.csv')\n",
"posthocs"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f2ba01f5e50>"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"predictions = model.predict(X[test])\n",
"plt.figure()\n",
"plt.plot(y[test], label='truth')\n",
"plt.plot(predictions, label='predictions')\n",
"plt.legend()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.7.6 64-bit ('base': conda)",
"language": "python",
"name": "python37664bitbaseconda7a3bdc022e3d40b690de10a054bae57d"
},
"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.7"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment