{
"cells": [
{
"metadata": {
"_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5",
"_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19",
"trusted": true
},
"cell_type": "code",
"source": "# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load in \n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory\n\nimport os\nprint(os.listdir(\"../input\"))\n\n# Any results you write to the current directory are saved as output.",
"execution_count": 1,
"outputs": [
{
"output_type": "stream",
"text": "['creditcard.csv']\n",
"name": "stdout"
}
]
},
{
"metadata": {
"_uuid": "04bcbe2c5f6b3f74f6f8732c41e8e8e15654d311",
"_cell_guid": "1fa9c421-e3e1-4a2c-978f-28f78e01ab34",
"trusted": true
},
"cell_type": "code",
"source": "from numpy.random import seed\nseed(1)\nfrom tensorflow import set_random_seed\nset_random_seed(2)",
"execution_count": 2,
"outputs": []
},
{
"metadata": {
"_uuid": "d629ff2d2480ee46fbb7e2d37f6b5fab8052498a",
"_cell_guid": "79c7e3d0-c299-4dcb-8224-4455121ee9b0",
"trusted": true
},
"cell_type": "code",
"source": "df = pd.read_csv('../input/creditcard.csv')",
"execution_count": 3,
"outputs": []
},
{
"metadata": {
"_uuid": "24bc772bdd624e7d844b74020e273ffe3def4246",
"_cell_guid": "ad3d861f-12e4-49ca-a221-6d8bd6be6f8a",
"trusted": true
},
"cell_type": "code",
"source": "df.head()",
"execution_count": 4,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 4,
"data": {
"text/plain": " Time V1 V2 V3 ... V27 V28 Amount Class\n0 0.0 -1.359807 -0.072781 2.536347 ... 0.133558 -0.021053 149.62 0\n1 0.0 1.191857 0.266151 0.166480 ... -0.008983 0.014724 2.69 0\n2 1.0 -1.358354 -1.340163 1.773209 ... -0.055353 -0.059752 378.66 0\n3 1.0 -0.966272 -0.185226 1.792993 ... 0.062723 0.061458 123.50 0\n4 2.0 -1.158233 0.877737 1.548718 ... 0.219422 0.215153 69.99 0\n\n[5 rows x 31 columns]",
"text/html": "
\n\n
\n \n \n | \n Time | \n V1 | \n V2 | \n V3 | \n V4 | \n V5 | \n V6 | \n V7 | \n V8 | \n V9 | \n V10 | \n V11 | \n V12 | \n V13 | \n V14 | \n V15 | \n V16 | \n V17 | \n V18 | \n V19 | \n V20 | \n V21 | \n V22 | \n V23 | \n V24 | \n V25 | \n V26 | \n V27 | \n V28 | \n Amount | \n Class | \n
\n \n \n \n | 0 | \n 0.0 | \n -1.359807 | \n -0.072781 | \n 2.536347 | \n 1.378155 | \n -0.338321 | \n 0.462388 | \n 0.239599 | \n 0.098698 | \n 0.363787 | \n 0.090794 | \n -0.551600 | \n -0.617801 | \n -0.991390 | \n -0.311169 | \n 1.468177 | \n -0.470401 | \n 0.207971 | \n 0.025791 | \n 0.403993 | \n 0.251412 | \n -0.018307 | \n 0.277838 | \n -0.110474 | \n 0.066928 | \n 0.128539 | \n -0.189115 | \n 0.133558 | \n -0.021053 | \n 149.62 | \n 0 | \n
\n \n | 1 | \n 0.0 | \n 1.191857 | \n 0.266151 | \n 0.166480 | \n 0.448154 | \n 0.060018 | \n -0.082361 | \n -0.078803 | \n 0.085102 | \n -0.255425 | \n -0.166974 | \n 1.612727 | \n 1.065235 | \n 0.489095 | \n -0.143772 | \n 0.635558 | \n 0.463917 | \n -0.114805 | \n -0.183361 | \n -0.145783 | \n -0.069083 | \n -0.225775 | \n -0.638672 | \n 0.101288 | \n -0.339846 | \n 0.167170 | \n 0.125895 | \n -0.008983 | \n 0.014724 | \n 2.69 | \n 0 | \n
\n \n | 2 | \n 1.0 | \n -1.358354 | \n -1.340163 | \n 1.773209 | \n 0.379780 | \n -0.503198 | \n 1.800499 | \n 0.791461 | \n 0.247676 | \n -1.514654 | \n 0.207643 | \n 0.624501 | \n 0.066084 | \n 0.717293 | \n -0.165946 | \n 2.345865 | \n -2.890083 | \n 1.109969 | \n -0.121359 | \n -2.261857 | \n 0.524980 | \n 0.247998 | \n 0.771679 | \n 0.909412 | \n -0.689281 | \n -0.327642 | \n -0.139097 | \n -0.055353 | \n -0.059752 | \n 378.66 | \n 0 | \n
\n \n | 3 | \n 1.0 | \n -0.966272 | \n -0.185226 | \n 1.792993 | \n -0.863291 | \n -0.010309 | \n 1.247203 | \n 0.237609 | \n 0.377436 | \n -1.387024 | \n -0.054952 | \n -0.226487 | \n 0.178228 | \n 0.507757 | \n -0.287924 | \n -0.631418 | \n -1.059647 | \n -0.684093 | \n 1.965775 | \n -1.232622 | \n -0.208038 | \n -0.108300 | \n 0.005274 | \n -0.190321 | \n -1.175575 | \n 0.647376 | \n -0.221929 | \n 0.062723 | \n 0.061458 | \n 123.50 | \n 0 | \n
\n \n | 4 | \n 2.0 | \n -1.158233 | \n 0.877737 | \n 1.548718 | \n 0.403034 | \n -0.407193 | \n 0.095921 | \n 0.592941 | \n -0.270533 | \n 0.817739 | \n 0.753074 | \n -0.822843 | \n 0.538196 | \n 1.345852 | \n -1.119670 | \n 0.175121 | \n -0.451449 | \n -0.237033 | \n -0.038195 | \n 0.803487 | \n 0.408542 | \n -0.009431 | \n 0.798278 | \n -0.137458 | \n 0.141267 | \n -0.206010 | \n 0.502292 | \n 0.219422 | \n 0.215153 | \n 69.99 | \n 0 | \n
\n \n
\n
"
},
"metadata": {}
}
]
},
{
"metadata": {
"_uuid": "7f9f454f8341834b0c6ab1a3de99b2577dcd7dd0",
"_cell_guid": "ac5f5f90-1607-4c5e-b0e7-845c724c7521",
"trusted": true
},
"cell_type": "code",
"source": "df.describe()",
"execution_count": 5,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 5,
"data": {
"text/plain": " Time V1 ... Amount Class\ncount 284807.000000 2.848070e+05 ... 284807.000000 284807.000000\nmean 94813.859575 3.919560e-15 ... 88.349619 0.001727\nstd 47488.145955 1.958696e+00 ... 250.120109 0.041527\nmin 0.000000 -5.640751e+01 ... 0.000000 0.000000\n25% 54201.500000 -9.203734e-01 ... 5.600000 0.000000\n50% 84692.000000 1.810880e-02 ... 22.000000 0.000000\n75% 139320.500000 1.315642e+00 ... 77.165000 0.000000\nmax 172792.000000 2.454930e+00 ... 25691.160000 1.000000\n\n[8 rows x 31 columns]",
"text/html": "\n\n
\n \n \n | \n Time | \n V1 | \n V2 | \n V3 | \n V4 | \n V5 | \n V6 | \n V7 | \n V8 | \n V9 | \n V10 | \n V11 | \n V12 | \n V13 | \n V14 | \n V15 | \n V16 | \n V17 | \n V18 | \n V19 | \n V20 | \n V21 | \n V22 | \n V23 | \n V24 | \n V25 | \n V26 | \n V27 | \n V28 | \n Amount | \n Class | \n
\n \n \n \n | count | \n 284807.000000 | \n 2.848070e+05 | \n 2.848070e+05 | \n 2.848070e+05 | \n 2.848070e+05 | \n 2.848070e+05 | \n 2.848070e+05 | \n 2.848070e+05 | \n 2.848070e+05 | \n 2.848070e+05 | \n 2.848070e+05 | \n 2.848070e+05 | \n 2.848070e+05 | \n 2.848070e+05 | \n 2.848070e+05 | \n 2.848070e+05 | \n 2.848070e+05 | \n 2.848070e+05 | \n 2.848070e+05 | \n 2.848070e+05 | \n 2.848070e+05 | \n 2.848070e+05 | \n 2.848070e+05 | \n 2.848070e+05 | \n 2.848070e+05 | \n 2.848070e+05 | \n 2.848070e+05 | \n 2.848070e+05 | \n 2.848070e+05 | \n 284807.000000 | \n 284807.000000 | \n
\n \n | mean | \n 94813.859575 | \n 3.919560e-15 | \n 5.688174e-16 | \n -8.769071e-15 | \n 2.782312e-15 | \n -1.552563e-15 | \n 2.010663e-15 | \n -1.694249e-15 | \n -1.927028e-16 | \n -3.137024e-15 | \n 1.768627e-15 | \n 9.170318e-16 | \n -1.810658e-15 | \n 1.693438e-15 | \n 1.479045e-15 | \n 3.482336e-15 | \n 1.392007e-15 | \n -7.528491e-16 | \n 4.328772e-16 | \n 9.049732e-16 | \n 5.085503e-16 | \n 1.537294e-16 | \n 7.959909e-16 | \n 5.367590e-16 | \n 4.458112e-15 | \n 1.453003e-15 | \n 1.699104e-15 | \n -3.660161e-16 | \n -1.206049e-16 | \n 88.349619 | \n 0.001727 | \n
\n \n | std | \n 47488.145955 | \n 1.958696e+00 | \n 1.651309e+00 | \n 1.516255e+00 | \n 1.415869e+00 | \n 1.380247e+00 | \n 1.332271e+00 | \n 1.237094e+00 | \n 1.194353e+00 | \n 1.098632e+00 | \n 1.088850e+00 | \n 1.020713e+00 | \n 9.992014e-01 | \n 9.952742e-01 | \n 9.585956e-01 | \n 9.153160e-01 | \n 8.762529e-01 | \n 8.493371e-01 | \n 8.381762e-01 | \n 8.140405e-01 | \n 7.709250e-01 | \n 7.345240e-01 | \n 7.257016e-01 | \n 6.244603e-01 | \n 6.056471e-01 | \n 5.212781e-01 | \n 4.822270e-01 | \n 4.036325e-01 | \n 3.300833e-01 | \n 250.120109 | \n 0.041527 | \n
\n \n | min | \n 0.000000 | \n -5.640751e+01 | \n -7.271573e+01 | \n -4.832559e+01 | \n -5.683171e+00 | \n -1.137433e+02 | \n -2.616051e+01 | \n -4.355724e+01 | \n -7.321672e+01 | \n -1.343407e+01 | \n -2.458826e+01 | \n -4.797473e+00 | \n -1.868371e+01 | \n -5.791881e+00 | \n -1.921433e+01 | \n -4.498945e+00 | \n -1.412985e+01 | \n -2.516280e+01 | \n -9.498746e+00 | \n -7.213527e+00 | \n -5.449772e+01 | \n -3.483038e+01 | \n -1.093314e+01 | \n -4.480774e+01 | \n -2.836627e+00 | \n -1.029540e+01 | \n -2.604551e+00 | \n -2.256568e+01 | \n -1.543008e+01 | \n 0.000000 | \n 0.000000 | \n
\n \n | 25% | \n 54201.500000 | \n -9.203734e-01 | \n -5.985499e-01 | \n -8.903648e-01 | \n -8.486401e-01 | \n -6.915971e-01 | \n -7.682956e-01 | \n -5.540759e-01 | \n -2.086297e-01 | \n -6.430976e-01 | \n -5.354257e-01 | \n -7.624942e-01 | \n -4.055715e-01 | \n -6.485393e-01 | \n -4.255740e-01 | \n -5.828843e-01 | \n -4.680368e-01 | \n -4.837483e-01 | \n -4.988498e-01 | \n -4.562989e-01 | \n -2.117214e-01 | \n -2.283949e-01 | \n -5.423504e-01 | \n -1.618463e-01 | \n -3.545861e-01 | \n -3.171451e-01 | \n -3.269839e-01 | \n -7.083953e-02 | \n -5.295979e-02 | \n 5.600000 | \n 0.000000 | \n
\n \n | 50% | \n 84692.000000 | \n 1.810880e-02 | \n 6.548556e-02 | \n 1.798463e-01 | \n -1.984653e-02 | \n -5.433583e-02 | \n -2.741871e-01 | \n 4.010308e-02 | \n 2.235804e-02 | \n -5.142873e-02 | \n -9.291738e-02 | \n -3.275735e-02 | \n 1.400326e-01 | \n -1.356806e-02 | \n 5.060132e-02 | \n 4.807155e-02 | \n 6.641332e-02 | \n -6.567575e-02 | \n -3.636312e-03 | \n 3.734823e-03 | \n -6.248109e-02 | \n -2.945017e-02 | \n 6.781943e-03 | \n -1.119293e-02 | \n 4.097606e-02 | \n 1.659350e-02 | \n -5.213911e-02 | \n 1.342146e-03 | \n 1.124383e-02 | \n 22.000000 | \n 0.000000 | \n
\n \n | 75% | \n 139320.500000 | \n 1.315642e+00 | \n 8.037239e-01 | \n 1.027196e+00 | \n 7.433413e-01 | \n 6.119264e-01 | \n 3.985649e-01 | \n 5.704361e-01 | \n 3.273459e-01 | \n 5.971390e-01 | \n 4.539234e-01 | \n 7.395934e-01 | \n 6.182380e-01 | \n 6.625050e-01 | \n 4.931498e-01 | \n 6.488208e-01 | \n 5.232963e-01 | \n 3.996750e-01 | \n 5.008067e-01 | \n 4.589494e-01 | \n 1.330408e-01 | \n 1.863772e-01 | \n 5.285536e-01 | \n 1.476421e-01 | \n 4.395266e-01 | \n 3.507156e-01 | \n 2.409522e-01 | \n 9.104512e-02 | \n 7.827995e-02 | \n 77.165000 | \n 0.000000 | \n
\n \n | max | \n 172792.000000 | \n 2.454930e+00 | \n 2.205773e+01 | \n 9.382558e+00 | \n 1.687534e+01 | \n 3.480167e+01 | \n 7.330163e+01 | \n 1.205895e+02 | \n 2.000721e+01 | \n 1.559499e+01 | \n 2.374514e+01 | \n 1.201891e+01 | \n 7.848392e+00 | \n 7.126883e+00 | \n 1.052677e+01 | \n 8.877742e+00 | \n 1.731511e+01 | \n 9.253526e+00 | \n 5.041069e+00 | \n 5.591971e+00 | \n 3.942090e+01 | \n 2.720284e+01 | \n 1.050309e+01 | \n 2.252841e+01 | \n 4.584549e+00 | \n 7.519589e+00 | \n 3.517346e+00 | \n 3.161220e+01 | \n 3.384781e+01 | \n 25691.160000 | \n 1.000000 | \n
\n \n
\n
"
},
"metadata": {}
}
]
},
{
"metadata": {
"_uuid": "ae27e9aac252b8abebe73a7f152e8285f6ae6671",
"_cell_guid": "8f0c6894-0f3c-4f1a-9b2e-5155cc434ab8",
"trusted": true
},
"cell_type": "code",
"source": "df.isnull().sum()",
"execution_count": 6,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 6,
"data": {
"text/plain": "Time 0\nV1 0\nV2 0\nV3 0\nV4 0\nV5 0\nV6 0\nV7 0\nV8 0\nV9 0\nV10 0\nV11 0\nV12 0\nV13 0\nV14 0\nV15 0\nV16 0\nV17 0\nV18 0\nV19 0\nV20 0\nV21 0\nV22 0\nV23 0\nV24 0\nV25 0\nV26 0\nV27 0\nV28 0\nAmount 0\nClass 0\ndtype: int64"
},
"metadata": {}
}
]
},
{
"metadata": {
"_uuid": "7ba46b55bc860137cbde1b97572a918dec5970d3",
"_cell_guid": "40293e6e-ec35-4847-90f1-1e6e89f70b91",
"trusted": true
},
"cell_type": "code",
"source": "df = df.drop('Time',axis=1)",
"execution_count": 7,
"outputs": []
},
{
"metadata": {
"_uuid": "8ab18d55eacc48d3f578c2c1977a789f9b95e03e",
"_cell_guid": "25ea497f-93a3-4818-b1e5-a40c9ae9b81d",
"trusted": true
},
"cell_type": "code",
"source": "X = df.drop('Class',axis=1).values \ny = df['Class'].values",
"execution_count": 8,
"outputs": []
},
{
"metadata": {
"_uuid": "4e153e0a8bbd54231af019089db7ceac7d4a3ab2",
"_cell_guid": "c4737b0e-f780-45b4-b1cc-c0bd1d419b41",
"trusted": true
},
"cell_type": "code",
"source": "X.shape",
"execution_count": 9,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 9,
"data": {
"text/plain": "(284807, 29)"
},
"metadata": {}
}
]
},
{
"metadata": {
"_uuid": "66ce9da4edfea3e8b6619d5f543b365899a59a5e",
"_cell_guid": "5788dbeb-8aa2-42a5-99af-b4e367de3808",
"trusted": true
},
"cell_type": "code",
"source": "X -= X.min(axis=0)\nX /= X.max(axis=0)",
"execution_count": 10,
"outputs": []
},
{
"metadata": {
"_uuid": "c36820c67500d54458d9b22ebc2293f2e8ccf99f",
"_cell_guid": "57b2f8a6-9c45-4f60-a0ff-8aef07b2f484",
"trusted": true
},
"cell_type": "code",
"source": "X.mean()",
"execution_count": 11,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 11,
"data": {
"text/plain": "0.5213456986251124"
},
"metadata": {}
}
]
},
{
"metadata": {
"_uuid": "91d77fc484400c0bc3ba4c3b16ebd9873d3da966",
"_cell_guid": "f79cfb3e-0a02-4052-b057-dfd6b96ac026",
"trusted": true
},
"cell_type": "code",
"source": "X.shape",
"execution_count": 12,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 12,
"data": {
"text/plain": "(284807, 29)"
},
"metadata": {}
}
]
},
{
"metadata": {
"_uuid": "156872c244cdf82a28daa404fe1ebaaa96c52d0d",
"_cell_guid": "78e7cc64-e345-45c4-8c4e-52aa50cb9c21",
"trusted": true
},
"cell_type": "code",
"source": "from sklearn.model_selection import train_test_split\nX_train, X_test, y_train,y_test = train_test_split(X,y,test_size=0.1)",
"execution_count": 13,
"outputs": []
},
{
"metadata": {
"_uuid": "958d9f0b9143a37842c6510696173e357817397d",
"_cell_guid": "26067623-40ff-44d1-9fbf-1736f9d5a967",
"trusted": true
},
"cell_type": "code",
"source": "from keras.models import Model\nfrom keras.layers import Input, Dense",
"execution_count": 14,
"outputs": [
{
"output_type": "stream",
"text": "Using TensorFlow backend.\n",
"name": "stderr"
}
]
},
{
"metadata": {
"_uuid": "0e6386095559dafe1c3f4660149894591ea6d0ff",
"_cell_guid": "cf479c9f-e2e6-43c2-be27-852b70f2796f",
"trusted": true
},
"cell_type": "code",
"source": "data_in = Input(shape=(29,))\nencoded = Dense(12,activation='tanh')(data_in)\ndecoded = Dense(29,activation='sigmoid')(encoded)\nautoencoder = Model(data_in,decoded)",
"execution_count": 15,
"outputs": []
},
{
"metadata": {
"_uuid": "b350c49f16744ceff5a0545b44915ca4a85cbfae",
"_cell_guid": "92225494-1294-479f-8003-fb5db2c6db2d",
"trusted": true
},
"cell_type": "code",
"source": "autoencoder.compile(optimizer='adam',loss='mean_squared_error')",
"execution_count": 16,
"outputs": []
},
{
"metadata": {
"_uuid": "9cff9216e21c05d9f7fc2e05a426ed065deadabf",
"_cell_guid": "a4a83280-5afe-413f-89fa-86d67e3a3adb",
"trusted": true
},
"cell_type": "code",
"source": "autoencoder.fit(X_train,\n X_train,\n epochs = 20, \n batch_size=128, \n validation_data=(X_test,X_test))",
"execution_count": 17,
"outputs": [
{
"output_type": "stream",
"text": "Train on 256326 samples, validate on 28481 samples\nEpoch 1/20\n256326/256326 [==============================] - 8s 29us/step - loss: 0.0027 - val_loss: 0.0015\nEpoch 2/20\n256326/256326 [==============================] - 7s 26us/step - loss: 0.0012 - val_loss: 7.5711e-04\nEpoch 3/20\n256326/256326 [==============================] - 7s 26us/step - loss: 5.9954e-04 - val_loss: 5.0860e-04\nEpoch 4/20\n256326/256326 [==============================] - 7s 26us/step - loss: 4.3634e-04 - val_loss: 3.8141e-04\nEpoch 5/20\n256326/256326 [==============================] - 7s 26us/step - loss: 3.4394e-04 - val_loss: 3.1408e-04\nEpoch 6/20\n256326/256326 [==============================] - 7s 26us/step - loss: 2.9318e-04 - val_loss: 2.8245e-04\nEpoch 7/20\n256326/256326 [==============================] - 7s 26us/step - loss: 2.6792e-04 - val_loss: 2.5355e-04\nEpoch 8/20\n256326/256326 [==============================] - 7s 26us/step - loss: 2.3752e-04 - val_loss: 2.2938e-04\nEpoch 9/20\n256326/256326 [==============================] - 7s 26us/step - loss: 2.2411e-04 - val_loss: 2.2209e-04\nEpoch 10/20\n256326/256326 [==============================] - 7s 26us/step - loss: 2.1863e-04 - val_loss: 2.1798e-04\nEpoch 11/20\n256326/256326 [==============================] - 7s 26us/step - loss: 2.1538e-04 - val_loss: 2.1600e-04\nEpoch 12/20\n256326/256326 [==============================] - 7s 26us/step - loss: 2.1341e-04 - val_loss: 2.1404e-04\nEpoch 13/20\n256326/256326 [==============================] - 7s 27us/step - loss: 2.1226e-04 - val_loss: 2.1334e-04\nEpoch 14/20\n256326/256326 [==============================] - 7s 27us/step - loss: 2.1146e-04 - val_loss: 2.1264e-04\nEpoch 15/20\n256326/256326 [==============================] - 7s 26us/step - loss: 2.1092e-04 - val_loss: 2.1200e-04\nEpoch 16/20\n256326/256326 [==============================] - 7s 26us/step - loss: 2.1046e-04 - val_loss: 2.1197e-04\nEpoch 17/20\n256326/256326 [==============================] - 7s 26us/step - loss: 2.1005e-04 - val_loss: 2.1131e-04\nEpoch 18/20\n256326/256326 [==============================] - 7s 26us/step - loss: 2.0971e-04 - val_loss: 2.1132e-04\nEpoch 19/20\n256326/256326 [==============================] - 7s 26us/step - loss: 2.0945e-04 - val_loss: 2.1161e-04\nEpoch 20/20\n256326/256326 [==============================] - 7s 26us/step - loss: 2.0920e-04 - val_loss: 2.1059e-04\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 17,
"data": {
"text/plain": ""
},
"metadata": {}
}
]
},
{
"metadata": {
"_uuid": "44a06be6edd99f083d7107919ca2e84f06f661a7",
"_cell_guid": "1496244f-fa4c-430a-924b-3414ef1a015d",
"trusted": true
},
"cell_type": "code",
"source": "X_test.mean()",
"execution_count": 18,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 18,
"data": {
"text/plain": "0.5214011426360144"
},
"metadata": {}
}
]
},
{
"metadata": {
"_uuid": "47e3a4a5ef8a3def84ada50a8db94112f7e0f746",
"_cell_guid": "67f0ac0d-50ab-4e72-b594-f73e7f978fbb",
"trusted": true
},
"cell_type": "code",
"source": "pred = autoencoder.predict(X_test[0:10])",
"execution_count": 19,
"outputs": []
},
{
"metadata": {
"_uuid": "75b98afa5e92031738415f3650f32e0f91a5a4b8",
"_cell_guid": "76d93c84-1419-4a17-b8ce-130c1faa049b",
"trusted": true
},
"cell_type": "code",
"source": "import matplotlib.pyplot as plt\nimport numpy as np\n\nwidth = 0.8\n\nprediction = pred[9]\ntrue_value = X_test[9]\n\nindices = np.arange(len(prediction))\n\nfig = plt.figure(figsize=(10,7))\n\nplt.bar(indices, prediction, width=width, \n color='b', label='Predicted Value')\n\nplt.bar([i+0.25*width for i in indices], true_value, \n width=0.5*width, color='r', alpha=0.5, label='True Value')\n\nplt.xticks(indices+width/2., \n ['V{}'.format(i) for i in range(len(prediction))] )\n\nplt.legend()\n\nplt.show()",
"execution_count": 20,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": "",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlYAAAGfCAYAAACdqpz+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3X+YnGV97/H3NwkhCAgYggcIuBHBJAQSwvIjJ6Bo0PDrgPxSUixFQKwcDq0VFC+RbEXPBaXHahXBUDBSLClFwNgGSVNArRhJggHzg5AFkSyIkDSkiSZA4D5/zOwyWXZmZ569N7ubvF/XNVdmnueZ79zzzD2zn9zPr0gpIUmSpJ4b1NcNkCRJ2lYYrCRJkjIxWEmSJGVisJIkScrEYCVJkpSJwUqSJCkTg5UkSVImBitJkqRMDFaSJEmZDOmrF95zzz1TU1NTX728JElS3RYtWrQ6pTSiu+X6LFg1NTWxcOHCvnp5SZKkukXEb+tZzk2BkiRJmXQbrCLi1oh4MSKWVJkfEfH3EdEaEY9HxMT8zZQkSer/6hmxmgmcUGP+icCB5dvFwI09b5YkSdLA0+0+Vimln0ZEU41FTgNuSyklYH5E7B4Re6eUfpepjZIk9XuvvfYabW1tbNq0qa+boh4YNmwYI0eOZIcddij0/Bw7r+8LrKp43Fae9pZgFREXUxrVYv/998/w0pIk9Q9tbW3suuuuNDU1ERF93RwVkFJizZo1tLW1MWrUqEI1turO6ymlGSml5pRS84gR3R6xKEnSgLFp0yaGDx9uqBrAIoLhw4f3aNQxR7B6Dtiv4vHI8jRJkrYrhqqBr6efYY5gNRs4r3x04NHAOvevkiRJ26N6TrdwB/AL4L0R0RYRF0bEn0fEn5cXmQM8DbQCNwOX9FprJUkaICLy3uoxePBgJkyYwLhx4zj77LP54x//WLj9Dz30EKeccgoAs2fP5tprr6267Msvv8y3v/3thl+jpaWFv/3bv91i2k9+8hMmTZq0xbTNmzfzzne+k+eff76hWn2h22CVUpqWUto7pbRDSmlkSumWlNJNKaWbyvNTSul/p5QOSCkdklLydOqSJPWBnXbaicWLF7NkyRKGDh3KTTfdtMX8lBJvvPFGw3VPPfVUrrzyyqrziwarrhx77LG0tbXx29++eaLzefPmcfDBB7PPPvtkeY3e5JnXJUnaBh177LG0trbyzDPP8N73vpfzzjuPcePGsWrVKubOncukSZOYOHEiZ599Nhs2bADgxz/+MaNHj2bixIncfffdHbVmzpzJpZdeCsDvf/97Tj/9dMaPH8/48eN5+OGHufLKK3nqqaeYMGECV1xxBQDXX389RxxxBIceeijTp0/vqPXVr36Vgw46iGOOOYYVK1a8pd2DBg3iox/9KLNmzeqYNmvWLKZNmwbAzTffzBFHHMH48eM588wzuxyVO+644zoum7d69Wrar038+uuvc8UVV3S06zvf+U5PVnGXDFaSJG1jNm/ezH333cchhxwCwMqVK7nkkktYunQpO++8M1/5yleYN28ejz76KM3NzXzta19j06ZNfPKTn+RHP/oRixYt4oUXXuiy9mWXXcb73/9+HnvsMR599FEOPvhgrr32Wg444AAWL17M9ddfz9y5c1m5ciWPPPIIixcvZtGiRfz0pz9l0aJFzJo1i8WLFzNnzhwWLFjQ5WtMmzatI1i98sorzJkzhzPPPBOAM844gwULFvDYY48xZswYbrnllrrXyy233MJuu+3GggULWLBgATfffDO/+c1vGlm13eqzizBLkqS8Nm7cyIQJE4DSiNWFF17I888/z7ve9S6OPvpoAObPn8+yZcuYPHkyAK+++iqTJk3iiSeeYNSoURx44IEAfPzjH2fGjBlveY0HHniA2267DSjt07Xbbruxdu3aLZaZO3cuc+fO5bDDDgNgw4YNrFy5kvXr13P66afztre9DShtYuxKc3MzGzZsYMWKFSxfvpyjjjqKd7zjHQAsWbKEq666ipdffpkNGzYwderUutfP3Llzefzxx7nrrrsAWLduHStXrix8zqquGKwkSdpGtO9j1dnOO+/ccT+lxIc+9CHuuOOOLZbp6nlFpZT4whe+wKc+9aktpn/961+vu0b7qNXy5cs7NgMCnH/++dx7772MHz+emTNn8tBDD73luUOGDOnYl6zynFQpJb75zW82FMYa5aZASZK2I0cffTQ///nPaW1tBeAPf/gDTz75JKNHj+aZZ57hqaeeAnhL8Go3ZcoUbryxdFng119/nXXr1rHrrruyfv36jmWmTp3Krbfe2rHv1nPPPceLL77I+973Pu699142btzI+vXr+dGPflS1ndOmTeP222/ngQce4LTTTuuYvn79evbee29ee+01vv/973f53KamJhYtWgTQMTrV3q4bb7yR1157DYAnn3ySP/zhD7VXWIMMVpIk9YKU8t5yGTFiBDNnzmTatGkceuihHZsBhw0bxowZMzj55JOZOHEie+21V5fP/8Y3vsGDDz7IIYccwuGHH86yZcsYPnw4kydPZty4cVxxxRV8+MMf5k/+5E+YNGkShxxyCGeddRbr169n4sSJfOxjH2P8+PGceOKJHHHEEVXbOWbMGHbeeWc++MEPbjHids0113DUUUcxefJkRo8e3eVzL7/8cm688UYOO+wwVq9e3TH9oosuYuzYsUycOJFx48bxqU99is2bNxdck12LlPPTakBzc3Nq32O/T7S09Gy+JEkVli9fzpgxY/q6Gcqgq88yIhallJq7e64jVpIkSZkYrCRJkjIxWEmSJGVisJIkScrEYCVJkpTJNn2C0FpXA59efRbgQYGSJKlx23SwkiSpz+T+H3o39dasWcOUKVMAeOGFFxg8eDAjRowA4JFHHmHo0KE9bsL69etpamrit7/9LbvsskvH9FNOOYVPfOITHdfz62zevHl861vf4t577+1xG/o7g5UkSduA4cOHd1yWpqWlhV122YXLL798i2VSSqSUGDSo2J5Au+66K1OmTOGHP/wh5557LgBr165l/vz5W5zhfHvmPlaSJG3DWltbGTt2LOeeey4HH3wwq1atYvfdd++YP2vWLC666CIAfv/733PGGWfQ3NzMkUceyfz5899Sr/0afu1+8IMfcPLJJzNs2DDmz5/PpEmTOOyww5g8eTIrV658y/OvuuqqLa4ZOHr0aNra2gD43ve+x5FHHsmECRO45JJLOq73N5AYrCRJ2sY98cQTfOYzn2HZsmXsu+++VZe77LLL+NznPsfChQu58847OwJXpZNOOolf/vKXrF27FigFs/aLJI8ZM4af/exn/OpXv+JLX/oSV111Vd1tXLJkCffccw8PP/wwixcvZvPmzVsEuIHCTYGSJG3jDjjgAJqbu70aC/PmzWPFihUdj9euXcvGjRvZaaedOqbtuOOOnHzyydx9992ccsopLF26lOOPPx6Al19+mfPOO6/jQs6NmDdvHgsWLOho58aNG9lvv/0artPXDFaSJG3jKi9iPGjQICqvE7xp06aO+ymlunZ0nzZtGtdffz0bN27k9NNPZ8iQUpz44he/yNSpU7nk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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"metadata": {
"_uuid": "ccddee14adf117aeb4a91469cacf9f53b03797c6",
"_cell_guid": "614bafe2-a513-4c53-bde1-22f6133aba25",
"trusted": true
},
"cell_type": "code",
"source": "encoder = Model(data_in,encoded)",
"execution_count": 21,
"outputs": []
},
{
"metadata": {
"_uuid": "12e7b1e2d790c693b59a0df2091eeb8ddd631580",
"_cell_guid": "06697d10-31b4-462d-8031-fa13c9731f02",
"trusted": true
},
"cell_type": "code",
"source": "enc = encoder.predict(X_test)",
"execution_count": 22,
"outputs": []
},
{
"metadata": {
"_uuid": "7ed4bf4664bf01f018920903c01d725b46a0cd77",
"_cell_guid": "a552780b-8083-473c-869c-9279e6bdd29a",
"trusted": true
},
"cell_type": "code",
"source": "np.savez('enc.npz',enc,y_test)",
"execution_count": 23,
"outputs": []
},
{
"metadata": {
"_uuid": "203d4e60679b665c89bbb60dbf86d88a8a87e9fb",
"_cell_guid": "f2233170-0d61-4a1d-a755-ac445610b327",
"trusted": true
},
"cell_type": "code",
"source": "#from sklearn.manifold import TSNE",
"execution_count": 24,
"outputs": []
},
{
"metadata": {
"_uuid": "8c020a95be24b1365a1f095c5dbe40c134d33cee",
"_cell_guid": "7243c543-d089-42da-9f1f-305c46d1c0cb",
"trusted": true
},
"cell_type": "code",
"source": "#tsne = TSNE(verbose=1,n_iter=300)",
"execution_count": 25,
"outputs": []
},
{
"metadata": {
"_uuid": "402b7a2d0170d0254b2aab5d47101cd74eb9a40a",
"_cell_guid": "508b4381-9416-4c29-ad5d-2a52271cda1d",
"trusted": true
},
"cell_type": "code",
"source": "#res = tsne.fit_transform(enc)",
"execution_count": 26,
"outputs": []
},
{
"metadata": {
"_uuid": "1cf56c49f26a3690464716d14d92c41b97429468",
"_cell_guid": "854ed854-13ac-4f07-8ffb-b55eaac3b648",
"trusted": true
},
"cell_type": "code",
"source": "'''\nfig = plt.figure(figsize=(10,7))\nscatter =plt.scatter(res[:,0],res[:,1],c=y_test,cmap='coolwarm', s=0.6)\nscatter.axes.get_xaxis().set_visible(False)\nscatter.axes.get_yaxis().set_visible(False)\n'''",
"execution_count": 27,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 27,
"data": {
"text/plain": "\"\\nfig = plt.figure(figsize=(10,7))\\nscatter =plt.scatter(res[:,0],res[:,1],c=y_test,cmap='coolwarm', s=0.6)\\nscatter.axes.get_xaxis().set_visible(False)\\nscatter.axes.get_yaxis().set_visible(False)\\n\""
},
"metadata": {}
}
]
},
{
"metadata": {
"_uuid": "0bba9d69e6b236cb7b82945564a2864aea2bcfec",
"_cell_guid": "1ca6b355-af5b-4b8d-a794-8c4a47718982",
"trusted": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
},
{
"metadata": {
"_uuid": "93d11a6866ecbd9df3a1b25ab8d4281d47543ee3",
"collapsed": true,
"_cell_guid": "3dc58898-2f57-4feb-a7c3-383d433dafb9"
},
"cell_type": "markdown",
"source": "# VAE"
},
{
"metadata": {
"_uuid": "9a0e3bae957fba4decfd667d04de16d236ad955a",
"_cell_guid": "c93f3256-8050-4cf0-9673-d25a089918dc",
"trusted": true
},
"cell_type": "code",
"source": "import numpy as np\nimport matplotlib.pyplot as plt\nfrom scipy.stats import norm\n\nfrom keras.layers import Input, Dense, Lambda\nfrom keras.models import Model\nfrom keras import backend as K\nfrom keras import metrics",
"execution_count": 28,
"outputs": []
},
{
"metadata": {
"_uuid": "8fc46fe9924a4e258885f487778f71d2e15c87d1",
"_cell_guid": "cca61b79-7b71-49a6-8ca6-a2864ea2639d",
"trusted": true
},
"cell_type": "code",
"source": "batch_size = 100\noriginal_dim = 29\nlatent_dim = 6\nintermediate_dim = 16\nepochs = 50\nepsilon_std = 1.0\n",
"execution_count": 29,
"outputs": []
},
{
"metadata": {
"_uuid": "63b7c72aa8aee78c214208905654a2c9e28bf8a1",
"_cell_guid": "a70c9072-fec2-4200-8247-98efb58dd616",
"trusted": true
},
"cell_type": "code",
"source": "x = Input(shape=(original_dim,))\nh = Dense(intermediate_dim, activation='relu')(x)\nz_mean = Dense(latent_dim)(h)\nz_log_var = Dense(latent_dim)(h)",
"execution_count": 30,
"outputs": []
},
{
"metadata": {
"_uuid": "44fe9903864bc635783ad7e44d4263afeef9af66",
"_cell_guid": "e71f7eae-dd80-4e1c-a282-51b047627388",
"trusted": true
},
"cell_type": "code",
"source": "def sampling(args):\n z_mean, z_log_var = args\n epsilon = K.random_normal(shape=(K.shape(z_mean)[0], latent_dim), mean=0.,\n stddev=epsilon_std)\n return z_mean + K.exp(z_log_var / 2) * epsilon",
"execution_count": 31,
"outputs": []
},
{
"metadata": {
"_uuid": "d193ae8dd47ee5e363eaa3856205139aff28aebe",
"_cell_guid": "7f7049ea-7db6-4ef1-8426-67783f8e6d8b",
"trusted": true
},
"cell_type": "code",
"source": "# note that \"output_shape\" isn't necessary with the TensorFlow backend\nz = Lambda(sampling, output_shape=(latent_dim,))([z_mean, z_log_var])",
"execution_count": 32,
"outputs": []
},
{
"metadata": {
"_uuid": "0a7aba4af42824764e8f4af790a3b9baf479018e",
"_cell_guid": "25a037cf-7a53-455a-8ca9-7e5549f5dc92",
"trusted": true
},
"cell_type": "code",
"source": "# we instantiate these layers separately so as to reuse them later\ndecoder_h = Dense(intermediate_dim, activation='relu')\nh_decoded = decoder_h(z)\n\ndecoder_mean = Dense(original_dim)\nx_decoded_mean = decoder_mean(h_decoded)",
"execution_count": 33,
"outputs": []
},
{
"metadata": {
"_uuid": "3cf3e7a6857c7ec10871b732527a0511d9b22820",
"_cell_guid": "c4f6d58e-0a4c-4af4-bd90-2474b4cd27ba",
"trusted": true
},
"cell_type": "code",
"source": "# instantiate VAE model\nvae = Model(x, x_decoded_mean)",
"execution_count": 34,
"outputs": []
},
{
"metadata": {
"_uuid": "150dd9e4dbbfa8e5abb96bcbfce87deefb57fc9e",
"_cell_guid": "5fe0a9ac-c8c5-4566-ba6b-b8263cee0c01",
"trusted": true
},
"cell_type": "code",
"source": "# Compute VAE loss\nxent_loss = original_dim * metrics.mean_squared_error(x, x_decoded_mean)\nkl_loss = - 0.5 * K.sum(1 + z_log_var - K.square(z_mean) - K.exp(z_log_var), axis=-1)\nvae_loss = K.mean(xent_loss + kl_loss)",
"execution_count": 35,
"outputs": []
},
{
"metadata": {
"_uuid": "4260d4d8134471d12d2647ad2c83f9066745cc23",
"_cell_guid": "2be1ce66-b16a-4402-99e4-8baa9833f627",
"trusted": true
},
"cell_type": "code",
"source": "vae.add_loss(vae_loss)",
"execution_count": 36,
"outputs": []
},
{
"metadata": {
"_uuid": "019df269c0a73f40b16522d518074f42974348ad",
"_cell_guid": "a9e73316-5640-4ec8-9fa4-a1cbe7c2f5a2",
"trusted": true
},
"cell_type": "code",
"source": "from keras.optimizers import RMSprop\nvae.compile(optimizer=RMSprop(lr=0.1))\n#vae.summary()\n",
"execution_count": 37,
"outputs": []
},
{
"metadata": {
"_uuid": "753463dcc822c8aee2d2070ba542d436c7fe9233",
"_cell_guid": "017c9234-2a07-4ff0-8659-107f036689ee",
"trusted": true
},
"cell_type": "code",
"source": "vae.fit(X_train,\n shuffle=True,\n epochs=epochs,\n batch_size=256,\n validation_data=(X_test, None))",
"execution_count": 38,
"outputs": [
{
"output_type": "stream",
"text": "Train on 256326 samples, validate on 28481 samples\nEpoch 1/50\n256326/256326 [==============================] - 5s 18us/step - loss: 3.5317 - val_loss: 0.1338\nEpoch 2/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1327 - val_loss: 0.1285\nEpoch 3/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1293\nEpoch 4/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1325\nEpoch 5/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1327 - val_loss: 0.1200\nEpoch 6/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1328 - val_loss: 0.1358\nEpoch 7/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1296\nEpoch 8/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1369\nEpoch 9/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1307\nEpoch 10/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1308\nEpoch 11/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1325 - val_loss: 0.1398\nEpoch 12/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1325 - val_loss: 0.1469\nEpoch 13/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1284\nEpoch 14/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1342\nEpoch 15/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1300\nEpoch 16/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1327 - val_loss: 0.1238\nEpoch 17/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1397\nEpoch 18/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1162\nEpoch 19/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1380\nEpoch 20/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1327 - val_loss: 0.1237\nEpoch 21/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1274\nEpoch 22/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1254\nEpoch 23/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1327 - val_loss: 0.1326\nEpoch 24/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1247\nEpoch 25/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1278\nEpoch 26/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1309\nEpoch 27/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1325 - val_loss: 0.1331\nEpoch 28/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1325 - val_loss: 0.1457\nEpoch 29/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1336\nEpoch 30/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1360\nEpoch 31/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1325 - val_loss: 0.1319\nEpoch 32/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1312\nEpoch 33/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1307\nEpoch 34/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1314\nEpoch 35/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1327 - val_loss: 0.1327\nEpoch 36/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1435\nEpoch 37/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1327 - val_loss: 0.1419\nEpoch 38/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1360\nEpoch 39/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1325 - val_loss: 0.1252\nEpoch 40/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1305\nEpoch 41/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1333\nEpoch 42/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1245\nEpoch 43/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1327 - val_loss: 0.1414\nEpoch 44/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1474\nEpoch 45/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1366\nEpoch 46/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1247\nEpoch 47/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1326 - val_loss: 0.1233\nEpoch 48/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1325 - val_loss: 0.1406\nEpoch 49/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1327 - val_loss: 0.1303\nEpoch 50/50\n256326/256326 [==============================] - 4s 17us/step - loss: 0.1325 - val_loss: 0.1320\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 38,
"data": {
"text/plain": ""
},
"metadata": {}
}
]
},
{
"metadata": {
"_uuid": "11a6cd0780e4b3fbe8c6dd1f88a8792b29100eb6",
"_cell_guid": "73b34254-1cb3-4e1a-9358-24418adf3d67",
"trusted": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
},
{
"metadata": {
"_uuid": "abed5daec2649652cd3c04dcc6b845b456c06ea5",
"_cell_guid": "17031c3a-0715-471c-9875-cbf904e380fb",
"trusted": true
},
"cell_type": "code",
"source": "pred = autoencoder.predict(X_test[0:10])",
"execution_count": 39,
"outputs": []
},
{
"metadata": {
"_uuid": "3bc16f512f29f8768e795448b9d083395cc6bd7f",
"_cell_guid": "c26b35dd-4a1f-439b-92e9-de596b9cbbe3",
"trusted": true
},
"cell_type": "code",
"source": "\nimport matplotlib.pyplot as plt\nimport numpy as np\n\nwidth = 0.8\n\nprediction = pred[1]\ntrue_value = X_test[1]\n\nindices = np.arange(len(prediction))\n\nfig = plt.figure(figsize=(10,7))\n\nplt.bar(indices, prediction, width=width, \n color='b', label='Predicted Value')\n\nplt.bar([i+0.25*width for i in indices], true_value, \n width=0.5*width, color='r', alpha=0.5, label='True Value')\n\nplt.xticks(indices+width/2., \n ['T{}'.format(i) for i in range(len(pred))] )\n\nplt.legend()\n\nplt.show()",
"execution_count": 41,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": "",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlYAAAGfCAYAAACdqpz+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAHtFJREFUeJzt3X2U31V9J/D3JQGDwKKF4CpBE12UQBCIw9PGpxoUEA4sKNZU6/rsllK7bcXilpqptufo4nH1VARBFK2WLEWgcTdqluLTaoNJMFpIhARFM1AlpIFNNAiRu3/Mj+kkTOYpd5KZyet1zhx+3++93/v7zG/OyXnzvfd3v6XWGgAAdt0+e7oAAIDJQrACAGhEsAIAaESwAgBoRLACAGhEsAIAaESwAgBoRLACAGhEsAIAaGTqUB1KKZ9JcnaSB2qtcwZoL0k+nuTVSX6V5M211tuHGvfQQw+tM2fOHHHBAAC728qVKx+stU4fqt+QwSrJtUk+keTzO2k/M8mRnZ+Tk1zR+e+gZs6cmRUrVgzj7QEA9qxSyk+H02/IqcBa67eS/OsgXc5N8vnaa1mSp5VSnjm8MgEAJo8Wa6wOT7K+33FP5xwAwF5lty5eL6W8s5SyopSyYsOGDbvzrQEAxtxw1lgN5b4kR/Q7ntE59yS11quSXJUkXV1dtcF7A8C48Nhjj6WnpyePPPLIni6FXTBt2rTMmDEj++6776iubxGsFie5qJSyKL2L1h+utf5Lg3EBYMLo6enJQQcdlJkzZ6b3C/NMNLXWbNy4MT09PZk1a9aoxhjOdgvXJXl5kkNLKT1JFibZt1PAlUmWpHerhXXp3W7hLaOqBAAmsEceeUSomuBKKTnkkEOyK8uVhgxWtdYFQ7TXJH8w6goAYJIQqia+Xf0b2nkdAKARwQoAxkApbX+GY8qUKTn++OMzZ86cXHDBBfnVr3416vq/8Y1v5Oyzz06SLF68OB/60Id22vehhx7KJz/5yRG/R3d3dz7ykY9sd+6b3/xmTj311O3Obdu2Lc94xjNy//33j2isPUGwAoBJYv/998+qVatyxx13ZL/99suVV165XXutNY8//viIxz3nnHNyySWX7LR9tMFqIC95yUvS09OTn/703zY6v+WWW3LMMcfkWc96VpP3GEuCFQBMQi95yUuybt263HvvvXnBC16QN73pTZkzZ07Wr1+fpUuX5tRTT83cuXNzwQUXZMuWLUmSr371qznqqKMyd+7c3HjjjX1jXXvttbnooouSJL/4xS9y3nnn5bjjjstxxx2X7373u7nkkktyzz335Pjjj8/FF1+cJLnsssty4okn5oUvfGEWLlzYN9Zf//Vf5/nPf35e/OIX56677npS3fvss09e97rXZdGiRX3nFi1alAULepd8X3311TnxxBNz3HHH5TWvec2Ad+Ve/vKX9z0278EHH8wTzyb+zW9+k4svvrivrk996lO78hEPSLACgElm27Zt+cpXvpJjjz02SbJ27dpceOGFufPOO3PAAQfkr/7qr3LLLbfk9ttvT1dXVz760Y/mkUceyTve8Y58+ctfzsqVK/Pzn/98wLHf/e5352Uve1l+8IMf5Pbbb88xxxyTD33oQ3ne856XVatW5bLLLsvSpUuzdu3afO9738uqVauycuXKfOtb38rKlSuzaNGirFq1KkuWLMny5csHfI8FCxb0Batf//rXWbJkSV7zmtckSc4///wsX748P/jBDzJ79uxcc801w/5crrnmmhx88MFZvnx5li9fnquvvjo/+clPRvLRDqnFPlYAwDiwdevWHH/88Ul671i97W1vy/3335/nPOc5OeWUU5Iky5Yty+rVqzNv3rwkyaOPPppTTz01P/rRjzJr1qwceeSRSZI3vvGNueqqq570Hrfeems+//nPJ+ld03XwwQdn06ZN2/VZunRpli5dmhNOOCFJsmXLlqxduzabN2/Oeeedl6c+9alJeqcYB9LV1ZUtW7bkrrvuypo1a3LyySfnt37rt5Ikd9xxRy699NI89NBD2bJlS04//fRhfz5Lly7ND3/4w9xwww1Jkocffjhr164d9Z5VAxGsAGCSeGKN1Y4OOOCAvte11rzyla/Mddddt12fga4brVpr3ve+9+Vd73rXduc/9rGPDXuMJ+5arVmzpm8aMEne/OY35+abb85xxx2Xa6+9Nt/4xjeedO3UqVP71pL13wm/1pq/+Zu/GVEYGylTgQCwFznllFPyne98J+vWrUuS/PKXv8zdd9+do446Kvfee2/uueeeJHlS8HrC/Pnzc8UVVyTpXbP08MMP56CDDsrmzZv7+px++un5zGc+07d267777ssDDzyQl770pbn55puzdevWbN68OV/+8pd3WueCBQvyhS98IbfeemvOPffcvvObN2/OM5/5zDz22GP54he/OOC1M2fOzMqVK5Ok7+7UE3VdccUVeeyxx5Ikd999d375y18O/oGNkGAFAGOg1rY/rUyfPj3XXnttFixYkBe+8IV904DTpk3LVVddlbPOOitz587NYYcdNuD1H//4x/P1r389xx57bF70ohdl9erVOeSQQzJv3rzMmTMnF198cV71qlfld3/3d3Pqqafm2GOPzWtf+9ps3rw5c+fOze/8zu/kuOOOy5lnnpkTTzxxp3XOnj07BxxwQF7xildsd8ftgx/8YE4++eTMmzcvRx111IDXvuc978kVV1yRE044IQ8++GDf+be//e05+uijM3fu3MyZMyfvete7sm3btlF+kgMrteVfawS6urrqEyv2x8qubJ66hz4WACaoNWvWZPbs2Xu6DBoY6G9ZSllZa+0a6lp3rAAAGhGsAAAaEawAABoRrAAAGhGsAAAaEawAABrZa3deX5juIXoM1Q4Ag+ju3q3jbdy4MfPnz0+S/PznP8+UKVMyffr0JMn3vve97LfffrtcwubNmzNz5sz89Kc/zYEHHth3/uyzz85b3vKWvuf57eiWW27JJz7xidx88827XMN4t9cGKwCYTA455JC+x9J0d3fnwAMPzHve857t+tRaU2vNPvuMbsLqoIMOyvz58/MP//APecMb3pAk2bRpU5YtW7bdDud7M1OBADCJrVu3LkcffXTe8IY35Jhjjsn69evztKc9ra990aJFefvb354k+cUvfpHzzz8/XV1dOemkk7Js2bInjffEM/ye8KUvfSlnnXVWpk2blmXLluXUU0/NCSeckHnz5mXt2rVPuv7SSy/d7pmBRx11VHp6epIkn/vc53LSSSfl+OOPz4UXXtj3vL+JRLACgEnuRz/6Uf74j/84q1evzuGHH77Tfu9+97vz3ve+NytWrMj111/fF7j6e/WrX53bbrstmzZtStIbzJ54SPLs2bPz7W9/O9///vfzF3/xF7n00kuHXeMdd9yRm266Kd/97nezatWqbNu2bbsAN1GYCgSASe55z3teurqGfBpLbrnlltx11119x5s2bcrWrVuz//779517ylOekrPOOis33nhjzj777Nx555057bTTkiQPPfRQ3vSmN/U9yHkkbrnllixfvryvzq1bt+aII44Y8Th7mmAFAJNc/4cY77PP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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"metadata": {
"_uuid": "0e0f9516866bcb4ea175b7aea3f15f7871bba92e",
"_cell_guid": "e6ddec77-5941-4dab-b3c9-9a123db25d8b",
"trusted": true
},
"cell_type": "code",
"source": "frauds = np.where(y_train == 1)",
"execution_count": 42,
"outputs": []
},
{
"metadata": {
"_uuid": "87a88eafdad6d84d56b1b0c4a06811895713fe18",
"_cell_guid": "2aadc7c3-b2f8-4bc7-906d-d6f561a5cbd4",
"trusted": true
},
"cell_type": "code",
"source": "encoder = Model(x,z_mean)",
"execution_count": 43,
"outputs": []
},
{
"metadata": {
"_uuid": "5937ee1cb583fe018eafb2890d5689ca0d65476f",
"_cell_guid": "e51763f0-89ab-4b84-ba2d-357f7284c3e8",
"trusted": true
},
"cell_type": "code",
"source": "fraud_encodings = encoder.predict(X_train[frauds],batch_size=128)",
"execution_count": 44,
"outputs": []
},
{
"metadata": {
"_uuid": "5e1f46e94560b0a716ea9bf95118bf6e722abe54",
"_cell_guid": "da8feb09-3d32-49ca-9932-dae8a8283fdd",
"trusted": true
},
"cell_type": "code",
"source": "fraud_encodings.shape",
"execution_count": 45,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 45,
"data": {
"text/plain": "(443, 6)"
},
"metadata": {}
}
]
},
{
"metadata": {
"_uuid": "bc0d45d78fad4fcae0337b234f603c42dc687e06",
"_cell_guid": "dc3fdc07-ca70-4ae9-a2a3-a3d09e7547c3",
"trusted": true
},
"cell_type": "code",
"source": "decoder_input = Input(shape=(latent_dim,))\n_h_decoded = decoder_h(decoder_input)\n_x_decoded_mean = decoder_mean(_h_decoded)\ngenerator = Model(decoder_input, _x_decoded_mean)",
"execution_count": 46,
"outputs": []
},
{
"metadata": {
"_uuid": "5c57ff5566273bf7b234182dd6481f7a25dcde5a",
"_cell_guid": "b973bf00-313e-4473-8a26-2d7fa55d2e01",
"trusted": true
},
"cell_type": "code",
"source": "more_frauds = generator.predict(fraud_encodings)",
"execution_count": 47,
"outputs": []
},
{
"metadata": {
"trusted": true,
"_uuid": "5c6466eaaf38d0bf60d01d4fea34c7f535876e08"
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"language_info": {
"name": "python",
"version": "3.6.6",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
},
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
}
},
"nbformat": 4,
"nbformat_minor": 1
}