Created
April 23, 2019 09:39
-
-
Save rbiswas4/c0ce63b63bdc9cd4d66b5dd89a6310eb to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "import numpy as np\nfrom snmachine.snfeatures import WaveletFeatures", | |
"execution_count": 1, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": "No module named 'pymultinest'\n\n PyMultinest not found. If you would like to use, please install\n Mulitnest with 'sh install/multinest_install.sh; source install/setup.sh'\n \n", | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "Nsamps = 75\nNfeats = 100\nNdim = 3", | |
"execution_count": 12, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "X = np.random.normal(size=(Nsamps, Ndim))\nR = np.random.random((Ndim, Nfeats))\nX = np.dot(X, R)", | |
"execution_count": 13, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "X.shape", | |
"execution_count": 14, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 14, | |
"data": { | |
"text/plain": "(75, 100)" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "wf = WaveletFeatures()", | |
"execution_count": 15, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "u, s, vh = WaveletFeatures.get_svd(X)", | |
"execution_count": 35, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "u.shape", | |
"execution_count": 36, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 36, | |
"data": { | |
"text/plain": "(75, 75)" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "s.shape", | |
"execution_count": 37, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 37, | |
"data": { | |
"text/plain": "(75,)" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "vh.shape", | |
"execution_count": 38, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 38, | |
"data": { | |
"text/plain": "(75, 100)" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "vec, Z, M, scale, vals = wf._pca(X, 95, None, method='svd', normalize_variance=False)", | |
"execution_count": 39, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": "The condition number in the SVD is 3.00878444226e+20 and the normalized one is 3.23514902654e+19\n", | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "scale", | |
"execution_count": 41, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "Z.shape", | |
"execution_count": 42, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 42, | |
"data": { | |
"text/plain": "(75, 75)" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "vec.shape", | |
"execution_count": 43, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 43, | |
"data": { | |
"text/plain": "(100, 75)" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "u.shape", | |
"execution_count": 44, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 44, | |
"data": { | |
"text/plain": "(75, 75)" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "len(s)", | |
"execution_count": 45, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 45, | |
"data": { | |
"text/plain": "75" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "vec_low, Z_low, M_low, scale_low, vals_low = wf._pca(X, 5, None, method='svd', normalize_variance=False)", | |
"execution_count": 46, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": "The condition number in the SVD is 3.00878444226e+20 and the normalized one is 3.23514902654e+19\n", | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "DR = WaveletFeatures.reconstruct_datamatrix_lossy(Z, vec, M)", | |
"execution_count": 47, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "Delta = DR - X", | |
"execution_count": 48, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "var = np.sum(Delta**2, axis=1)", | |
"execution_count": 49, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "var", | |
"execution_count": 50, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 50, | |
"data": { | |
"text/plain": "array([ 3.61334069e-29, 1.97038220e-27, 3.70003108e-28,\n 3.21005529e-28, 3.13092268e-28, 6.48730880e-28,\n 2.84261867e-28, 1.44137108e-28, 7.80813047e-28,\n 5.53711215e-28, 7.27289695e-28, 4.53586932e-28,\n 2.47728033e-28, 4.20654716e-28, 6.04215838e-28,\n 1.89750322e-28, 1.39045979e-28, 5.56755592e-29,\n 1.32745211e-28, 1.08653456e-28, 1.00203246e-28,\n 6.99838269e-29, 1.43667633e-28, 1.07038660e-28,\n 2.33246779e-28, 1.47377600e-28, 6.42852094e-29,\n 1.33263760e-28, 8.24466150e-28, 1.16888733e-28,\n 7.35756549e-29, 8.15152979e-29, 6.60656549e-29,\n 8.15284436e-29, 2.48794519e-28, 1.25180710e-28,\n 6.26512715e-29, 1.45344495e-28, 1.00709516e-28,\n 8.80873579e-29, 5.33962327e-29, 3.70869396e-28,\n 2.80650363e-28, 1.13848652e-28, 1.33748131e-28,\n 9.29117432e-29, 9.49903345e-29, 7.77342407e-29,\n 1.12623424e-28, 1.63889959e-28, 7.86948005e-29,\n 1.03198717e-28, 9.38810440e-29, 1.40090414e-28,\n 6.15775392e-29, 9.10440439e-29, 9.57557322e-29,\n 1.77974416e-28, 2.70956002e-28, 9.97260970e-29,\n 1.23650865e-28, 1.00301276e-28, 2.14835945e-28,\n 9.12501440e-29, 2.05834967e-28, 1.56441548e-28,\n 6.16060031e-29, 1.00873698e-28, 2.07772404e-28,\n 5.70759879e-29, 8.59917035e-29, 2.20133022e-28,\n 7.07895442e-29, 1.32546520e-28, 1.17119844e-28])" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "## For the low dimensional case" | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "DR_low = WaveletFeatures.reconstruct_datamatrix_lossy(Z_low, vec_low, M_low)", | |
"execution_count": 51, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "Delta_low = DR_low - X", | |
"execution_count": 53, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "var_low = np.sum(Delta_low**2, axis=1)", | |
"execution_count": 56, | |
"outputs": [] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "var_low", | |
"execution_count": 57, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 57, | |
"data": { | |
"text/plain": "array([ 1.02018676e-29, 1.83388553e-27, 2.55519260e-28,\n 1.35160223e-28, 2.01543176e-28, 2.71240872e-28,\n 5.92662570e-29, 5.88263555e-29, 6.85497302e-28,\n 4.21438924e-28, 6.23455879e-28, 9.86053983e-29,\n 2.38527063e-29, 3.50035428e-29, 4.21905769e-28,\n 9.89781621e-29, 6.08200973e-29, 1.01965412e-29,\n 8.84407932e-29, 4.86016125e-29, 4.83783611e-29,\n 1.51602329e-29, 7.25162698e-29, 5.87110595e-29,\n 1.07950959e-28, 5.35734488e-29, 9.69681954e-30,\n 6.35289177e-29, 5.06130730e-28, 2.22799280e-29,\n 1.35943858e-29, 3.92752245e-29, 9.79483437e-30,\n 1.06864870e-29, 1.64575384e-28, 6.16092189e-29,\n 6.22672410e-30, 6.87409205e-29, 4.92372085e-29,\n 3.49570024e-29, 9.08208733e-31, 2.04598471e-28,\n 2.44543799e-28, 6.20858184e-29, 6.27608569e-29,\n 3.49886659e-29, 3.73008274e-29, 2.19991893e-29,\n 6.31703698e-29, 1.04437465e-28, 4.08710892e-29,\n 5.17688404e-29, 4.16320091e-29, 6.42548158e-29,\n 6.90327696e-30, 5.82264625e-29, 1.76611026e-29,\n 8.84641253e-29, 9.87285616e-29, 2.38954943e-29,\n 6.60917527e-29, 4.91313034e-29, 8.68247738e-29,\n 4.08338842e-29, 5.50985446e-29, 9.61540446e-29,\n 1.60263251e-30, 4.07055766e-29, 4.23396439e-29,\n 7.80952029e-30, 3.15867491e-29, 8.55860156e-29,\n 1.58418481e-29, 5.29962586e-29, 5.41766019e-29])" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "np.allclose(var, 0.)", | |
"execution_count": 58, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 58, | |
"data": { | |
"text/plain": "True" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "np.allclose(vals_low, 0.)", | |
"execution_count": 59, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 59, | |
"data": { | |
"text/plain": "False" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "max(var)", | |
"execution_count": 61, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 61, | |
"data": { | |
"text/plain": "1.8338855273361544e-27" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": { | |
"trusted": true | |
}, | |
"cell_type": "code", | |
"source": "max(var_low)", | |
"execution_count": 62, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 62, | |
"data": { | |
"text/plain": "1.8338855273361544e-27" | |
}, | |
"metadata": {} | |
} | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"name": "python3", | |
"display_name": "Python 3", | |
"language": "python" | |
}, | |
"language_info": { | |
"name": "python", | |
"version": "3.6.8", | |
"mimetype": "text/x-python", | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"pygments_lexer": "ipython3", | |
"nbconvert_exporter": "python", | |
"file_extension": ".py" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment