From ae91c5e1a8c6204cf23f0b878959eaee850a1f6e Mon Sep 17 00:00:00 2001 From: Jessie Liu Date: Mon, 5 Feb 2018 11:55:21 +0000 Subject: [PATCH 1/8] Use relative imports in __init__.py --- glrm/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glrm/__init__.py b/glrm/__init__.py index f3a308f..6d26511 100644 --- a/glrm/__init__.py +++ b/glrm/__init__.py @@ -1 +1 @@ -from glrm import GLRM +from .glrm import GLRM From f1fcf93e75483ed715232a1e249a799805287542 Mon Sep 17 00:00:00 2001 From: Zhangdaihong Liu Date: Mon, 5 Feb 2018 13:23:00 +0000 Subject: [PATCH 2/8] add relative import and change 'print' usage --- .../Untitled-checkpoint.ipynb | 6 +++ .../Untitled1-checkpoint.ipynb | 6 +++ glrm/Untitled.ipynb | 6 +++ glrm/Untitled1.ipynb | 50 +++++++++++++++++++ glrm/convergence.py | 2 +- glrm/glrm.py | 2 +- glrm/reg.py | 2 +- 7 files changed, 71 insertions(+), 3 deletions(-) create mode 100644 glrm/.ipynb_checkpoints/Untitled-checkpoint.ipynb create mode 100644 glrm/.ipynb_checkpoints/Untitled1-checkpoint.ipynb create mode 100644 glrm/Untitled.ipynb create mode 100644 glrm/Untitled1.ipynb diff --git a/glrm/.ipynb_checkpoints/Untitled-checkpoint.ipynb b/glrm/.ipynb_checkpoints/Untitled-checkpoint.ipynb new file mode 100644 index 0000000..2fd6442 --- /dev/null +++ b/glrm/.ipynb_checkpoints/Untitled-checkpoint.ipynb @@ -0,0 +1,6 @@ +{ + "cells": [], + "metadata": {}, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/glrm/.ipynb_checkpoints/Untitled1-checkpoint.ipynb b/glrm/.ipynb_checkpoints/Untitled1-checkpoint.ipynb new file mode 100644 index 0000000..2fd6442 --- /dev/null +++ b/glrm/.ipynb_checkpoints/Untitled1-checkpoint.ipynb @@ -0,0 +1,6 @@ +{ + "cells": [], + "metadata": {}, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/glrm/Untitled.ipynb b/glrm/Untitled.ipynb new file mode 100644 index 0000000..2fd6442 --- /dev/null +++ b/glrm/Untitled.ipynb @@ -0,0 +1,6 @@ +{ + "cells": [], + "metadata": {}, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/glrm/Untitled1.ipynb b/glrm/Untitled1.ipynb new file mode 100644 index 0000000..340b958 --- /dev/null +++ b/glrm/Untitled1.ipynb @@ -0,0 +1,50 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "import scipy.io as sio" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "workspace = sio.matlab.loadmat('/storage/essicd/data/Biobank/ANALYSIS/workspace7d.mat')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "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.6.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/glrm/convergence.py b/glrm/convergence.py index 4aba5b6..1956f02 100644 --- a/glrm/convergence.py +++ b/glrm/convergence.py @@ -15,7 +15,7 @@ def d(self): # if converge.d == True: # return True if converged if len(self) < 2: return False if len(self) > self.max_iters: - print "hit max iters for convergence object" + print( "hit max iters for convergence object") return True return abs(self.obj[-1] - self.obj[-2])/self.obj[-2] < self.TOL diff --git a/glrm/glrm.py b/glrm/glrm.py index ac9401c..54f0f2e 100644 --- a/glrm/glrm.py +++ b/glrm/glrm.py @@ -1,4 +1,4 @@ -from convergence import Convergence +from .convergence import Convergence from numpy import sqrt, repeat, tile, hstack, array, zeros, ones, sqrt, diag, asarray, hstack, vstack, split, cumsum from numpy.random import randn from copy import copy diff --git a/glrm/reg.py b/glrm/reg.py index 8b07fdd..ba2c229 100644 --- a/glrm/reg.py +++ b/glrm/reg.py @@ -1,6 +1,6 @@ from numpy.linalg import norm from numpy import sign, Inf -from util import shrinkage +from .util import shrinkage import cvxpy as cp """ From a102b30363dd1e88ed2614a69edcef07dc8dd8d1 Mon Sep 17 00:00:00 2001 From: Jessie Liu Date: Mon, 5 Feb 2018 13:24:39 +0000 Subject: [PATCH 3/8] Delete Untitled.ipynb --- glrm/Untitled.ipynb | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 glrm/Untitled.ipynb diff --git a/glrm/Untitled.ipynb b/glrm/Untitled.ipynb deleted file mode 100644 index 2fd6442..0000000 --- a/glrm/Untitled.ipynb +++ /dev/null @@ -1,6 +0,0 @@ -{ - "cells": [], - "metadata": {}, - "nbformat": 4, - "nbformat_minor": 2 -} From 90e9b09beaae3af5c753db8fe02e59b1509a6a5e Mon Sep 17 00:00:00 2001 From: Jessie Liu Date: Mon, 5 Feb 2018 13:24:47 +0000 Subject: [PATCH 4/8] Delete Untitled1.ipynb --- glrm/Untitled1.ipynb | 50 -------------------------------------------- 1 file changed, 50 deletions(-) delete mode 100644 glrm/Untitled1.ipynb diff --git a/glrm/Untitled1.ipynb b/glrm/Untitled1.ipynb deleted file mode 100644 index 340b958..0000000 --- a/glrm/Untitled1.ipynb +++ /dev/null @@ -1,50 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "import scipy.io as sio" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "workspace = sio.matlab.loadmat('/storage/essicd/data/Biobank/ANALYSIS/workspace7d.mat')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "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.6.4" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} From 03e4c3c0513f224c9e65a803e72812a04aa68ca2 Mon Sep 17 00:00:00 2001 From: Jessie Liu Date: Mon, 5 Feb 2018 14:51:23 +0000 Subject: [PATCH 5/8] Delete Untitled-checkpoint.ipynb --- glrm/.ipynb_checkpoints/Untitled-checkpoint.ipynb | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 glrm/.ipynb_checkpoints/Untitled-checkpoint.ipynb diff --git a/glrm/.ipynb_checkpoints/Untitled-checkpoint.ipynb b/glrm/.ipynb_checkpoints/Untitled-checkpoint.ipynb deleted file mode 100644 index 2fd6442..0000000 --- a/glrm/.ipynb_checkpoints/Untitled-checkpoint.ipynb +++ /dev/null @@ -1,6 +0,0 @@ -{ - "cells": [], - "metadata": {}, - "nbformat": 4, - "nbformat_minor": 2 -} From 28908b115528b801d5e27ea9a228075244ae27cf Mon Sep 17 00:00:00 2001 From: Jessie Liu Date: Mon, 5 Feb 2018 14:51:33 +0000 Subject: [PATCH 6/8] Delete Untitled1-checkpoint.ipynb --- glrm/.ipynb_checkpoints/Untitled1-checkpoint.ipynb | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 glrm/.ipynb_checkpoints/Untitled1-checkpoint.ipynb diff --git a/glrm/.ipynb_checkpoints/Untitled1-checkpoint.ipynb b/glrm/.ipynb_checkpoints/Untitled1-checkpoint.ipynb deleted file mode 100644 index 2fd6442..0000000 --- a/glrm/.ipynb_checkpoints/Untitled1-checkpoint.ipynb +++ /dev/null @@ -1,6 +0,0 @@ -{ - "cells": [], - "metadata": {}, - "nbformat": 4, - "nbformat_minor": 2 -} From fe63050bb020d1eccd188f02803964d7411ee052 Mon Sep 17 00:00:00 2001 From: Zhangdaihong Liu Date: Thu, 22 Feb 2018 10:15:50 +0000 Subject: [PATCH 7/8] fix package dependency --- glrm/Untitled.ipynb | 6 ------ glrm/Untitled1.ipynb | 50 -------------------------------------------- glrm/glrm.py | 2 +- setup.py | 4 +++- 4 files changed, 4 insertions(+), 58 deletions(-) delete mode 100644 glrm/Untitled.ipynb delete mode 100644 glrm/Untitled1.ipynb diff --git a/glrm/Untitled.ipynb b/glrm/Untitled.ipynb deleted file mode 100644 index 2fd6442..0000000 --- a/glrm/Untitled.ipynb +++ /dev/null @@ -1,6 +0,0 @@ -{ - "cells": [], - "metadata": {}, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/glrm/Untitled1.ipynb b/glrm/Untitled1.ipynb deleted file mode 100644 index 340b958..0000000 --- a/glrm/Untitled1.ipynb +++ /dev/null @@ -1,50 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "import scipy.io as sio" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "workspace = sio.matlab.loadmat('/storage/essicd/data/Biobank/ANALYSIS/workspace7d.mat')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "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.6.4" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/glrm/glrm.py b/glrm/glrm.py index 54f0f2e..dc7e48c 100644 --- a/glrm/glrm.py +++ b/glrm/glrm.py @@ -161,7 +161,7 @@ def _initialize_XY(self, B, k, missing_list): def _finalize_XY(self, Xv, Yv): """ Multiply by std, offset by mean """ - m, k = Xv.shape.size + m, k = Xv.size self.X = asarray(hstack((Xv.value, ones((m,1))))) self.Y = [asarray(yj.value)*tile(mask[0,:],(k+1,1)) \ for yj, mask in zip(Yv, self.masks)] diff --git a/setup.py b/setup.py index 296c50d..7bbd28a 100644 --- a/setup.py +++ b/setup.py @@ -10,5 +10,7 @@ url="http://github.com/cehorn/GLRM/", license="MIT", install_requires=[ "numpy >= 1.8", - "scipy >= 0.13"] + "scipy >= 0.13" + "cvxpy >= 0.4.11" + "matplotlib >= 2.1.2"] ) From 382efad27db58ab76c48324fdbb69a6ee548b898 Mon Sep 17 00:00:00 2001 From: Jessie Liu Date: Thu, 22 Feb 2018 10:54:03 +0000 Subject: [PATCH 8/8] Update README.md --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c220527..5258769 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ ## GLRM +### The original repo is out of maintained from the original author. This repo has several updates, including README, glrm.py, setup.py etc. It still has some instability issue. + GLRM is a python package for exploratory data analysis using Generalized Low Rank Models (GLRMs). @@ -63,8 +65,8 @@ For example, if a 4x4 block of data is missing from the center of A, this corresponds to rows 24-27 and columns 49-50 of submatrix 1, and rows 24-27 and columns 1-2 of submatrix 2. (Python is 0-indexed.) - missing1 = [(23, 48), (23, 49), (24, 48), (24, 49), \ - (25, 48), (25, 49), (26, 48), (26, 49)] + missing1 = [(48, 23), (49, 23), (48, 24), (49, 24), \ + (48, 22), (49, 21), (48, 21), (49, 22)] missing2 = [(23, 0), (23, 1), (24, 0), (24, 1), \ (25, 0), (25, 1), (26, 0), (26, 1)] missing_list = [missing1, missing2]