Skip to content

Instantly share code, notes, and snippets.

@yamaguchiyuto
Created November 29, 2016 06:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yamaguchiyuto/86035070f286f595f3f1078ed2002e3a to your computer and use it in GitHub Desktop.
Save yamaguchiyuto/86035070f286f595f3f1078ed2002e3a 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": {
"collapsed": false
},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from tucker import Tucker\n",
"%matplotlib inline "
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"\"\"\" Define model \"\"\"\n",
"model = Tucker(R=5,S=10,T=15,max_iter=5)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"\"\"\" Make test data \"\"\"\n",
"true_R = 5\n",
"true_S = 10\n",
"true_T = 15\n",
"true_U = np.random.normal(loc=0.0, scale=1, size=(10,true_R))\n",
"true_V = np.random.normal(loc=0.0, scale=1, size=(15,true_S))\n",
"true_W = np.random.normal(loc=0.0, scale=1, size=(20,true_T))\n",
"true_G = np.random.normal(loc=0.0, scale=1, size=(true_R, true_S, true_T))\n",
"X = {}\n",
"for i in range(true_U.shape[0]):\n",
" for j in range(true_V.shape[0]):\n",
" for k in range(true_W.shape[0]):\n",
" X[(i,j,k)]=0\n",
" for r in range(true_R):\n",
" for s in range(true_S):\n",
" for t in range(true_T):\n",
" X[(i,j,k)] += true_G[r,s,t]*true_U[i,r]*true_V[j,s]*true_W[k,t]\n",
" X[(i,j,k)] += np.random.normal(loc=0, scale=0.1)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<tucker.Tucker instance at 0x105efddd0>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.fit(X)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x109e40290>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(model._losses)\n",
"plt.ylabel('Loss')\n",
"plt.xlabel('# iters')\n",
"plt.title('Tucker')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.0669052751507\n"
]
}
],
"source": [
"residual = 0\n",
"count = 0\n",
"for indices in X:\n",
" residual += abs(X[indices]-model.predict(indices))\n",
" count += 1\n",
"print residual/count"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.11"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment