Skip to content

Instantly share code, notes, and snippets.

@rbiswas4
Created April 23, 2019 09:39
Show Gist options
  • Save rbiswas4/c0ce63b63bdc9cd4d66b5dd89a6310eb to your computer and use it in GitHub Desktop.
Save rbiswas4/c0ce63b63bdc9cd4d66b5dd89a6310eb to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"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