diff --git a/librec/doc/allclasses-frame.html b/librec/doc/librec-v1.0/allclasses-frame.html similarity index 100% rename from librec/doc/allclasses-frame.html rename to librec/doc/librec-v1.0/allclasses-frame.html diff --git a/librec/doc/allclasses-noframe.html b/librec/doc/librec-v1.0/allclasses-noframe.html similarity index 100% rename from librec/doc/allclasses-noframe.html rename to librec/doc/librec-v1.0/allclasses-noframe.html diff --git a/librec/doc/constant-values.html b/librec/doc/librec-v1.0/constant-values.html similarity index 100% rename from librec/doc/constant-values.html rename to librec/doc/librec-v1.0/constant-values.html diff --git a/librec/doc/deprecated-list.html b/librec/doc/librec-v1.0/deprecated-list.html similarity index 100% rename from librec/doc/deprecated-list.html rename to librec/doc/librec-v1.0/deprecated-list.html diff --git a/librec/doc/help-doc.html b/librec/doc/librec-v1.0/help-doc.html similarity index 100% rename from librec/doc/help-doc.html rename to librec/doc/librec-v1.0/help-doc.html diff --git a/librec/doc/index-files/index-1.html b/librec/doc/librec-v1.0/index-files/index-1.html similarity index 100% rename from librec/doc/index-files/index-1.html rename to librec/doc/librec-v1.0/index-files/index-1.html diff --git a/librec/doc/index-files/index-10.html b/librec/doc/librec-v1.0/index-files/index-10.html similarity index 100% rename from librec/doc/index-files/index-10.html rename to librec/doc/librec-v1.0/index-files/index-10.html diff --git a/librec/doc/index-files/index-11.html b/librec/doc/librec-v1.0/index-files/index-11.html similarity index 100% rename from librec/doc/index-files/index-11.html rename to librec/doc/librec-v1.0/index-files/index-11.html diff --git a/librec/doc/index-files/index-12.html b/librec/doc/librec-v1.0/index-files/index-12.html similarity index 100% rename from librec/doc/index-files/index-12.html rename to librec/doc/librec-v1.0/index-files/index-12.html diff --git a/librec/doc/index-files/index-13.html b/librec/doc/librec-v1.0/index-files/index-13.html similarity index 100% rename from librec/doc/index-files/index-13.html rename to librec/doc/librec-v1.0/index-files/index-13.html diff --git a/librec/doc/index-files/index-14.html b/librec/doc/librec-v1.0/index-files/index-14.html similarity index 100% rename from librec/doc/index-files/index-14.html rename to librec/doc/librec-v1.0/index-files/index-14.html diff --git a/librec/doc/index-files/index-15.html b/librec/doc/librec-v1.0/index-files/index-15.html similarity index 100% rename from librec/doc/index-files/index-15.html rename to librec/doc/librec-v1.0/index-files/index-15.html diff --git a/librec/doc/index-files/index-16.html b/librec/doc/librec-v1.0/index-files/index-16.html similarity index 100% rename from librec/doc/index-files/index-16.html rename to librec/doc/librec-v1.0/index-files/index-16.html diff --git a/librec/doc/index-files/index-17.html b/librec/doc/librec-v1.0/index-files/index-17.html similarity index 100% rename from librec/doc/index-files/index-17.html rename to librec/doc/librec-v1.0/index-files/index-17.html diff --git a/librec/doc/index-files/index-18.html b/librec/doc/librec-v1.0/index-files/index-18.html similarity index 100% rename from librec/doc/index-files/index-18.html rename to librec/doc/librec-v1.0/index-files/index-18.html diff --git a/librec/doc/index-files/index-19.html b/librec/doc/librec-v1.0/index-files/index-19.html similarity index 100% rename from librec/doc/index-files/index-19.html rename to librec/doc/librec-v1.0/index-files/index-19.html diff --git a/librec/doc/index-files/index-2.html b/librec/doc/librec-v1.0/index-files/index-2.html similarity index 100% rename from librec/doc/index-files/index-2.html rename to librec/doc/librec-v1.0/index-files/index-2.html diff --git a/librec/doc/index-files/index-3.html b/librec/doc/librec-v1.0/index-files/index-3.html similarity index 100% rename from librec/doc/index-files/index-3.html rename to librec/doc/librec-v1.0/index-files/index-3.html diff --git a/librec/doc/index-files/index-4.html b/librec/doc/librec-v1.0/index-files/index-4.html similarity index 100% rename from librec/doc/index-files/index-4.html rename to librec/doc/librec-v1.0/index-files/index-4.html diff --git a/librec/doc/index-files/index-5.html b/librec/doc/librec-v1.0/index-files/index-5.html similarity index 100% rename from librec/doc/index-files/index-5.html rename to librec/doc/librec-v1.0/index-files/index-5.html diff --git a/librec/doc/index-files/index-6.html b/librec/doc/librec-v1.0/index-files/index-6.html similarity index 100% rename from librec/doc/index-files/index-6.html rename to librec/doc/librec-v1.0/index-files/index-6.html diff --git a/librec/doc/index-files/index-7.html b/librec/doc/librec-v1.0/index-files/index-7.html similarity index 100% rename from librec/doc/index-files/index-7.html rename to librec/doc/librec-v1.0/index-files/index-7.html diff --git a/librec/doc/index-files/index-8.html b/librec/doc/librec-v1.0/index-files/index-8.html similarity index 100% rename from librec/doc/index-files/index-8.html rename to librec/doc/librec-v1.0/index-files/index-8.html diff --git a/librec/doc/index-files/index-9.html b/librec/doc/librec-v1.0/index-files/index-9.html similarity index 100% rename from librec/doc/index-files/index-9.html rename to librec/doc/librec-v1.0/index-files/index-9.html diff --git a/librec/doc/index.html b/librec/doc/librec-v1.0/index.html similarity index 100% rename from librec/doc/index.html rename to librec/doc/librec-v1.0/index.html diff --git a/librec/doc/librec/baseline/ConstantGuess.html b/librec/doc/librec-v1.0/librec/baseline/ConstantGuess.html similarity index 100% rename from librec/doc/librec/baseline/ConstantGuess.html rename to librec/doc/librec-v1.0/librec/baseline/ConstantGuess.html diff --git a/librec/doc/librec/baseline/GlobalAverage.html b/librec/doc/librec-v1.0/librec/baseline/GlobalAverage.html similarity index 100% rename from librec/doc/librec/baseline/GlobalAverage.html rename to librec/doc/librec-v1.0/librec/baseline/GlobalAverage.html diff --git a/librec/doc/librec/baseline/ItemAverage.html b/librec/doc/librec-v1.0/librec/baseline/ItemAverage.html similarity index 100% rename from librec/doc/librec/baseline/ItemAverage.html rename to librec/doc/librec-v1.0/librec/baseline/ItemAverage.html diff --git a/librec/doc/librec/baseline/MostPopular.html b/librec/doc/librec-v1.0/librec/baseline/MostPopular.html similarity index 100% rename from librec/doc/librec/baseline/MostPopular.html rename to librec/doc/librec-v1.0/librec/baseline/MostPopular.html diff --git a/librec/doc/librec/baseline/RandomGuess.html b/librec/doc/librec-v1.0/librec/baseline/RandomGuess.html similarity index 100% rename from librec/doc/librec/baseline/RandomGuess.html rename to librec/doc/librec-v1.0/librec/baseline/RandomGuess.html diff --git a/librec/doc/librec/baseline/UserAverage.html b/librec/doc/librec-v1.0/librec/baseline/UserAverage.html similarity index 100% rename from librec/doc/librec/baseline/UserAverage.html rename to librec/doc/librec-v1.0/librec/baseline/UserAverage.html diff --git a/librec/doc/librec/baseline/class-use/ConstantGuess.html b/librec/doc/librec-v1.0/librec/baseline/class-use/ConstantGuess.html similarity index 100% rename from librec/doc/librec/baseline/class-use/ConstantGuess.html rename to librec/doc/librec-v1.0/librec/baseline/class-use/ConstantGuess.html diff --git a/librec/doc/librec/baseline/class-use/GlobalAverage.html b/librec/doc/librec-v1.0/librec/baseline/class-use/GlobalAverage.html similarity index 100% rename from librec/doc/librec/baseline/class-use/GlobalAverage.html rename to librec/doc/librec-v1.0/librec/baseline/class-use/GlobalAverage.html diff --git a/librec/doc/librec/baseline/class-use/ItemAverage.html b/librec/doc/librec-v1.0/librec/baseline/class-use/ItemAverage.html similarity index 100% rename from librec/doc/librec/baseline/class-use/ItemAverage.html rename to librec/doc/librec-v1.0/librec/baseline/class-use/ItemAverage.html diff --git a/librec/doc/librec/baseline/class-use/MostPopular.html b/librec/doc/librec-v1.0/librec/baseline/class-use/MostPopular.html similarity index 100% rename from librec/doc/librec/baseline/class-use/MostPopular.html rename to librec/doc/librec-v1.0/librec/baseline/class-use/MostPopular.html diff --git a/librec/doc/librec/baseline/class-use/RandomGuess.html b/librec/doc/librec-v1.0/librec/baseline/class-use/RandomGuess.html similarity index 100% rename from librec/doc/librec/baseline/class-use/RandomGuess.html rename to librec/doc/librec-v1.0/librec/baseline/class-use/RandomGuess.html diff --git a/librec/doc/librec/baseline/class-use/UserAverage.html b/librec/doc/librec-v1.0/librec/baseline/class-use/UserAverage.html similarity index 100% rename from librec/doc/librec/baseline/class-use/UserAverage.html rename to librec/doc/librec-v1.0/librec/baseline/class-use/UserAverage.html diff --git a/librec/doc/librec/baseline/package-frame.html b/librec/doc/librec-v1.0/librec/baseline/package-frame.html similarity index 100% rename from librec/doc/librec/baseline/package-frame.html rename to librec/doc/librec-v1.0/librec/baseline/package-frame.html diff --git a/librec/doc/librec/baseline/package-summary.html b/librec/doc/librec-v1.0/librec/baseline/package-summary.html similarity index 100% rename from librec/doc/librec/baseline/package-summary.html rename to librec/doc/librec-v1.0/librec/baseline/package-summary.html diff --git a/librec/doc/librec/baseline/package-tree.html b/librec/doc/librec-v1.0/librec/baseline/package-tree.html similarity index 100% rename from librec/doc/librec/baseline/package-tree.html rename to librec/doc/librec-v1.0/librec/baseline/package-tree.html diff --git a/librec/doc/librec/baseline/package-use.html b/librec/doc/librec-v1.0/librec/baseline/package-use.html similarity index 100% rename from librec/doc/librec/baseline/package-use.html rename to librec/doc/librec-v1.0/librec/baseline/package-use.html diff --git a/librec/doc/librec/core/BPMF.html b/librec/doc/librec-v1.0/librec/core/BPMF.html similarity index 100% rename from librec/doc/librec/core/BPMF.html rename to librec/doc/librec-v1.0/librec/core/BPMF.html diff --git a/librec/doc/librec/core/BiasedMF.html b/librec/doc/librec-v1.0/librec/core/BiasedMF.html similarity index 100% rename from librec/doc/librec/core/BiasedMF.html rename to librec/doc/librec-v1.0/librec/core/BiasedMF.html diff --git a/librec/doc/librec/core/CLiMF.html b/librec/doc/librec-v1.0/librec/core/CLiMF.html similarity index 100% rename from librec/doc/librec/core/CLiMF.html rename to librec/doc/librec-v1.0/librec/core/CLiMF.html diff --git a/librec/doc/librec/core/ItemKNN.html b/librec/doc/librec-v1.0/librec/core/ItemKNN.html similarity index 100% rename from librec/doc/librec/core/ItemKNN.html rename to librec/doc/librec-v1.0/librec/core/ItemKNN.html diff --git a/librec/doc/librec/core/PMF.html b/librec/doc/librec-v1.0/librec/core/PMF.html similarity index 100% rename from librec/doc/librec/core/PMF.html rename to librec/doc/librec-v1.0/librec/core/PMF.html diff --git a/librec/doc/librec/core/RegSVD.html b/librec/doc/librec-v1.0/librec/core/RegSVD.html similarity index 100% rename from librec/doc/librec/core/RegSVD.html rename to librec/doc/librec-v1.0/librec/core/RegSVD.html diff --git a/librec/doc/librec/core/SVDPlusPlus.html b/librec/doc/librec-v1.0/librec/core/SVDPlusPlus.html similarity index 100% rename from librec/doc/librec/core/SVDPlusPlus.html rename to librec/doc/librec-v1.0/librec/core/SVDPlusPlus.html diff --git a/librec/doc/librec/core/SocialMF.html b/librec/doc/librec-v1.0/librec/core/SocialMF.html similarity index 100% rename from librec/doc/librec/core/SocialMF.html rename to librec/doc/librec-v1.0/librec/core/SocialMF.html diff --git a/librec/doc/librec/core/TrustMF.html b/librec/doc/librec-v1.0/librec/core/TrustMF.html similarity index 100% rename from librec/doc/librec/core/TrustMF.html rename to librec/doc/librec-v1.0/librec/core/TrustMF.html diff --git a/librec/doc/librec/core/UserKNN.html b/librec/doc/librec-v1.0/librec/core/UserKNN.html similarity index 100% rename from librec/doc/librec/core/UserKNN.html rename to librec/doc/librec-v1.0/librec/core/UserKNN.html diff --git a/librec/doc/librec/core/class-use/BPMF.html b/librec/doc/librec-v1.0/librec/core/class-use/BPMF.html similarity index 100% rename from librec/doc/librec/core/class-use/BPMF.html rename to librec/doc/librec-v1.0/librec/core/class-use/BPMF.html diff --git a/librec/doc/librec/core/class-use/BiasedMF.html b/librec/doc/librec-v1.0/librec/core/class-use/BiasedMF.html similarity index 100% rename from librec/doc/librec/core/class-use/BiasedMF.html rename to librec/doc/librec-v1.0/librec/core/class-use/BiasedMF.html diff --git a/librec/doc/librec/core/class-use/CLiMF.html b/librec/doc/librec-v1.0/librec/core/class-use/CLiMF.html similarity index 100% rename from librec/doc/librec/core/class-use/CLiMF.html rename to librec/doc/librec-v1.0/librec/core/class-use/CLiMF.html diff --git a/librec/doc/librec/core/class-use/ItemKNN.html b/librec/doc/librec-v1.0/librec/core/class-use/ItemKNN.html similarity index 100% rename from librec/doc/librec/core/class-use/ItemKNN.html rename to librec/doc/librec-v1.0/librec/core/class-use/ItemKNN.html diff --git a/librec/doc/librec/core/class-use/PMF.html b/librec/doc/librec-v1.0/librec/core/class-use/PMF.html similarity index 100% rename from librec/doc/librec/core/class-use/PMF.html rename to librec/doc/librec-v1.0/librec/core/class-use/PMF.html diff --git a/librec/doc/librec/core/class-use/RegSVD.html b/librec/doc/librec-v1.0/librec/core/class-use/RegSVD.html similarity index 100% rename from librec/doc/librec/core/class-use/RegSVD.html rename to librec/doc/librec-v1.0/librec/core/class-use/RegSVD.html diff --git a/librec/doc/librec/core/class-use/SVDPlusPlus.html b/librec/doc/librec-v1.0/librec/core/class-use/SVDPlusPlus.html similarity index 100% rename from librec/doc/librec/core/class-use/SVDPlusPlus.html rename to librec/doc/librec-v1.0/librec/core/class-use/SVDPlusPlus.html diff --git a/librec/doc/librec/core/class-use/SocialMF.html b/librec/doc/librec-v1.0/librec/core/class-use/SocialMF.html similarity index 100% rename from librec/doc/librec/core/class-use/SocialMF.html rename to librec/doc/librec-v1.0/librec/core/class-use/SocialMF.html diff --git a/librec/doc/librec/core/class-use/TrustMF.html b/librec/doc/librec-v1.0/librec/core/class-use/TrustMF.html similarity index 100% rename from librec/doc/librec/core/class-use/TrustMF.html rename to librec/doc/librec-v1.0/librec/core/class-use/TrustMF.html diff --git a/librec/doc/librec/core/class-use/UserKNN.html b/librec/doc/librec-v1.0/librec/core/class-use/UserKNN.html similarity index 100% rename from librec/doc/librec/core/class-use/UserKNN.html rename to librec/doc/librec-v1.0/librec/core/class-use/UserKNN.html diff --git a/librec/doc/librec/core/package-frame.html b/librec/doc/librec-v1.0/librec/core/package-frame.html similarity index 100% rename from librec/doc/librec/core/package-frame.html rename to librec/doc/librec-v1.0/librec/core/package-frame.html diff --git a/librec/doc/librec/core/package-summary.html b/librec/doc/librec-v1.0/librec/core/package-summary.html similarity index 100% rename from librec/doc/librec/core/package-summary.html rename to librec/doc/librec-v1.0/librec/core/package-summary.html diff --git a/librec/doc/librec/core/package-tree.html b/librec/doc/librec-v1.0/librec/core/package-tree.html similarity index 100% rename from librec/doc/librec/core/package-tree.html rename to librec/doc/librec-v1.0/librec/core/package-tree.html diff --git a/librec/doc/librec/core/package-use.html b/librec/doc/librec-v1.0/librec/core/package-use.html similarity index 100% rename from librec/doc/librec/core/package-use.html rename to librec/doc/librec-v1.0/librec/core/package-use.html diff --git a/librec/doc/librec/data/DataDAO.html b/librec/doc/librec-v1.0/librec/data/DataDAO.html similarity index 100% rename from librec/doc/librec/data/DataDAO.html rename to librec/doc/librec-v1.0/librec/data/DataDAO.html diff --git a/librec/doc/librec/data/DataSplitter.html b/librec/doc/librec-v1.0/librec/data/DataSplitter.html similarity index 100% rename from librec/doc/librec/data/DataSplitter.html rename to librec/doc/librec-v1.0/librec/data/DataSplitter.html diff --git a/librec/doc/librec/data/DenseMatrix.html b/librec/doc/librec-v1.0/librec/data/DenseMatrix.html similarity index 100% rename from librec/doc/librec/data/DenseMatrix.html rename to librec/doc/librec-v1.0/librec/data/DenseMatrix.html diff --git a/librec/doc/librec/data/DenseVector.html b/librec/doc/librec-v1.0/librec/data/DenseVector.html similarity index 100% rename from librec/doc/librec/data/DenseVector.html rename to librec/doc/librec-v1.0/librec/data/DenseVector.html diff --git a/librec/doc/librec/data/MatrixEntry.html b/librec/doc/librec-v1.0/librec/data/MatrixEntry.html similarity index 100% rename from librec/doc/librec/data/MatrixEntry.html rename to librec/doc/librec-v1.0/librec/data/MatrixEntry.html diff --git a/librec/doc/librec/data/SparseMatrix.html b/librec/doc/librec-v1.0/librec/data/SparseMatrix.html similarity index 100% rename from librec/doc/librec/data/SparseMatrix.html rename to librec/doc/librec-v1.0/librec/data/SparseMatrix.html diff --git a/librec/doc/librec/data/SparseVector.html b/librec/doc/librec-v1.0/librec/data/SparseVector.html similarity index 100% rename from librec/doc/librec/data/SparseVector.html rename to librec/doc/librec-v1.0/librec/data/SparseVector.html diff --git a/librec/doc/librec/data/SymmMatrix.html b/librec/doc/librec-v1.0/librec/data/SymmMatrix.html similarity index 100% rename from librec/doc/librec/data/SymmMatrix.html rename to librec/doc/librec-v1.0/librec/data/SymmMatrix.html diff --git a/librec/doc/librec/data/VectorEntry.html b/librec/doc/librec-v1.0/librec/data/VectorEntry.html similarity index 100% rename from librec/doc/librec/data/VectorEntry.html rename to librec/doc/librec-v1.0/librec/data/VectorEntry.html diff --git a/librec/doc/librec/data/class-use/DataDAO.html b/librec/doc/librec-v1.0/librec/data/class-use/DataDAO.html similarity index 100% rename from librec/doc/librec/data/class-use/DataDAO.html rename to librec/doc/librec-v1.0/librec/data/class-use/DataDAO.html diff --git a/librec/doc/librec/data/class-use/DataSplitter.html b/librec/doc/librec-v1.0/librec/data/class-use/DataSplitter.html similarity index 100% rename from librec/doc/librec/data/class-use/DataSplitter.html rename to librec/doc/librec-v1.0/librec/data/class-use/DataSplitter.html diff --git a/librec/doc/librec/data/class-use/DenseMatrix.html b/librec/doc/librec-v1.0/librec/data/class-use/DenseMatrix.html similarity index 100% rename from librec/doc/librec/data/class-use/DenseMatrix.html rename to librec/doc/librec-v1.0/librec/data/class-use/DenseMatrix.html diff --git a/librec/doc/librec/data/class-use/DenseVector.html b/librec/doc/librec-v1.0/librec/data/class-use/DenseVector.html similarity index 100% rename from librec/doc/librec/data/class-use/DenseVector.html rename to librec/doc/librec-v1.0/librec/data/class-use/DenseVector.html diff --git a/librec/doc/librec/data/class-use/MatrixEntry.html b/librec/doc/librec-v1.0/librec/data/class-use/MatrixEntry.html similarity index 100% rename from librec/doc/librec/data/class-use/MatrixEntry.html rename to librec/doc/librec-v1.0/librec/data/class-use/MatrixEntry.html diff --git a/librec/doc/librec/data/class-use/SparseMatrix.html b/librec/doc/librec-v1.0/librec/data/class-use/SparseMatrix.html similarity index 100% rename from librec/doc/librec/data/class-use/SparseMatrix.html rename to librec/doc/librec-v1.0/librec/data/class-use/SparseMatrix.html diff --git a/librec/doc/librec/data/class-use/SparseVector.html b/librec/doc/librec-v1.0/librec/data/class-use/SparseVector.html similarity index 100% rename from librec/doc/librec/data/class-use/SparseVector.html rename to librec/doc/librec-v1.0/librec/data/class-use/SparseVector.html diff --git a/librec/doc/librec/data/class-use/SymmMatrix.html b/librec/doc/librec-v1.0/librec/data/class-use/SymmMatrix.html similarity index 100% rename from librec/doc/librec/data/class-use/SymmMatrix.html rename to librec/doc/librec-v1.0/librec/data/class-use/SymmMatrix.html diff --git a/librec/doc/librec/data/class-use/VectorEntry.html b/librec/doc/librec-v1.0/librec/data/class-use/VectorEntry.html similarity index 100% rename from librec/doc/librec/data/class-use/VectorEntry.html rename to librec/doc/librec-v1.0/librec/data/class-use/VectorEntry.html diff --git a/librec/doc/librec/data/package-frame.html b/librec/doc/librec-v1.0/librec/data/package-frame.html similarity index 100% rename from librec/doc/librec/data/package-frame.html rename to librec/doc/librec-v1.0/librec/data/package-frame.html diff --git a/librec/doc/librec/data/package-summary.html b/librec/doc/librec-v1.0/librec/data/package-summary.html similarity index 100% rename from librec/doc/librec/data/package-summary.html rename to librec/doc/librec-v1.0/librec/data/package-summary.html diff --git a/librec/doc/librec/data/package-tree.html b/librec/doc/librec-v1.0/librec/data/package-tree.html similarity index 100% rename from librec/doc/librec/data/package-tree.html rename to librec/doc/librec-v1.0/librec/data/package-tree.html diff --git a/librec/doc/librec/data/package-use.html b/librec/doc/librec-v1.0/librec/data/package-use.html similarity index 100% rename from librec/doc/librec/data/package-use.html rename to librec/doc/librec-v1.0/librec/data/package-use.html diff --git a/librec/doc/librec/ext/Hybrid.html b/librec/doc/librec-v1.0/librec/ext/Hybrid.html similarity index 100% rename from librec/doc/librec/ext/Hybrid.html rename to librec/doc/librec-v1.0/librec/ext/Hybrid.html diff --git a/librec/doc/librec/ext/NMF.html b/librec/doc/librec-v1.0/librec/ext/NMF.html similarity index 100% rename from librec/doc/librec/ext/NMF.html rename to librec/doc/librec-v1.0/librec/ext/NMF.html diff --git a/librec/doc/librec/ext/SlopeOne.html b/librec/doc/librec-v1.0/librec/ext/SlopeOne.html similarity index 100% rename from librec/doc/librec/ext/SlopeOne.html rename to librec/doc/librec-v1.0/librec/ext/SlopeOne.html diff --git a/librec/doc/librec/ext/class-use/Hybrid.html b/librec/doc/librec-v1.0/librec/ext/class-use/Hybrid.html similarity index 100% rename from librec/doc/librec/ext/class-use/Hybrid.html rename to librec/doc/librec-v1.0/librec/ext/class-use/Hybrid.html diff --git a/librec/doc/librec/ext/class-use/NMF.html b/librec/doc/librec-v1.0/librec/ext/class-use/NMF.html similarity index 100% rename from librec/doc/librec/ext/class-use/NMF.html rename to librec/doc/librec-v1.0/librec/ext/class-use/NMF.html diff --git a/librec/doc/librec/ext/class-use/SlopeOne.html b/librec/doc/librec-v1.0/librec/ext/class-use/SlopeOne.html similarity index 100% rename from librec/doc/librec/ext/class-use/SlopeOne.html rename to librec/doc/librec-v1.0/librec/ext/class-use/SlopeOne.html diff --git a/librec/doc/librec/ext/package-frame.html b/librec/doc/librec-v1.0/librec/ext/package-frame.html similarity index 100% rename from librec/doc/librec/ext/package-frame.html rename to librec/doc/librec-v1.0/librec/ext/package-frame.html diff --git a/librec/doc/librec/ext/package-summary.html b/librec/doc/librec-v1.0/librec/ext/package-summary.html similarity index 100% rename from librec/doc/librec/ext/package-summary.html rename to librec/doc/librec-v1.0/librec/ext/package-summary.html diff --git a/librec/doc/librec/ext/package-tree.html b/librec/doc/librec-v1.0/librec/ext/package-tree.html similarity index 100% rename from librec/doc/librec/ext/package-tree.html rename to librec/doc/librec-v1.0/librec/ext/package-tree.html diff --git a/librec/doc/librec/ext/package-use.html b/librec/doc/librec-v1.0/librec/ext/package-use.html similarity index 100% rename from librec/doc/librec/ext/package-use.html rename to librec/doc/librec-v1.0/librec/ext/package-use.html diff --git a/librec/doc/librec/intf/IterativeRecommender.html b/librec/doc/librec-v1.0/librec/intf/IterativeRecommender.html similarity index 100% rename from librec/doc/librec/intf/IterativeRecommender.html rename to librec/doc/librec-v1.0/librec/intf/IterativeRecommender.html diff --git a/librec/doc/librec/intf/Recommender.Measure.html b/librec/doc/librec-v1.0/librec/intf/Recommender.Measure.html similarity index 100% rename from librec/doc/librec/intf/Recommender.Measure.html rename to librec/doc/librec-v1.0/librec/intf/Recommender.Measure.html diff --git a/librec/doc/librec/intf/Recommender.html b/librec/doc/librec-v1.0/librec/intf/Recommender.html similarity index 100% rename from librec/doc/librec/intf/Recommender.html rename to librec/doc/librec-v1.0/librec/intf/Recommender.html diff --git a/librec/doc/librec/intf/SocialRecommender.html b/librec/doc/librec-v1.0/librec/intf/SocialRecommender.html similarity index 100% rename from librec/doc/librec/intf/SocialRecommender.html rename to librec/doc/librec-v1.0/librec/intf/SocialRecommender.html diff --git a/librec/doc/librec/intf/class-use/IterativeRecommender.html b/librec/doc/librec-v1.0/librec/intf/class-use/IterativeRecommender.html similarity index 100% rename from librec/doc/librec/intf/class-use/IterativeRecommender.html rename to librec/doc/librec-v1.0/librec/intf/class-use/IterativeRecommender.html diff --git a/librec/doc/librec/intf/class-use/Recommender.Measure.html b/librec/doc/librec-v1.0/librec/intf/class-use/Recommender.Measure.html similarity index 100% rename from librec/doc/librec/intf/class-use/Recommender.Measure.html rename to librec/doc/librec-v1.0/librec/intf/class-use/Recommender.Measure.html diff --git a/librec/doc/librec/intf/class-use/Recommender.html b/librec/doc/librec-v1.0/librec/intf/class-use/Recommender.html similarity index 100% rename from librec/doc/librec/intf/class-use/Recommender.html rename to librec/doc/librec-v1.0/librec/intf/class-use/Recommender.html diff --git a/librec/doc/librec/intf/class-use/SocialRecommender.html b/librec/doc/librec-v1.0/librec/intf/class-use/SocialRecommender.html similarity index 100% rename from librec/doc/librec/intf/class-use/SocialRecommender.html rename to librec/doc/librec-v1.0/librec/intf/class-use/SocialRecommender.html diff --git a/librec/doc/librec/intf/package-frame.html b/librec/doc/librec-v1.0/librec/intf/package-frame.html similarity index 100% rename from librec/doc/librec/intf/package-frame.html rename to librec/doc/librec-v1.0/librec/intf/package-frame.html diff --git a/librec/doc/librec/intf/package-summary.html b/librec/doc/librec-v1.0/librec/intf/package-summary.html similarity index 100% rename from librec/doc/librec/intf/package-summary.html rename to librec/doc/librec-v1.0/librec/intf/package-summary.html diff --git a/librec/doc/librec/intf/package-tree.html b/librec/doc/librec-v1.0/librec/intf/package-tree.html similarity index 100% rename from librec/doc/librec/intf/package-tree.html rename to librec/doc/librec-v1.0/librec/intf/package-tree.html diff --git a/librec/doc/librec/intf/package-use.html b/librec/doc/librec-v1.0/librec/intf/package-use.html similarity index 100% rename from librec/doc/librec/intf/package-use.html rename to librec/doc/librec-v1.0/librec/intf/package-use.html diff --git a/librec/doc/librec/main/LibRec.html b/librec/doc/librec-v1.0/librec/main/LibRec.html similarity index 100% rename from librec/doc/librec/main/LibRec.html rename to librec/doc/librec-v1.0/librec/main/LibRec.html diff --git a/librec/doc/librec/main/class-use/LibRec.html b/librec/doc/librec-v1.0/librec/main/class-use/LibRec.html similarity index 100% rename from librec/doc/librec/main/class-use/LibRec.html rename to librec/doc/librec-v1.0/librec/main/class-use/LibRec.html diff --git a/librec/doc/librec/main/package-frame.html b/librec/doc/librec-v1.0/librec/main/package-frame.html similarity index 100% rename from librec/doc/librec/main/package-frame.html rename to librec/doc/librec-v1.0/librec/main/package-frame.html diff --git a/librec/doc/librec/main/package-summary.html b/librec/doc/librec-v1.0/librec/main/package-summary.html similarity index 100% rename from librec/doc/librec/main/package-summary.html rename to librec/doc/librec-v1.0/librec/main/package-summary.html diff --git a/librec/doc/librec/main/package-tree.html b/librec/doc/librec-v1.0/librec/main/package-tree.html similarity index 100% rename from librec/doc/librec/main/package-tree.html rename to librec/doc/librec-v1.0/librec/main/package-tree.html diff --git a/librec/doc/librec/main/package-use.html b/librec/doc/librec-v1.0/librec/main/package-use.html similarity index 100% rename from librec/doc/librec/main/package-use.html rename to librec/doc/librec-v1.0/librec/main/package-use.html diff --git a/librec/doc/overview-frame.html b/librec/doc/librec-v1.0/overview-frame.html similarity index 100% rename from librec/doc/overview-frame.html rename to librec/doc/librec-v1.0/overview-frame.html diff --git a/librec/doc/overview-summary.html b/librec/doc/librec-v1.0/overview-summary.html similarity index 100% rename from librec/doc/overview-summary.html rename to librec/doc/librec-v1.0/overview-summary.html diff --git a/librec/doc/overview-tree.html b/librec/doc/librec-v1.0/overview-tree.html similarity index 100% rename from librec/doc/overview-tree.html rename to librec/doc/librec-v1.0/overview-tree.html diff --git a/librec/doc/package-list b/librec/doc/librec-v1.0/package-list similarity index 100% rename from librec/doc/package-list rename to librec/doc/librec-v1.0/package-list diff --git a/librec/doc/resources/background.gif b/librec/doc/librec-v1.0/resources/background.gif similarity index 100% rename from librec/doc/resources/background.gif rename to librec/doc/librec-v1.0/resources/background.gif diff --git a/librec/doc/resources/tab.gif b/librec/doc/librec-v1.0/resources/tab.gif similarity index 100% rename from librec/doc/resources/tab.gif rename to librec/doc/librec-v1.0/resources/tab.gif diff --git a/librec/doc/resources/titlebar.gif b/librec/doc/librec-v1.0/resources/titlebar.gif similarity index 100% rename from librec/doc/resources/titlebar.gif rename to librec/doc/librec-v1.0/resources/titlebar.gif diff --git a/librec/doc/resources/titlebar_end.gif b/librec/doc/librec-v1.0/resources/titlebar_end.gif similarity index 100% rename from librec/doc/resources/titlebar_end.gif rename to librec/doc/librec-v1.0/resources/titlebar_end.gif diff --git a/librec/doc/stylesheet.css b/librec/doc/librec-v1.0/stylesheet.css similarity index 100% rename from librec/doc/stylesheet.css rename to librec/doc/librec-v1.0/stylesheet.css diff --git a/librec/doc/librec-v1.1/allclasses-frame.html b/librec/doc/librec-v1.1/allclasses-frame.html new file mode 100644 index 000000000..b1f03cfd1 --- /dev/null +++ b/librec/doc/librec-v1.1/allclasses-frame.html @@ -0,0 +1,62 @@ + + + +
+ +Method and Description | +
---|
librec.data.DenseMatrix.inverse()
+ use
+inv instead which is slightly faster |
+
Constructor and Description | +
---|
librec.data.SparseMatrix(int, int, Table I don't recommend to use this method as it (takes time and)
+ is better to constructe the column structure at the time when
+ you construct the row structure (of data table). This method
+ is put here (as an example) to show how to construct column
+ structure according to the data table.
+ |
+
The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.
+Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:
+Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:
+Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
+Each annotation type has its own separate page with the following sections:
+Each enum has its own separate page with the following sections:
+Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.
+There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object
. The interfaces do not inherit from java.lang.Object
.
The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.
+The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.
+These links take you to the next or previous class, interface, package, or related page.
+These links show and hide the HTML frames. All pages are available with or without frames.
+The All Classes link shows all classes and interfaces except non-static nested types.
+Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
+The Constant Field Values page lists the static final fields and their values.
+A + B
matrix operationA + B
matrix operationA + c
matrix operation, where c
is a constant.a + b
val
A + B
matrix operationA + B
matrix operationA + c
matrix operation, where c
is a constant.a - b
val
matrix x vector
between current matrix and a given vectora * b^t
readData(int[] rels)
toPath
UserID Sep #Ratings
ItemID Sep2 Rating
sep
to a data file separated by
+ toSep
UserId ItemId Rating
,
+ separted by " \t,"numGiven
ratings are preserved for each user, and
+ the rest are used as the testing datanumGiven
ratings are preserved for each user, and
+ the rest are used as the testing dataa^t * b
a^t * b
inverse
, especailly when numRows
is large.inv
instead which is slightly fasterpublic class ConstantGuess +extends Recommender+
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
ConstantGuess(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
execute, getEvalInfo, run, toString
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public ConstantGuess(SparseMatrix trainMatrix, + SparseMatrix testMatrix, + int fold)+
public class GlobalAverage +extends Recommender+
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
GlobalAverage(SparseMatrix rm,
+ SparseMatrix tm,
+ int fold) |
+
execute, getEvalInfo, run, toString
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public GlobalAverage(SparseMatrix rm, + SparseMatrix tm, + int fold)+
public class ItemAverage +extends Recommender+
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
ItemAverage(SparseMatrix rm,
+ SparseMatrix tm,
+ int fold) |
+
execute, getEvalInfo, run, toString
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public ItemAverage(SparseMatrix rm, + SparseMatrix tm, + int fold)+
public class MostPopular +extends Recommender+
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
MostPopular(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
execute, getEvalInfo, run, toString
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public MostPopular(SparseMatrix trainMatrix, + SparseMatrix testMatrix, + int fold)+
public class RandomGuess +extends Recommender+
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
RandomGuess(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
execute, getEvalInfo, run, toString
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public RandomGuess(SparseMatrix trainMatrix, + SparseMatrix testMatrix, + int fold)+
public class UserAverage +extends Recommender+
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
UserAverage(SparseMatrix rm,
+ SparseMatrix tm,
+ int fold) |
+
execute, getEvalInfo, run, toString
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public UserAverage(SparseMatrix rm, + SparseMatrix tm, + int fold)+
Class | +Description | +
---|---|
ConstantGuess | +
+ Baseline: predict by a constant rating
+ |
+
GlobalAverage | +
+ Baseline: predict by average rating of all users
+ |
+
ItemAverage | +
+ Baseline: predict by the average of target item's ratings
+ |
+
MostPopular | +
+ Baseline: items are weighted by the number of ratings they received.
+ |
+
RandomGuess | +
+ Baseline: predict by a random value in (minRate, maxRate)
+ |
+
UserAverage | +
+ Baseline: predict by the average of target user's ratings
+ |
+
public class DataConvertor
+extends java.lang.Object
+UserId ItemId Rating
,
+ separted by " \t,"Constructor and Description | +
---|
DataConvertor(java.lang.String sourcePath,
+ java.lang.String targetPath) |
+
Modifier and Type | +Method and Description | +
---|---|
void |
+cvtFirstLines(java.lang.String sep1,
+ java.lang.String sep2)
+
+ Source File Format:
++ First Line: UserID Sep #Ratings + Other Lines: ItemID Sep2 Rating |
+
void |
+cvtSeparator(java.lang.String sep,
+ java.lang.String toSep)
+Convert a data file separated by
+sep to a data file separated by
+ toSep |
+
void |
+setSourcePath(java.lang.String sourcePath) |
+
void |
+setTargetPath(java.lang.String targetPath) |
+
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
public DataConvertor(java.lang.String sourcePath, + java.lang.String targetPath) + throws java.lang.Exception+
sourcePath
- path to the source filetargetPath
- path to the target filejava.lang.Exception
public void cvtSeparator(java.lang.String sep, + java.lang.String toSep) + throws java.lang.Exception+
sep
to a data file separated by
+ toSep
sep
- separator of the source filetoSep
- separtor of the target filejava.lang.Exception
public void cvtFirstLines(java.lang.String sep1, + java.lang.String sep2) + throws java.lang.Exception+
+ Source File Format:
+ First Line: UserID Sep #Ratings
+ Other Lines: ItemID Sep2 Rating
+
sep1
- the separtor of the first linesep2
- the separtor of the other linesjava.lang.Exception
public void setSourcePath(java.lang.String sourcePath)+
public void setTargetPath(java.lang.String targetPath)+
public class DataDAO
+extends java.lang.Object
+Constructor and Description | +
---|
DataDAO(java.lang.String path)
+Contructor for data DAO object
+ |
+
DataDAO(java.lang.String path,
+ com.google.common.collect.BiMap<java.lang.String,java.lang.Integer> userIds)
+Contructor for data DAO object
+ |
+
DataDAO(java.lang.String path,
+ com.google.common.collect.BiMap<java.lang.String,java.lang.Integer> userIds,
+ com.google.common.collect.BiMap<java.lang.String,java.lang.Integer> itemIds)
+Constructor for a data DAO object
+ |
+
Modifier and Type | +Method and Description | +
---|---|
java.lang.String |
+getDataPath() |
+
java.lang.String |
+getItemId(int innerId) |
+
int |
+getItemId(java.lang.String rawId) |
+
com.google.common.collect.BiMap<java.lang.String,java.lang.Integer> |
+getItemIds() |
+
SparseMatrix |
+getRateMatrix() |
+
java.util.List<java.lang.Double> |
+getScales() |
+
java.lang.String |
+getUserId(int innerId) |
+
int |
+getUserId(java.lang.String rawId) |
+
com.google.common.collect.BiMap<java.lang.String,java.lang.Integer> |
+getUserIds() |
+
boolean |
+isItemAsUser() |
+
int |
+numItems() |
+
int |
+numRates() |
+
int |
+numUsers() |
+
void |
+printDistr(boolean isWriteOut)
+print out distributions of the dataset
++ + + #users (y) -- #ratings (x) (that are issued by each user) + #items (y) -- #ratings (x) (that received by each item) + |
+
void |
+printSpecs()
+print out specifications of the dataset
+ |
+
SparseMatrix |
+readData()
+Default relevant columns {0: user column, 1: item column, 2: rate
+ column}; otherwise try
+readData(int[] rels) |
+
SparseMatrix |
+readData(boolean isCCSUsed) |
+
SparseMatrix |
+readData(int[] cols,
+ boolean isCCSUsed)
+Read data from the data file
+ |
+
void |
+writeArff(java.lang.String relation,
+ java.lang.String toPath)
+Write rate matrix to a data file with format ".arff" which can be used by
+ the PREA toolkit
+ |
+
void |
+writeData(java.lang.String toPath)
+Default sep=" " is adopted
+ |
+
void |
+writeData(java.lang.String toPath,
+ java.lang.String sep)
+write the rate data to another data file given by the path
+toPath |
+
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
public DataDAO(java.lang.String path, + com.google.common.collect.BiMap<java.lang.String,java.lang.Integer> userIds, + com.google.common.collect.BiMap<java.lang.String,java.lang.Integer> itemIds)+
path
- path to data fileuserIds
- user: {raw id, inner id} mapitemIds
- item: {raw id, inner id} mappublic DataDAO(java.lang.String path)+
path
- path to data filepublic DataDAO(java.lang.String path, + com.google.common.collect.BiMap<java.lang.String,java.lang.Integer> userIds)+
public SparseMatrix readData() + throws java.lang.Exception+
readData(int[] rels)
java.lang.Exception
public SparseMatrix readData(boolean isCCSUsed) + throws java.lang.Exception+
isCCSUsed
- whether to construct CCS structures while reading datajava.lang.Exception
public SparseMatrix readData(int[] cols, + boolean isCCSUsed) + throws java.lang.Exception+
cols
- the indexes of the relevant columns in the data fileisCCSUsed
- whether to store the CCS structures of the rating matrixjava.lang.Exception
public void writeData(java.lang.String toPath, + java.lang.String sep) + throws java.lang.Exception+
toPath
toPath
- the data file to write tosep
- the sparator of the written data filejava.lang.Exception
public void writeData(java.lang.String toPath) + throws java.lang.Exception+
java.lang.Exception
public void writeArff(java.lang.String relation, + java.lang.String toPath) + throws java.lang.Exception+
relation
- relation name of datasettoPath
- data file pathjava.lang.Exception
public void printSpecs() + throws java.lang.Exception+
java.lang.Exception
public void printDistr(boolean isWriteOut) + throws java.lang.Exception+
java.lang.Exception
public int numUsers()+
public int numItems()+
public int numRates()+
public int getUserId(java.lang.String rawId)+
rawId
- raw user id as Stringpublic java.lang.String getUserId(int innerId)+
innerId
- inner user id as intpublic int getItemId(java.lang.String rawId)+
rawId
- raw item id as Stringpublic java.lang.String getItemId(int innerId)+
innerId
- inner user id as intpublic java.lang.String getDataPath()+
public SparseMatrix getRateMatrix()+
public boolean isItemAsUser()+
public java.util.List<java.lang.Double> getScales()+
public com.google.common.collect.BiMap<java.lang.String,java.lang.Integer> getUserIds()+
public com.google.common.collect.BiMap<java.lang.String,java.lang.Integer> getItemIds()+
public class DataSplitter
+extends java.lang.Object
+Constructor and Description | +
---|
DataSplitter(SparseMatrix rateMatrix)
+Construct a data splitter with data source of a given rate matrix
+ |
+
DataSplitter(SparseMatrix rateMatrix,
+ int kfold)
+Construct a data splitter to split a given matrix into kfolds
+ |
+
Modifier and Type | +Method and Description | +
---|---|
SparseMatrix[] |
+getDataView(java.lang.String view) |
+
SparseMatrix[] |
+getGiven(double ratio)
+Split ratings into two parts: the training set consisting of user-item
+ ratings where
+numGiven ratings are preserved for each user, and
+ the rest are used as the testing data |
+
SparseMatrix[] |
+getGiven(int numGiven)
+Split ratings into two parts: the training set consisting of user-item
+ ratings where
+numGiven ratings are preserved for each user, and
+ the rest are used as the testing data |
+
SparseMatrix[] |
+getKthFold(int k)
+Return the k-th fold as test set (testMatrix), making all the others as
+ train set in rateMatrix.
+ |
+
SparseMatrix[] |
+getRatio(double ratio)
+Split ratings into two parts: (1-ratio) training, (ratio) testing data
+ |
+
void |
+getSample(int numUsers,
+ int numItems)
+generate a random sample of rate matrix with specified number of users
+ and items
+ |
+
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
public DataSplitter(SparseMatrix rateMatrix, + int kfold)+
rateMatrix
- data matrixkfold
- number of folds to splitpublic DataSplitter(SparseMatrix rateMatrix)+
rateMatrix
- data sourcepublic SparseMatrix[] getRatio(double ratio)+
ratio
- the ratio of training data over all the ratings.public SparseMatrix[] getGiven(int numGiven) + throws java.lang.Exception+
numGiven
ratings are preserved for each user, and
+ the rest are used as the testing datanumGiven
- the number of ratings given to each userjava.lang.Exception
public SparseMatrix[] getGiven(double ratio) + throws java.lang.Exception+
numGiven
ratings are preserved for each user, and
+ the rest are used as the testing datanumGiven
- the number of ratings given to each userjava.lang.Exception
public void getSample(int numUsers, + int numItems) + throws java.lang.Exception+
numUsers
- number of users, -1 to use all users;numItems
- number of items, -1 to user all items;java.lang.Exception
public SparseMatrix[] getDataView(java.lang.String view)+
public SparseMatrix[] getKthFold(int k)+
k
- The index for desired fold.public class DenseMatrix
+extends java.lang.Object
+Constructor and Description | +
---|
DenseMatrix(DenseMatrix mat)
+Construct a dense matrix by copying data from a given matrix
+ |
+
DenseMatrix(double[][] array)
+Construct a dense matrix by copying data from a given 2D array
+ |
+
DenseMatrix(int numRows,
+ int numColumns)
+Construct a dense matrix with specified dimensions
+ |
+
Modifier and Type | +Method and Description | +
---|---|
DenseMatrix |
+add(DenseMatrix mat)
+Do
+A + B matrix operation |
+
DenseMatrix |
+add(double val)
+Do
+A + c matrix operation, where c is a constant. |
+
void |
+add(int row,
+ int column,
+ double val)
+Add a value to entry [row, column]
+ |
+
DenseMatrix |
+add(SparseMatrix mat)
+Do
+A + B matrix operation |
+
DenseMatrix |
+cholesky() |
+
DenseMatrix |
+clone()
+Make a deep copy of current matrix
+ |
+
static double |
+colMult(DenseMatrix m,
+ int mcol,
+ DenseMatrix n,
+ int ncol)
+column x column of two matrix
+ |
+
DenseVector |
+column(int column) |
+
double |
+columnMean(int column)
+Compute mean of a column of the current matrix
+ |
+
DenseMatrix |
+cov() |
+
static DenseMatrix |
+eye(int dim)
+Construct an identity matrix
+ |
+
double |
+get(int row,
+ int column)
+Get the value at entry [row, column]
+ |
+
void |
+init()
+initialize a dense matrix with small random values in (0, 1)
+ |
+
void |
+init(double range)
+initialize a dense matrix with small random values in (0, range)
+ |
+
void |
+init(double mean,
+ double sigma)
+Initialize a dense matrix with small Guassian values
++ + NOTE: small initial values make it easier to train a + model; otherwise a very small learning rate may be needed (especially + when the number of factors is large) which can cause bad performance. |
+
DenseMatrix |
+inv()
+NOTE: this implementation (adopted from PREA package) is slightly faster
+ than
+inverse , especailly when numRows is large. |
+
DenseMatrix |
+inverse()
+Deprecated.
+
+use
+inv instead which is slightly faster |
+
DenseMatrix |
+minus(DenseMatrix mat)
+Do
+A + B matrix operation |
+
DenseMatrix |
+minus(double val)
+Do
+A + c matrix operation, where c is a constant. |
+
DenseMatrix |
+minus(SparseMatrix mat)
+Do
+A + B matrix operation |
+
DenseMatrix |
+mult(DenseMatrix mat)
+Matrix multiplication with a dense matrix
+ |
+
DenseVector |
+mult(DenseVector vec)
+Do
+matrix x vector between current matrix and a given vector |
+
DenseMatrix |
+mult(SparseMatrix mat)
+Matrix multiplication with a sparse matrix
+ |
+
static DenseMatrix |
+mult(SparseMatrix sm,
+ DenseMatrix dm)
+Matrix multiplication of a sparse matrix by a dense matrix
+ |
+
DenseVector |
+mult(SparseVector vec) |
+
double |
+norm() |
+
int |
+numColumns() |
+
int |
+numRows() |
+
static double |
+product(DenseMatrix m,
+ int mrow,
+ DenseMatrix n,
+ int ncol)
+dot product of row x col between two matrices
+ |
+
DenseVector |
+row(int rowId) |
+
DenseVector |
+row(int rowId,
+ boolean deep) |
+
static double |
+rowMult(DenseMatrix m,
+ int mrow,
+ DenseMatrix n,
+ int nrow)
+row x row of two matrix
+ |
+
DenseMatrix |
+scale(double val) |
+
void |
+set(int row,
+ int column,
+ double val)
+Set a value to entry [row, column]
+ |
+
void |
+setRow(int row,
+ DenseVector vals)
+set values of one dense vector to a specific row
+ |
+
void |
+setRow(int row,
+ double val)
+set one value to a specific row
+ |
+
java.lang.String |
+toString() |
+
DenseMatrix |
+transpose() |
+
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public DenseMatrix(int numRows, + int numColumns)+
numRows
- number of rowsnumColumns
- number of columnspublic DenseMatrix(double[][] array)+
array
- data arraypublic DenseMatrix(DenseMatrix mat)+
mat
- input matrixpublic DenseMatrix clone()+
clone
in class java.lang.Object
public static DenseMatrix eye(int dim)+
dim
- dimensionpublic void init(double mean, + double sigma)+
public void init(double range)+
public void init()+
public int numRows()+
public int numColumns()+
public DenseVector row(int rowId)+
rowId
- row idpublic DenseVector row(int rowId, + boolean deep)+
rowId
- row iddeep
- whether to copy data or only shallow copy for executing
+ speedup purposepublic DenseVector column(int column)+
column
- column idpublic double columnMean(int column)+
column
- column idpublic double norm()+
public static double rowMult(DenseMatrix m, + int mrow, + DenseMatrix n, + int nrow)+
m
- the first matrixmrow
- row of the first matrixn
- the second matrixnrow
- row of the second matrixpublic static double colMult(DenseMatrix m, + int mcol, + DenseMatrix n, + int ncol)+
m
- the first matrixmcol
- column of the first matrixn
- the second matrixncol
- column of the second matrixpublic static double product(DenseMatrix m, + int mrow, + DenseMatrix n, + int ncol)+
m
- the first matrixmrow
- row id of the first matrixn
- the second matrixncol
- column id of the second matrixpublic DenseMatrix mult(DenseMatrix mat)+
mat
- a dense matrixpublic DenseMatrix mult(SparseMatrix mat)+
mat
- a sparse matrixpublic DenseVector mult(DenseVector vec)+
matrix x vector
between current matrix and a given vectormatrix x vector
public DenseVector mult(SparseVector vec)+
public static DenseMatrix mult(SparseMatrix sm, + DenseMatrix dm)+
sm
- a sparse matrixdm
- a dense matrixpublic double get(int row, + int column)+
public void set(int row, + int column, + double val)+
public void add(int row, + int column, + double val)+
public DenseMatrix scale(double val)+
public DenseMatrix add(DenseMatrix mat)+
A + B
matrix operationC = A + B
public DenseMatrix add(SparseMatrix mat)+
A + B
matrix operationC = A + B
public DenseMatrix add(double val)+
A + c
matrix operation, where c
is a constant. Each
+ entries will be added by c
C = A + c
public DenseMatrix minus(DenseMatrix mat)+
A + B
matrix operationC = A + B
public DenseMatrix minus(SparseMatrix mat)+
A + B
matrix operationC = A + B
public DenseMatrix minus(double val)+
A + c
matrix operation, where c
is a constant. Each
+ entries will be added by c
C = A + c
public DenseMatrix cholesky()+
public DenseMatrix transpose()+
public DenseMatrix cov()+
public DenseMatrix inverse()+
inv
instead which is slightly fasterpublic DenseMatrix inv()+
inverse
, especailly when numRows
is large.public void setRow(int row, + double val)+
row
- row idval
- value to be setpublic void setRow(int row, + DenseVector vals)+
row
- row idvals
- values of a dense vectorpublic java.lang.String toString()+
toString
in class java.lang.Object
public class DenseVector
+extends java.lang.Object
+Constructor and Description | +
---|
DenseVector(DenseVector vec)
+Construct a dense vector by deeply copying data from a given vector
+ |
+
DenseVector(double[] array)
+Construct a dense vector by deeply copying data from a given array
+ |
+
DenseVector(double[] array,
+ boolean deep)
+Construct a dense vector by copying data from a given array
+ |
+
DenseVector(int size)
+Construct a dense vector with a specific size
+ |
+
Modifier and Type | +Method and Description | +
---|---|
DenseVector |
+add(DenseVector vec)
+Do vector operation:
+a + b |
+
DenseVector |
+add(double val) |
+
void |
+add(int idx,
+ double val)
+Add a value to entry [index]
+ |
+
DenseVector |
+clone()
+Make a deep copy of current vector
+ |
+
double |
+get(int idx)
+Get a value at entry [index]
+ |
+
double[] |
+getData() |
+
void |
+init()
+Initialize a dense vector with Uniform values in (0, 1)
+ |
+
void |
+init(double mean,
+ double sigma)
+Initialize a dense vector with Gaussian values
+ |
+
double |
+inner(DenseVector vec)
+Do vector operation:
+a^t * b |
+
double |
+inner(SparseVector vec)
+Do vector operation:
+a^t * b |
+
double |
+mean() |
+
DenseVector |
+minus(DenseVector vec)
+Do vector operation:
+a - b |
+
DenseVector |
+minus(double val) |
+
void |
+minus(int idx,
+ double val)
+Substract a value from entry [index]
+ |
+
DenseMatrix |
+outer(DenseVector vec)
+Do vector operation:
+a * b^t |
+
DenseVector |
+scale(double val) |
+
void |
+set(int idx,
+ double val)
+Set a value to entry [index]
+ |
+
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
public DenseVector(int size)+
size
- the size of vectorpublic DenseVector(double[] array)+
public DenseVector(double[] array, + boolean deep)+
array
- a given data arraydeep
- whether to deep copy array datapublic DenseVector(DenseVector vec)+
public DenseVector clone()+
clone
in class java.lang.Object
public void init(double mean, + double sigma)+
public void init()+
public double get(int idx)+
public double[] getData()+
public double mean()+
public void set(int idx, + double val)+
public void add(int idx, + double val)+
public void minus(int idx, + double val)+
public DenseVector add(double val)+
public DenseVector minus(double val)+
public DenseVector scale(double val)+
public DenseVector add(DenseVector vec)+
a + b
c = a + b
public DenseVector minus(DenseVector vec)+
a - b
c = a - b
public double inner(DenseVector vec)+
a^t * b
public double inner(SparseVector vec)+
a^t * b
public DenseMatrix outer(DenseVector vec)+
a * b^t
public class DiagMatrix +extends SparseMatrix+
Constructor and Description | +
---|
DiagMatrix(DiagMatrix mat) |
+
DiagMatrix(int rows,
+ int cols,
+ com.google.common.collect.Table<java.lang.Integer,java.lang.Integer,java.lang.Double> dataTable) |
+
Modifier and Type | +Method and Description | +
---|---|
DiagMatrix |
+add(DiagMatrix that) |
+
DiagMatrix |
+add(double val)
+Each diagonal entry addes
+val |
+
DiagMatrix |
+clone()
+Make a deep clone of current matrix
+ |
+
static DiagMatrix |
+eye(int n) |
+
DiagMatrix |
+minus(DiagMatrix that) |
+
DiagMatrix |
+minus(double val)
+Each diagonal entry abstracts
+val |
+
DiagMatrix |
+scale(double val) |
+
add, column, columns, columnSize, columnZeros, get, getColumnIndices, getData, getRowPointers, iterator, mean, numColumns, numRows, row, row, rows, rowSize, rowZeros, set, size, sum, toString, transpose
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public DiagMatrix(int rows, + int cols, + com.google.common.collect.Table<java.lang.Integer,java.lang.Integer,java.lang.Double> dataTable)+
public DiagMatrix(DiagMatrix mat)+
public DiagMatrix clone()+
SparseMatrix
clone
in class SparseMatrix
public DiagMatrix scale(double val)+
public DiagMatrix add(DiagMatrix that)+
public DiagMatrix add(double val)+
val
val
- a value to be addedpublic DiagMatrix minus(DiagMatrix that)+
public DiagMatrix minus(double val)+
val
val
- a value to be abstractedpublic static DiagMatrix eye(int n)+
public interface MatrixEntry
+Modifier and Type | +Method and Description | +
---|---|
int |
+column()
+Returns the current column index
+ |
+
double |
+get()
+Returns the value at the current index
+ |
+
int |
+row()
+Returns the current row index
+ |
+
void |
+set(double value)
+Sets the value at the current index
+ |
+
int row()+
int column()+
double get()+
void set(double value)+
public class SparseMatrix +extends java.lang.Object +implements java.lang.Iterable<MatrixEntry>+
Constructor and Description | +
---|
SparseMatrix(int rows,
+ int cols,
+ com.google.common.collect.Table<java.lang.Integer,java.lang.Integer,java.lang.Double> dataTable)
+Construct a sparse matrix with only CRS structures
+ |
+
SparseMatrix(int rows,
+ int cols,
+ com.google.common.collect.Table<java.lang.Integer,java.lang.Integer,java.lang.Double> dataTable,
+ boolean isCCSUsed)
+Deprecated.
+
+I don't recommend to use this method as it (takes time and)
+ is better to constructe the column structure at the time when
+ you construct the row structure (of data table). This method
+ is put here (as an example) to show how to construct column
+ structure according to the data table.
+ |
+
SparseMatrix(int rows,
+ int cols,
+ com.google.common.collect.Table<java.lang.Integer,java.lang.Integer,java.lang.Double> dataTable,
+ com.google.common.collect.Multimap<java.lang.Integer,java.lang.Integer> colMap)
+Construct a sparse matrix with both CRS and CCS structures
+ |
+
SparseMatrix(SparseMatrix mat) |
+
SparseMatrix(SparseMatrix mat,
+ boolean deap)
+Construct a sparse matrix from another sparse matrix
+ |
+
Modifier and Type | +Method and Description | +
---|---|
void |
+add(int row,
+ int column,
+ double val)
+Add a value to entry [row, column]
+ |
+
SparseMatrix |
+clone()
+Make a deep clone of current matrix
+ |
+
SparseVector |
+column(int col)
+get a col sparse vector of a matrix
+ |
+
java.util.List<java.lang.Integer> |
+columns() |
+
int |
+columnSize(int col)
+query the size of a specific col
+ |
+
java.util.List<java.lang.Integer> |
+columnZeros(int col)
+get a list of entries (for a specific column) with values 0
+ |
+
double |
+get(int row,
+ int column)
+Retrieve value at entry [row, column]
+ |
+
int[] |
+getColumnIndices() |
+
double[] |
+getData() |
+
int[] |
+getRowPointers() |
+
java.util.Iterator<MatrixEntry> |
+iterator() |
+
double |
+mean() |
+
int |
+numColumns() |
+
int |
+numRows() |
+
SparseVector |
+row(int row)
+get a row sparse vector of a matrix
+ |
+
SparseVector |
+row(int row,
+ int except)
+get a row sparse vector of a matrix
+ |
+
java.util.List<java.lang.Integer> |
+rows() |
+
int |
+rowSize(int row)
+query the size of a specific row
+ |
+
java.util.List<java.lang.Integer> |
+rowZeros(int row)
+get a list of entries (for a specific row) with values 0
+ |
+
void |
+set(int row,
+ int column,
+ double val)
+Set a value to entry [row, column]
+ |
+
int |
+size() |
+
double |
+sum() |
+
java.lang.String |
+toString() |
+
SparseMatrix |
+transpose() |
+
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public SparseMatrix(int rows, + int cols, + com.google.common.collect.Table<java.lang.Integer,java.lang.Integer,java.lang.Double> dataTable, + com.google.common.collect.Multimap<java.lang.Integer,java.lang.Integer> colMap)+
public SparseMatrix(int rows, + int cols, + com.google.common.collect.Table<java.lang.Integer,java.lang.Integer,java.lang.Double> dataTable)+
public SparseMatrix(int rows, + int cols, + com.google.common.collect.Table<java.lang.Integer,java.lang.Integer,java.lang.Double> dataTable, + boolean isCCSUsed)+
public SparseMatrix(SparseMatrix mat)+
public SparseMatrix(SparseMatrix mat, + boolean deap)+
mat
- the original sparse matrixdeap
- whether to copy the CCS structurespublic SparseMatrix clone()+
clone
in class java.lang.Object
public SparseMatrix transpose()+
public int[] getRowPointers()+
public int[] getColumnIndices()+
public int size()+
public int numRows()+
public int numColumns()+
public double[] getData()+
public void set(int row, + int column, + double val)+
row
- row idcolumn
- column idval
- value to setpublic void add(int row, + int column, + double val)+
row
- row idcolumn
- column idval
- value to addpublic double get(int row, + int column)+
row
- row idcolumn
- column idpublic SparseVector row(int row)+
row
- row idpublic java.util.List<java.lang.Integer> rowZeros(int row)+
row
- row idpublic SparseVector row(int row, + int except)+
row
- row idexcept
- row id to be excludedpublic int rowSize(int row)+
row
- row idpublic java.util.List<java.lang.Integer> rows()+
public SparseVector column(int col)+
col
- col idpublic java.util.List<java.lang.Integer> columnZeros(int col)+
col
- column idpublic int columnSize(int col)+
col
- col idpublic java.util.List<java.lang.Integer> columns()+
public double sum()+
public double mean()+
public java.lang.String toString()+
toString
in class java.lang.Object
public java.util.Iterator<MatrixEntry> iterator()+
iterator
in interface java.lang.Iterable<MatrixEntry>
public class SparseVector +extends java.lang.Object +implements java.lang.Iterable<VectorEntry>+
Constructor and Description | +
---|
SparseVector(int capcity)
+Construct a sparse vector with its maximum capacity
+ |
+
SparseVector(int capcity,
+ double[] array)
+Construct a sparse vector with its maximum capacity, filled with given
+ data array
+ |
+
SparseVector(SparseVector sv)
+Construct a sparse vecto by deeply copying another vector
+ |
+
Modifier and Type | +Method and Description | +
---|---|
void |
+add(int idx,
+ double val)
+Add a value to entry [idx]
+ |
+
boolean |
+contains(int idx)
+Check if a vector contains a specific index
+ |
+
double |
+get(int idx)
+Retrieve a value at entry [idx]
+ |
+
int |
+getCount()
+Number of entries in the sparse structure
+ |
+
double[] |
+getData()
+Returns the internal data
+ |
+
int[] |
+getIndex()
+Returns the indices
+ |
+
double |
+inner(DenseVector vec) |
+
double |
+inner(SparseVector vec) |
+
java.util.Iterator<VectorEntry> |
+iterator() |
+
double |
+mean() |
+
void |
+set(int idx,
+ double val)
+Set a value to entry [idx]
+ |
+
int |
+size() |
+
double |
+sum() |
+
java.util.Map<java.lang.Integer,java.lang.Double> |
+toMap() |
+
java.lang.String |
+toString() |
+
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public SparseVector(int capcity)+
capcity
- maximum size of the sparse vectorpublic SparseVector(int capcity, + double[] array)+
capcity
- maximum size of the sparse vectorarray
- input datapublic SparseVector(SparseVector sv)+
public boolean contains(int idx)+
idx
- the idex to searchpublic double[] getData()+
public int[] getIndex()+
public int getCount()+
public void set(int idx, + double val)+
public void add(int idx, + double val)+
public double get(int idx)+
public double inner(SparseVector vec)+
public double inner(DenseVector vec)+
public double sum()+
public double mean()+
public int size()+
public java.util.Iterator<VectorEntry> iterator()+
iterator
in interface java.lang.Iterable<VectorEntry>
public java.lang.String toString()+
toString
in class java.lang.Object
public java.util.Map<java.lang.Integer,java.lang.Double> toMap()+
public class SymmMatrix
+extends java.lang.Object
+Constructor and Description | +
---|
SymmMatrix(int dim)
+Construct a symmetric matrix
+ |
+
SymmMatrix(SymmMatrix mat)
+Construct a symmetric matrix by deeply copying data from a given matrix
+ |
+
Modifier and Type | +Method and Description | +
---|---|
void |
+add(int row,
+ int col,
+ double val)
+add a value to entry (row, col)
+ |
+
SymmMatrix |
+clone()
+Make a deep copy of current matrix
+ |
+
double |
+get(int row,
+ int col)
+Get a value at entry (row, col)
+ |
+
SparseVector |
+row(int row)
+Retrieve a complete row of similar items
+ |
+
void |
+set(int row,
+ int col,
+ double val)
+set a value to entry (row, col)
+ |
+
java.lang.String |
+toString() |
+
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public SymmMatrix(int dim)+
public SymmMatrix(SymmMatrix mat)+
public SymmMatrix clone()+
clone
in class java.lang.Object
public double get(int row, + int col)+
public void set(int row, + int col, + double val)+
public void add(int row, + int col, + double val)+
public SparseVector row(int row)+
public java.lang.String toString()+
toString
in class java.lang.Object
public interface VectorEntry
+Package | +Description | +
---|---|
librec.intf | ++ |
Modifier and Type | +Field and Description | +
---|---|
static DataDAO |
+Recommender.rateDao |
+
Package | +Description | +
---|---|
librec.data | ++ |
Modifier and Type | +Method and Description | +
---|---|
DenseMatrix |
+DenseMatrix.add(DenseMatrix mat)
+Do
+A + B matrix operation |
+
DenseMatrix |
+DenseMatrix.add(double val)
+Do
+A + c matrix operation, where c is a constant. |
+
DenseMatrix |
+DenseMatrix.add(SparseMatrix mat)
+Do
+A + B matrix operation |
+
DenseMatrix |
+DenseMatrix.cholesky() |
+
DenseMatrix |
+DenseMatrix.clone()
+Make a deep copy of current matrix
+ |
+
DenseMatrix |
+DenseMatrix.cov() |
+
static DenseMatrix |
+DenseMatrix.eye(int dim)
+Construct an identity matrix
+ |
+
DenseMatrix |
+DenseMatrix.inv()
+NOTE: this implementation (adopted from PREA package) is slightly faster
+ than
+inverse , especailly when numRows is large. |
+
DenseMatrix |
+DenseMatrix.inverse()
+Deprecated.
+
+use
+inv instead which is slightly faster |
+
DenseMatrix |
+DenseMatrix.minus(DenseMatrix mat)
+Do
+A + B matrix operation |
+
DenseMatrix |
+DenseMatrix.minus(double val)
+Do
+A + c matrix operation, where c is a constant. |
+
DenseMatrix |
+DenseMatrix.minus(SparseMatrix mat)
+Do
+A + B matrix operation |
+
DenseMatrix |
+DenseMatrix.mult(DenseMatrix mat)
+Matrix multiplication with a dense matrix
+ |
+
DenseMatrix |
+DenseMatrix.mult(SparseMatrix mat)
+Matrix multiplication with a sparse matrix
+ |
+
static DenseMatrix |
+DenseMatrix.mult(SparseMatrix sm,
+ DenseMatrix dm)
+Matrix multiplication of a sparse matrix by a dense matrix
+ |
+
DenseMatrix |
+DenseVector.outer(DenseVector vec)
+Do vector operation:
+a * b^t |
+
DenseMatrix |
+DenseMatrix.scale(double val) |
+
DenseMatrix |
+DenseMatrix.transpose() |
+
Modifier and Type | +Method and Description | +
---|---|
DenseMatrix |
+DenseMatrix.add(DenseMatrix mat)
+Do
+A + B matrix operation |
+
static double |
+DenseMatrix.colMult(DenseMatrix m,
+ int mcol,
+ DenseMatrix n,
+ int ncol)
+column x column of two matrix
+ |
+
DenseMatrix |
+DenseMatrix.minus(DenseMatrix mat)
+Do
+A + B matrix operation |
+
DenseMatrix |
+DenseMatrix.mult(DenseMatrix mat)
+Matrix multiplication with a dense matrix
+ |
+
static DenseMatrix |
+DenseMatrix.mult(SparseMatrix sm,
+ DenseMatrix dm)
+Matrix multiplication of a sparse matrix by a dense matrix
+ |
+
static double |
+DenseMatrix.product(DenseMatrix m,
+ int mrow,
+ DenseMatrix n,
+ int ncol)
+dot product of row x col between two matrices
+ |
+
static double |
+DenseMatrix.rowMult(DenseMatrix m,
+ int mrow,
+ DenseMatrix n,
+ int nrow)
+row x row of two matrix
+ |
+
Constructor and Description | +
---|
DenseMatrix(DenseMatrix mat)
+Construct a dense matrix by copying data from a given matrix
+ |
+
Package | +Description | +
---|---|
librec.data | ++ |
Modifier and Type | +Method and Description | +
---|---|
DenseVector |
+DenseVector.add(DenseVector vec)
+Do vector operation:
+a + b |
+
DenseVector |
+DenseVector.add(double val) |
+
DenseVector |
+DenseVector.clone()
+Make a deep copy of current vector
+ |
+
DenseVector |
+DenseMatrix.column(int column) |
+
DenseVector |
+DenseVector.minus(DenseVector vec)
+Do vector operation:
+a - b |
+
DenseVector |
+DenseVector.minus(double val) |
+
DenseVector |
+DenseMatrix.mult(DenseVector vec)
+Do
+matrix x vector between current matrix and a given vector |
+
DenseVector |
+DenseMatrix.mult(SparseVector vec) |
+
DenseVector |
+DenseMatrix.row(int rowId) |
+
DenseVector |
+DenseMatrix.row(int rowId,
+ boolean deep) |
+
DenseVector |
+DenseVector.scale(double val) |
+
Modifier and Type | +Method and Description | +
---|---|
DenseVector |
+DenseVector.add(DenseVector vec)
+Do vector operation:
+a + b |
+
double |
+SparseVector.inner(DenseVector vec) |
+
double |
+DenseVector.inner(DenseVector vec)
+Do vector operation:
+a^t * b |
+
DenseVector |
+DenseVector.minus(DenseVector vec)
+Do vector operation:
+a - b |
+
DenseVector |
+DenseMatrix.mult(DenseVector vec)
+Do
+matrix x vector between current matrix and a given vector |
+
DenseMatrix |
+DenseVector.outer(DenseVector vec)
+Do vector operation:
+a * b^t |
+
void |
+DenseMatrix.setRow(int row,
+ DenseVector vals)
+set values of one dense vector to a specific row
+ |
+
Constructor and Description | +
---|
DenseVector(DenseVector vec)
+Construct a dense vector by deeply copying data from a given vector
+ |
+
Package | +Description | +
---|---|
librec.data | ++ |
Modifier and Type | +Method and Description | +
---|---|
DiagMatrix |
+DiagMatrix.add(DiagMatrix that) |
+
DiagMatrix |
+DiagMatrix.add(double val)
+Each diagonal entry addes
+val |
+
DiagMatrix |
+DiagMatrix.clone() |
+
static DiagMatrix |
+DiagMatrix.eye(int n) |
+
DiagMatrix |
+DiagMatrix.minus(DiagMatrix that) |
+
DiagMatrix |
+DiagMatrix.minus(double val)
+Each diagonal entry abstracts
+val |
+
DiagMatrix |
+DiagMatrix.scale(double val) |
+
Modifier and Type | +Method and Description | +
---|---|
DiagMatrix |
+DiagMatrix.add(DiagMatrix that) |
+
DiagMatrix |
+DiagMatrix.minus(DiagMatrix that) |
+
Constructor and Description | +
---|
DiagMatrix(DiagMatrix mat) |
+
Package | +Description | +
---|---|
librec.data | ++ |
Modifier and Type | +Method and Description | +
---|---|
java.util.Iterator<MatrixEntry> |
+SparseMatrix.iterator() |
+
Package | +Description | +
---|---|
librec.baseline | ++ |
librec.data | ++ |
librec.ext | ++ |
librec.intf | ++ |
librec.ranking | ++ |
librec.rating | ++ |
Constructor and Description | +
---|
ConstantGuess(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
GlobalAverage(SparseMatrix rm,
+ SparseMatrix tm,
+ int fold) |
+
ItemAverage(SparseMatrix rm,
+ SparseMatrix tm,
+ int fold) |
+
MostPopular(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
RandomGuess(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
UserAverage(SparseMatrix rm,
+ SparseMatrix tm,
+ int fold) |
+
Modifier and Type | +Class and Description | +
---|---|
class |
+DiagMatrix
+Data Structure: Diagonal Matrix
+ |
+
Modifier and Type | +Method and Description | +
---|---|
SparseMatrix |
+SparseMatrix.clone()
+Make a deep clone of current matrix
+ |
+
SparseMatrix[] |
+DataSplitter.getDataView(java.lang.String view) |
+
SparseMatrix[] |
+DataSplitter.getGiven(double ratio)
+Split ratings into two parts: the training set consisting of user-item
+ ratings where
+numGiven ratings are preserved for each user, and
+ the rest are used as the testing data |
+
SparseMatrix[] |
+DataSplitter.getGiven(int numGiven)
+Split ratings into two parts: the training set consisting of user-item
+ ratings where
+numGiven ratings are preserved for each user, and
+ the rest are used as the testing data |
+
SparseMatrix[] |
+DataSplitter.getKthFold(int k)
+Return the k-th fold as test set (testMatrix), making all the others as
+ train set in rateMatrix.
+ |
+
SparseMatrix |
+DataDAO.getRateMatrix() |
+
SparseMatrix[] |
+DataSplitter.getRatio(double ratio)
+Split ratings into two parts: (1-ratio) training, (ratio) testing data
+ |
+
SparseMatrix |
+DataDAO.readData()
+Default relevant columns {0: user column, 1: item column, 2: rate
+ column}; otherwise try
+readData(int[] rels) |
+
SparseMatrix |
+DataDAO.readData(boolean isCCSUsed) |
+
SparseMatrix |
+DataDAO.readData(int[] cols,
+ boolean isCCSUsed)
+Read data from the data file
+ |
+
SparseMatrix |
+SparseMatrix.transpose() |
+
Modifier and Type | +Method and Description | +
---|---|
DenseMatrix |
+DenseMatrix.add(SparseMatrix mat)
+Do
+A + B matrix operation |
+
DenseMatrix |
+DenseMatrix.minus(SparseMatrix mat)
+Do
+A + B matrix operation |
+
DenseMatrix |
+DenseMatrix.mult(SparseMatrix mat)
+Matrix multiplication with a sparse matrix
+ |
+
static DenseMatrix |
+DenseMatrix.mult(SparseMatrix sm,
+ DenseMatrix dm)
+Matrix multiplication of a sparse matrix by a dense matrix
+ |
+
Constructor and Description | +
---|
DataSplitter(SparseMatrix rateMatrix)
+Construct a data splitter with data source of a given rate matrix
+ |
+
DataSplitter(SparseMatrix rateMatrix,
+ int kfold)
+Construct a data splitter to split a given matrix into kfolds
+ |
+
SparseMatrix(SparseMatrix mat) |
+
SparseMatrix(SparseMatrix mat,
+ boolean deap)
+Construct a sparse matrix from another sparse matrix
+ |
+
Constructor and Description | +
---|
AR(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
Hybrid(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
NMF(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
PD(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
PRankD(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
SlopeOne(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
Modifier and Type | +Field and Description | +
---|---|
static SparseMatrix |
+Recommender.rateMatrix |
+
Constructor and Description | +
---|
IterativeRecommender(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
Recommender(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold)
+Constructor for Recommender
+ |
+
SocialRecommender(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
Constructor and Description | +
---|
BPRMF(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
CLiMF(SparseMatrix rm,
+ SparseMatrix tm,
+ int fold) |
+
RankALS(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
RankSGD(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
WRMF(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
Constructor and Description | +
---|
BiasedMF(SparseMatrix rm,
+ SparseMatrix tm,
+ int fold) |
+
BPMF(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
ItemKNN(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
PMF(SparseMatrix rm,
+ SparseMatrix tm,
+ int fold) |
+
RegSVD(SparseMatrix rm,
+ SparseMatrix tm,
+ int fold) |
+
RSTE(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
SocialMF(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
SoRec(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
SoReg(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
SVDPlusPlus(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
TrustMF(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
UserKNN(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
Package | +Description | +
---|---|
librec.data | ++ |
Modifier and Type | +Method and Description | +
---|---|
SparseVector |
+SparseMatrix.column(int col)
+get a col sparse vector of a matrix
+ |
+
SparseVector |
+SymmMatrix.row(int row)
+Retrieve a complete row of similar items
+ |
+
SparseVector |
+SparseMatrix.row(int row)
+get a row sparse vector of a matrix
+ |
+
SparseVector |
+SparseMatrix.row(int row,
+ int except)
+get a row sparse vector of a matrix
+ |
+
Modifier and Type | +Method and Description | +
---|---|
double |
+SparseVector.inner(SparseVector vec) |
+
double |
+DenseVector.inner(SparseVector vec)
+Do vector operation:
+a^t * b |
+
DenseVector |
+DenseMatrix.mult(SparseVector vec) |
+
Constructor and Description | +
---|
SparseVector(SparseVector sv)
+Construct a sparse vecto by deeply copying another vector
+ |
+
Package | +Description | +
---|---|
librec.data | ++ |
Modifier and Type | +Method and Description | +
---|---|
SymmMatrix |
+SymmMatrix.clone()
+Make a deep copy of current matrix
+ |
+
Constructor and Description | +
---|
SymmMatrix(SymmMatrix mat)
+Construct a symmetric matrix by deeply copying data from a given matrix
+ |
+
Package | +Description | +
---|---|
librec.data | ++ |
Modifier and Type | +Method and Description | +
---|---|
java.util.Iterator<VectorEntry> |
+SparseVector.iterator() |
+
Interface | +Description | +
---|---|
MatrixEntry | +
+ An entry of a matrix.
+ |
+
VectorEntry | +
+ An entry of a vector.
+ |
+
Class | +Description | +
---|---|
DataConvertor | +
+ A data convertor class to convert a data file from one source format to a
+ target format (i.e., our supporting format) of
+UserId ItemId Rating ,
+ separted by " \t," |
+
DataDAO | +
+ A data access object (DAO) to a data file
+ |
+
DataSplitter | +
+ Class to split/sample rating matrix
+ |
+
DenseMatrix | +
+ Data Structure: dense matrix
++ + A big reason that we do not adopt original DenseMatrix from M4J libraray is + because the latter using one-dimensional array to store data, which will + often cause OutOfMemory exception due to the limit of maximum length of a + one-dimensional Java array. |
+
DenseVector | +
+ Data Structure: dense vector
+ |
+
DiagMatrix | +
+ Data Structure: Diagonal Matrix
+ |
+
SparseMatrix | +
+ Data Structure: Sparse Matrix whose implementation is modified from M4J
+ library
+
+
+ Compressed
+ Row Storage (CRS)
+ Compressed
+ Col Storage (CCS)
+
+ |
+
SparseVector | +
+ Data Structure: Sparse Vector whose implementation is modified from M4J
+ library
+ |
+
SymmMatrix | +
+ Data Structure, Lower Symmetric Matrix
+ |
+
Package | +Description | +
---|---|
librec.baseline | ++ |
librec.data | ++ |
librec.ext | ++ |
librec.intf | ++ |
librec.ranking | ++ |
librec.rating | ++ |
Class and Description | +
---|
SparseMatrix
+ Data Structure: Sparse Matrix whose implementation is modified from M4J
+ library
+
+
+ Compressed
+ Row Storage (CRS)
+ Compressed
+ Col Storage (CCS)
+
+ |
+
Class and Description | +
---|
DenseMatrix
+ Data Structure: dense matrix
++ + A big reason that we do not adopt original DenseMatrix from M4J libraray is + because the latter using one-dimensional array to store data, which will + often cause OutOfMemory exception due to the limit of maximum length of a + one-dimensional Java array. |
+
DenseVector
+ Data Structure: dense vector
+ |
+
DiagMatrix
+ Data Structure: Diagonal Matrix
+ |
+
MatrixEntry
+ An entry of a matrix.
+ |
+
SparseMatrix
+ Data Structure: Sparse Matrix whose implementation is modified from M4J
+ library
+
+
+ Compressed
+ Row Storage (CRS)
+ Compressed
+ Col Storage (CCS)
+
+ |
+
SparseVector
+ Data Structure: Sparse Vector whose implementation is modified from M4J
+ library
+ |
+
SymmMatrix
+ Data Structure, Lower Symmetric Matrix
+ |
+
VectorEntry
+ An entry of a vector.
+ |
+
Class and Description | +
---|
SparseMatrix
+ Data Structure: Sparse Matrix whose implementation is modified from M4J
+ library
+
+
+ Compressed
+ Row Storage (CRS)
+ Compressed
+ Col Storage (CCS)
+
+ |
+
Class and Description | +
---|
DataDAO
+ A data access object (DAO) to a data file
+ |
+
SparseMatrix
+ Data Structure: Sparse Matrix whose implementation is modified from M4J
+ library
+
+
+ Compressed
+ Row Storage (CRS)
+ Compressed
+ Col Storage (CCS)
+
+ |
+
Class and Description | +
---|
SparseMatrix
+ Data Structure: Sparse Matrix whose implementation is modified from M4J
+ library
+
+
+ Compressed
+ Row Storage (CRS)
+ Compressed
+ Col Storage (CCS)
+
+ |
+
Class and Description | +
---|
SparseMatrix
+ Data Structure: Sparse Matrix whose implementation is modified from M4J
+ library
+
+
+ Compressed
+ Row Storage (CRS)
+ Compressed
+ Col Storage (CCS)
+
+ |
+
public class AR +extends Recommender+
+ Simple Association Rule Recommender: we do not consider the item categories + (or multi levels) used in the original paper. Besides, we consider all + association rules without ruling out weak ones (by setting high support and + confidence threshold). +
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
AR(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
execute, getEvalInfo, run, toString
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public AR(SparseMatrix trainMatrix, + SparseMatrix testMatrix, + int fold)+
public class Hybrid +extends Recommender+
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
Hybrid(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
Modifier and Type | +Method and Description | +
---|---|
java.lang.String |
+toString()
+useful to print out specific recommender's settings
+ |
+
execute, getEvalInfo, run
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public Hybrid(SparseMatrix trainMatrix, + SparseMatrix testMatrix, + int fold)+
public java.lang.String toString()+
Recommender
toString
in class Recommender
public class NMF +extends IterativeRecommender+
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
NMF(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
Modifier and Type | +Method and Description | +
---|---|
java.lang.String |
+toString()
+useful to print out specific recommender's settings
+ |
+
execute, getEvalInfo, run
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public NMF(SparseMatrix trainMatrix, + SparseMatrix testMatrix, + int fold)+
public java.lang.String toString()+
Recommender
toString
in class IterativeRecommender
public class PD +extends Recommender+
+ Related Work: +
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
PD(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
Modifier and Type | +Method and Description | +
---|---|
java.lang.String |
+toString()
+useful to print out specific recommender's settings
+ |
+
execute, getEvalInfo, run
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public PD(SparseMatrix trainMatrix, + SparseMatrix testMatrix, + int fold)+
public java.lang.String toString()+
Recommender
toString
in class Recommender
public class PRankD +extends RankSGD+
+ Related Work: +
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
PRankD(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
Modifier and Type | +Method and Description | +
---|---|
java.lang.String |
+toString()
+useful to print out specific recommender's settings
+ |
+
execute, getEvalInfo, run
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public PRankD(SparseMatrix trainMatrix, + SparseMatrix testMatrix, + int fold)+
public java.lang.String toString()+
Recommender
public class SlopeOne +extends Recommender+
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
SlopeOne(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
execute, getEvalInfo, run, toString
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public SlopeOne(SparseMatrix trainMatrix, + SparseMatrix testMatrix, + int fold)+
Class | +Description | +
---|---|
AR | +
+ Choonho Kim and Juntae Kim, A Recommendation Algorithm Using
+ Multi-Level Association Rules, WI 2003.
+ |
+
Hybrid | +
+ Zhou et al., Solving the apparent diversity-accuracy dilemma of
+ recommender systems, Proceedings of the National Academy of
+ Sciences, 2010.
+ |
+
NMF | +
+ Daniel D.
+ |
+
PD | +
+ Pennock et al., Collaborative Filtering by Personality Diagnosis: A
+ Hybrid Memory- and Model-based Approach, UAI 2000.
+ |
+
PRankD | +
+ Neil Hurley, Personalised ranking with diversity, RecSys
+ 2013.
+ |
+
SlopeOne | +
+ Weighted Slope One: Lemire and Maclachlan, Slope One Predictors for
+ Online Rating-Based Collaborative Filtering, SDM 2005.
+ |
+
public abstract class IterativeRecommender +extends Recommender+
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
IterativeRecommender(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
Modifier and Type | +Method and Description | +
---|---|
java.lang.String |
+toString()
+useful to print out specific recommender's settings
+ |
+
execute, getEvalInfo, run
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public IterativeRecommender(SparseMatrix trainMatrix, + SparseMatrix testMatrix, + int fold)+
public java.lang.String toString()+
Recommender
toString
in class Recommender
public static enum Recommender.Measure +extends java.lang.Enum<Recommender.Measure>+
Enum Constant and Description | +
---|
ASYMM |
+
AUC |
+
D10 |
+
D5 |
+
MAE |
+
MAP |
+
MRR |
+
NDCG |
+
NMAE |
+
Pre10 |
+
Pre5 |
+
Rec10 |
+
Rec5 |
+
RMSE |
+
TestTime |
+
TrainTime |
+
Modifier and Type | +Method and Description | +
---|---|
static Recommender.Measure |
+valueOf(java.lang.String name)
+Returns the enum constant of this type with the specified name.
+ |
+
static Recommender.Measure[] |
+values()
+Returns an array containing the constants of this enum type, in
+the order they are declared.
+ |
+
compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
getClass, notify, notifyAll, wait, wait, wait
public static final Recommender.Measure MAE+
public static final Recommender.Measure RMSE+
public static final Recommender.Measure NMAE+
public static final Recommender.Measure ASYMM+
public static final Recommender.Measure D5+
public static final Recommender.Measure D10+
public static final Recommender.Measure Pre5+
public static final Recommender.Measure Pre10+
public static final Recommender.Measure Rec5+
public static final Recommender.Measure Rec10+
public static final Recommender.Measure MAP+
public static final Recommender.Measure MRR+
public static final Recommender.Measure NDCG+
public static final Recommender.Measure AUC+
public static final Recommender.Measure TrainTime+
public static final Recommender.Measure TestTime+
public static Recommender.Measure[] values()+
+for (Recommender.Measure c : Recommender.Measure.values()) + System.out.println(c); +
public static Recommender.Measure valueOf(java.lang.String name)+
name
- the name of the enum constant to be returned.java.lang.IllegalArgumentException
- if this enum type has no constant
+with the specified namejava.lang.NullPointerException
- if the argument is nullpublic abstract class Recommender
+extends java.lang.Object
+implements java.lang.Runnable
+Modifier and Type | +Class and Description | +
---|---|
static class |
+Recommender.Measure |
+
Modifier and Type | +Field and Description | +
---|---|
java.lang.String |
+algoName
+Recommender-specific parameters
+ |
+
static happy.coding.io.Configer |
+cf
+Static parameters for all recommenders
+ |
+
static boolean |
+isRankingPred |
+
java.util.Map<Recommender.Measure,java.lang.Double> |
+measures |
+
static java.util.Map<java.lang.String,java.util.List<java.lang.Double>> |
+params |
+
static DataDAO |
+rateDao |
+
static SparseMatrix |
+rateMatrix |
+
Constructor and Description | +
---|
Recommender(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold)
+Constructor for Recommender
+ |
+
Modifier and Type | +Method and Description | +
---|---|
void |
+execute()
+execution method of a recommender
+ |
+
static java.lang.String |
+getEvalInfo(java.util.Map<Recommender.Measure,java.lang.Double> measures) |
+
void |
+run() |
+
java.lang.String |
+toString()
+useful to print out specific recommender's settings
+ |
+
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public static happy.coding.io.Configer cf+
public static SparseMatrix rateMatrix+
public static java.util.Map<java.lang.String,java.util.List<java.lang.Double>> params+
public static boolean isRankingPred+
public static DataDAO rateDao+
public java.lang.String algoName+
public java.util.Map<Recommender.Measure,java.lang.Double> measures+
public Recommender(SparseMatrix trainMatrix, + SparseMatrix testMatrix, + int fold)+
trainMatrix
- train matrixtestMatrix
- test matrixpublic void run()+
run
in interface java.lang.Runnable
public void execute()+
public static java.lang.String getEvalInfo(java.util.Map<Recommender.Measure,java.lang.Double> measures)+
public java.lang.String toString()+
toString
in class java.lang.Object
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
SocialRecommender(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
Modifier and Type | +Method and Description | +
---|---|
java.lang.String |
+toString()
+useful to print out specific recommender's settings
+ |
+
execute, getEvalInfo, run
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public SocialRecommender(SparseMatrix trainMatrix, + SparseMatrix testMatrix, + int fold)+
public java.lang.String toString()+
Recommender
toString
in class IterativeRecommender
Package | +Description | +
---|---|
librec.ext | ++ |
librec.intf | ++ |
librec.ranking | ++ |
librec.rating | ++ |
Modifier and Type | +Class and Description | +
---|---|
class |
+NMF
+Daniel D.
+ |
+
class |
+PRankD
+Neil Hurley, Personalised ranking with diversity, RecSys
+ 2013.
+ |
+
Modifier and Type | +Class and Description | +
---|---|
class |
+SocialRecommender
+Recommenders in which social information is used
+ |
+
Modifier and Type | +Class and Description | +
---|---|
class |
+BPRMF
+Rendle et al., BPR: Bayesian Personalized Ranking from Implicit
+ Feedback, UAI 2009.
+ |
+
class |
+CLiMF
+Shi et al., Climf: learning to maximize reciprocal rank with
+ collaborative less-is-more filtering., RecSys 2012.
+ |
+
class |
+RankALS
+Takacs and Tikk, Alternating Least Squares for Personalized
+ Ranking, RecSys 2012.
+ |
+
class |
+RankSGD
+Jahrer and Toscher, Collaborative Filtering Ensemble for Ranking, JMLR, 2012
+ (KDD Cup 2011 Track 2).
+ |
+
class |
+WRMF
+WRMF: Weighted Regularized Matrix Factorization.
+ |
+
Modifier and Type | +Class and Description | +
---|---|
class |
+BiasedMF
+Biased Matrix Factorization Models.
+ |
+
class |
+BPMF
+Salakhutdinov and Mnih, Bayesian Probabilistic Matrix Factorization
+ using Markov Chain Monte Carlo, ICML 2008.
+ |
+
class |
+PMF
+Ruslan Salakhutdinov and Andriy Mnih, Probabilistic Matrix
+ Factorization, NIPS 2008.
+ |
+
class |
+RegSVD
+Regularized SVD: Arkadiusz Paterek, Improving Regularized Singular Value
+ Decomposition Collaborative Filtering, Proceedings of KDD Cup and Workshop,
+ 2007.
+ |
+
class |
+RSTE
+Hao Ma, Irwin King and Michael R.
+ |
+
class |
+SocialMF
+Jamali and Ester, A matrix factorization technique with trust
+ propagation for recommendation in social networks, RecSys 2010.
+ |
+
class |
+SoRec
+Hao Ma, Haixuan Yang, Michael R.
+ |
+
class |
+SoReg
+Hao Ma, Dengyong Zhou, Chao Liu, Michael R.
+ |
+
class |
+SVDPlusPlus
+Yehuda Koren, Factorization Meets the Neighborhood: a Multifaceted
+ Collaborative Filtering Model., KDD 2008.
+ |
+
class |
+TrustMF
+Yang et al., Social Collaborative Filtering by Trust, IJCAI
+ 2013.
+ |
+
Package | +Description | +
---|---|
librec.intf | ++ |
Modifier and Type | +Field and Description | +
---|---|
java.util.Map<Recommender.Measure,java.lang.Double> |
+Recommender.measures |
+
Modifier and Type | +Method and Description | +
---|---|
static Recommender.Measure |
+Recommender.Measure.valueOf(java.lang.String name)
+Returns the enum constant of this type with the specified name.
+ |
+
static Recommender.Measure[] |
+Recommender.Measure.values()
+Returns an array containing the constants of this enum type, in
+the order they are declared.
+ |
+
Modifier and Type | +Method and Description | +
---|---|
static java.lang.String |
+Recommender.getEvalInfo(java.util.Map<Recommender.Measure,java.lang.Double> measures) |
+
Package | +Description | +
---|---|
librec.baseline | ++ |
librec.ext | ++ |
librec.intf | ++ |
librec.ranking | ++ |
librec.rating | ++ |
Modifier and Type | +Class and Description | +
---|---|
class |
+ConstantGuess
+Baseline: predict by a constant rating
+ |
+
class |
+GlobalAverage
+Baseline: predict by average rating of all users
+ |
+
class |
+ItemAverage
+Baseline: predict by the average of target item's ratings
+ |
+
class |
+MostPopular
+Baseline: items are weighted by the number of ratings they received.
+ |
+
class |
+RandomGuess
+Baseline: predict by a random value in (minRate, maxRate)
+ |
+
class |
+UserAverage
+Baseline: predict by the average of target user's ratings
+ |
+
Modifier and Type | +Class and Description | +
---|---|
class |
+AR
+Choonho Kim and Juntae Kim, A Recommendation Algorithm Using
+ Multi-Level Association Rules, WI 2003.
+ |
+
class |
+Hybrid
+Zhou et al., Solving the apparent diversity-accuracy dilemma of
+ recommender systems, Proceedings of the National Academy of
+ Sciences, 2010.
+ |
+
class |
+NMF
+Daniel D.
+ |
+
class |
+PD
+Pennock et al., Collaborative Filtering by Personality Diagnosis: A
+ Hybrid Memory- and Model-based Approach, UAI 2000.
+ |
+
class |
+PRankD
+Neil Hurley, Personalised ranking with diversity, RecSys
+ 2013.
+ |
+
class |
+SlopeOne
+Weighted Slope One: Lemire and Maclachlan, Slope One Predictors for
+ Online Rating-Based Collaborative Filtering, SDM 2005.
+ |
+
Modifier and Type | +Class and Description | +
---|---|
class |
+IterativeRecommender
+Recommenders using iterative learning techniques
+ |
+
class |
+SocialRecommender
+Recommenders in which social information is used
+ |
+
Modifier and Type | +Class and Description | +
---|---|
class |
+BPRMF
+Rendle et al., BPR: Bayesian Personalized Ranking from Implicit
+ Feedback, UAI 2009.
+ |
+
class |
+CLiMF
+Shi et al., Climf: learning to maximize reciprocal rank with
+ collaborative less-is-more filtering., RecSys 2012.
+ |
+
class |
+RankALS
+Takacs and Tikk, Alternating Least Squares for Personalized
+ Ranking, RecSys 2012.
+ |
+
class |
+RankSGD
+Jahrer and Toscher, Collaborative Filtering Ensemble for Ranking, JMLR, 2012
+ (KDD Cup 2011 Track 2).
+ |
+
class |
+WRMF
+WRMF: Weighted Regularized Matrix Factorization.
+ |
+
Modifier and Type | +Class and Description | +
---|---|
class |
+BiasedMF
+Biased Matrix Factorization Models.
+ |
+
class |
+BPMF
+Salakhutdinov and Mnih, Bayesian Probabilistic Matrix Factorization
+ using Markov Chain Monte Carlo, ICML 2008.
+ |
+
class |
+ItemKNN
+Item-based Nearest Neighbors
+ |
+
class |
+PMF
+Ruslan Salakhutdinov and Andriy Mnih, Probabilistic Matrix
+ Factorization, NIPS 2008.
+ |
+
class |
+RegSVD
+Regularized SVD: Arkadiusz Paterek, Improving Regularized Singular Value
+ Decomposition Collaborative Filtering, Proceedings of KDD Cup and Workshop,
+ 2007.
+ |
+
class |
+RSTE
+Hao Ma, Irwin King and Michael R.
+ |
+
class |
+SocialMF
+Jamali and Ester, A matrix factorization technique with trust
+ propagation for recommendation in social networks, RecSys 2010.
+ |
+
class |
+SoRec
+Hao Ma, Haixuan Yang, Michael R.
+ |
+
class |
+SoReg
+Hao Ma, Dengyong Zhou, Chao Liu, Michael R.
+ |
+
class |
+SVDPlusPlus
+Yehuda Koren, Factorization Meets the Neighborhood: a Multifaceted
+ Collaborative Filtering Model., KDD 2008.
+ |
+
class |
+TrustMF
+Yang et al., Social Collaborative Filtering by Trust, IJCAI
+ 2013.
+ |
+
class |
+UserKNN
+User-based Nearest Neighbors
+ |
+
Package | +Description | +
---|---|
librec.rating | ++ |
Modifier and Type | +Class and Description | +
---|---|
class |
+RSTE
+Hao Ma, Irwin King and Michael R.
+ |
+
class |
+SocialMF
+Jamali and Ester, A matrix factorization technique with trust
+ propagation for recommendation in social networks, RecSys 2010.
+ |
+
class |
+SoRec
+Hao Ma, Haixuan Yang, Michael R.
+ |
+
class |
+SoReg
+Hao Ma, Dengyong Zhou, Chao Liu, Michael R.
+ |
+
class |
+TrustMF
+Yang et al., Social Collaborative Filtering by Trust, IJCAI
+ 2013.
+ |
+
Class | +Description | +
---|---|
IterativeRecommender | +
+ Recommenders using iterative learning techniques
+ |
+
Recommender | +
+ General recommenders
+ |
+
SocialRecommender | +
+ Recommenders in which social information is used
+ |
+
Enum | +Description | +
---|---|
Recommender.Measure | ++ |
Package | +Description | +
---|---|
librec.baseline | ++ |
librec.ext | ++ |
librec.intf | ++ |
librec.ranking | ++ |
librec.rating | ++ |
Class and Description | +
---|
Recommender
+ General recommenders
+ |
+
Class and Description | +
---|
IterativeRecommender
+ Recommenders using iterative learning techniques
+ |
+
Recommender
+ General recommenders
+ |
+
Class and Description | +
---|
IterativeRecommender
+ Recommenders using iterative learning techniques
+ |
+
Recommender
+ General recommenders
+ |
+
Recommender.Measure | +
Class and Description | +
---|
IterativeRecommender
+ Recommenders using iterative learning techniques
+ |
+
Recommender
+ General recommenders
+ |
+
Class and Description | +
---|
IterativeRecommender
+ Recommenders using iterative learning techniques
+ |
+
Recommender
+ General recommenders
+ |
+
SocialRecommender
+ Recommenders in which social information is used
+ |
+
public class LibRec
+extends java.lang.Object
+Modifier and Type | +Field and Description | +
---|---|
static boolean |
+isMultRun |
+
static int |
+paramIdx |
+
Modifier and Type | +Method and Description | +
---|---|
static void |
+main(java.lang.String[] args) |
+
static java.lang.String |
+readme()
+Print out software information
+ |
+
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Class | +Description | +
---|---|
LibRec | +
+ Main Class of the LibRec Library
+ |
+
public class BPRMF +extends IterativeRecommender+
This method aims to optimize the AUC measure.
++ Related Work: +
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
BPRMF(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
Modifier and Type | +Method and Description | +
---|---|
java.lang.String |
+toString()
+useful to print out specific recommender's settings
+ |
+
execute, getEvalInfo, run
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public BPRMF(SparseMatrix trainMatrix, + SparseMatrix testMatrix, + int fold)+
public java.lang.String toString()+
Recommender
toString
in class IterativeRecommender
public class CLiMF +extends IterativeRecommender+
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
CLiMF(SparseMatrix rm,
+ SparseMatrix tm,
+ int fold) |
+
toString
execute, getEvalInfo, run
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public CLiMF(SparseMatrix rm, + SparseMatrix tm, + int fold)+
public class RankALS +extends IterativeRecommender+
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
RankALS(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
Modifier and Type | +Method and Description | +
---|---|
java.lang.String |
+toString()
+useful to print out specific recommender's settings
+ |
+
execute, getEvalInfo, run
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public RankALS(SparseMatrix trainMatrix, + SparseMatrix testMatrix, + int fold)+
public java.lang.String toString()+
Recommender
toString
in class IterativeRecommender
public class RankSGD +extends IterativeRecommender+
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
RankSGD(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
Modifier and Type | +Method and Description | +
---|---|
java.lang.String |
+toString()
+useful to print out specific recommender's settings
+ |
+
execute, getEvalInfo, run
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public RankSGD(SparseMatrix trainMatrix, + SparseMatrix testMatrix, + int fold)+
public java.lang.String toString()+
Recommender
toString
in class IterativeRecommender
public class WRMF +extends IterativeRecommender+
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
WRMF(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
Modifier and Type | +Method and Description | +
---|---|
java.lang.String |
+toString()
+useful to print out specific recommender's settings
+ |
+
execute, getEvalInfo, run
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public WRMF(SparseMatrix trainMatrix, + SparseMatrix testMatrix, + int fold)+
public java.lang.String toString()+
Recommender
toString
in class IterativeRecommender
Package | +Description | +
---|---|
librec.ext | ++ |
Modifier and Type | +Class and Description | +
---|---|
class |
+PRankD
+Neil Hurley, Personalised ranking with diversity, RecSys
+ 2013.
+ |
+
Class | +Description | +
---|---|
BPRMF | +
+ Rendle et al., BPR: Bayesian Personalized Ranking from Implicit
+ Feedback, UAI 2009.
+ |
+
CLiMF | +
+ Shi et al., Climf: learning to maximize reciprocal rank with
+ collaborative less-is-more filtering., RecSys 2012.
+ |
+
RankALS | +
+ Takacs and Tikk, Alternating Least Squares for Personalized
+ Ranking, RecSys 2012.
+ |
+
RankSGD | +
+ Jahrer and Toscher, Collaborative Filtering Ensemble for Ranking, JMLR, 2012
+ (KDD Cup 2011 Track 2).
+ |
+
WRMF | +
+ WRMF: Weighted Regularized Matrix Factorization.
+ |
+
Package | +Description | +
---|---|
librec.ext | ++ |
Class and Description | +
---|
RankSGD
+ Jahrer and Toscher, Collaborative Filtering Ensemble for Ranking, JMLR, 2012
+ (KDD Cup 2011 Track 2).
+ |
+
public class BPMF +extends IterativeRecommender+
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
BPMF(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
Modifier and Type | +Method and Description | +
---|---|
java.lang.String |
+toString()
+useful to print out specific recommender's settings
+ |
+
execute, getEvalInfo, run
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public BPMF(SparseMatrix trainMatrix, + SparseMatrix testMatrix, + int fold)+
public java.lang.String toString()+
Recommender
toString
in class IterativeRecommender
public class BiasedMF +extends IterativeRecommender+
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
BiasedMF(SparseMatrix rm,
+ SparseMatrix tm,
+ int fold) |
+
toString
execute, getEvalInfo, run
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public BiasedMF(SparseMatrix rm, + SparseMatrix tm, + int fold)+
public class ItemKNN +extends Recommender+
+ It supports both recommendation tasks: (1) rating prediction; and (2) item
+ ranking (by configuring isRankingPred=on
in the librec.conf). For
+ item ranking, the returned score is the summation of the similarities of
+ nearest neighbors (see Section 4.3.2 of Rendle et al., BPR: Bayesian
+ Personalized Ranking from Implicit Feedback, UAI 2009).
+
+ When the number of items is extremely large which makes it memory intensive to + store/precompute all item-item correlations, a trick presented by (Jahrer and + Toscher, Collaborative Filtering Ensemble, JMLR 2012) can be applied. + Specifically, we can use a basic SVD model to obtain item-feature vectors, + and then item-item correlations can be computed by Eqs (13, 15). +
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
ItemKNN(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
Modifier and Type | +Method and Description | +
---|---|
java.lang.String |
+toString()
+useful to print out specific recommender's settings
+ |
+
execute, getEvalInfo, run
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public ItemKNN(SparseMatrix trainMatrix, + SparseMatrix testMatrix, + int fold)+
public java.lang.String toString()+
Recommender
toString
in class Recommender
public class PMF +extends IterativeRecommender+
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
PMF(SparseMatrix rm,
+ SparseMatrix tm,
+ int fold) |
+
toString
execute, getEvalInfo, run
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public PMF(SparseMatrix rm, + SparseMatrix tm, + int fold)+
public class RSTE +extends SocialRecommender+
+ This method is quite time-consuming when dealing with the social influence + part. +
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
RSTE(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
Modifier and Type | +Method and Description | +
---|---|
java.lang.String |
+toString()
+useful to print out specific recommender's settings
+ |
+
execute, getEvalInfo, run
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public RSTE(SparseMatrix trainMatrix, + SparseMatrix testMatrix, + int fold)+
public java.lang.String toString()+
Recommender
toString
in class SocialRecommender
public class RegSVD +extends IterativeRecommender+
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
RegSVD(SparseMatrix rm,
+ SparseMatrix tm,
+ int fold) |
+
toString
execute, getEvalInfo, run
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public RegSVD(SparseMatrix rm, + SparseMatrix tm, + int fold)+
public class SVDPlusPlus +extends BiasedMF+
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
SVDPlusPlus(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
toString
execute, getEvalInfo, run
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public SVDPlusPlus(SparseMatrix trainMatrix, + SparseMatrix testMatrix, + int fold)+
public class SoRec +extends SocialRecommender+
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
SoRec(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
toString
execute, getEvalInfo, run
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public SoRec(SparseMatrix trainMatrix, + SparseMatrix testMatrix, + int fold)+
public class SoReg +extends SocialRecommender+
+ In the original paper, this method is named as "SR2_pcc". For consistency, we + rename it as "SoReg" as used by some other papers such as: Tang et al., + Exploiting Local and Global Social Context for + Recommendation, IJCAI 2013. +
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
SoReg(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
toString
execute, getEvalInfo, run
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public SoReg(SparseMatrix trainMatrix, + SparseMatrix testMatrix, + int fold)+
public class SocialMF +extends SocialRecommender+
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
SocialMF(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
toString
execute, getEvalInfo, run
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public SocialMF(SparseMatrix trainMatrix, + SparseMatrix testMatrix, + int fold)+
public class TrustMF +extends SocialRecommender+
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
TrustMF(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
toString
execute, getEvalInfo, run
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public TrustMF(SparseMatrix trainMatrix, + SparseMatrix testMatrix, + int fold)+
public class UserKNN +extends Recommender+
+ It supports both recommendation tasks: (1) rating prediction; and (2) item
+ ranking (by configuring isRankingPred=on
in the librec.conf). For
+ item ranking, the returned score is the summation of the similarities of
+ nearest neighbors.
+
+ When the number of users is extremely large which makes it memory intensive + to store/precompute all user-user correlations, a trick presented by (Jahrer + and Toscher, Collaborative Filtering Ensemble, JMLR 2012) can be applied. + Specifically, we can use a basic SVD model to obtain user-feature vectors, + and then user-user correlations can be computed by Eqs (17, 15). +
Recommender.Measure
algoName, cf, isRankingPred, measures, params, rateDao, rateMatrix
Constructor and Description | +
---|
UserKNN(SparseMatrix trainMatrix,
+ SparseMatrix testMatrix,
+ int fold) |
+
Modifier and Type | +Method and Description | +
---|---|
java.lang.String |
+toString()
+useful to print out specific recommender's settings
+ |
+
execute, getEvalInfo, run
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
public UserKNN(SparseMatrix trainMatrix, + SparseMatrix testMatrix, + int fold)+
public java.lang.String toString()+
Recommender
toString
in class Recommender
Package | +Description | +
---|---|
librec.rating | ++ |
Modifier and Type | +Class and Description | +
---|---|
class |
+SVDPlusPlus
+Yehuda Koren, Factorization Meets the Neighborhood: a Multifaceted
+ Collaborative Filtering Model., KDD 2008.
+ |
+
Class | +Description | +
---|---|
BiasedMF | +
+ Biased Matrix Factorization Models.
+ |
+
BPMF | +
+ Salakhutdinov and Mnih, Bayesian Probabilistic Matrix Factorization
+ using Markov Chain Monte Carlo, ICML 2008.
+ |
+
ItemKNN | +
+ Item-based Nearest Neighbors
+ |
+
PMF | +
+ Ruslan Salakhutdinov and Andriy Mnih, Probabilistic Matrix
+ Factorization, NIPS 2008.
+ |
+
RegSVD | +
+ Regularized SVD: Arkadiusz Paterek, Improving Regularized Singular Value
+ Decomposition Collaborative Filtering, Proceedings of KDD Cup and Workshop,
+ 2007.
+ |
+
RSTE | +
+ Hao Ma, Irwin King and Michael R.
+ |
+
SocialMF | +
+ Jamali and Ester, A matrix factorization technique with trust
+ propagation for recommendation in social networks, RecSys 2010.
+ |
+
SoRec | +
+ Hao Ma, Haixuan Yang, Michael R.
+ |
+
SoReg | +
+ Hao Ma, Dengyong Zhou, Chao Liu, Michael R.
+ |
+
SVDPlusPlus | +
+ Yehuda Koren, Factorization Meets the Neighborhood: a Multifaceted
+ Collaborative Filtering Model., KDD 2008.
+ |
+
TrustMF | +
+ Yang et al., Social Collaborative Filtering by Trust, IJCAI
+ 2013.
+ |
+
UserKNN | +
+ User-based Nearest Neighbors
+ |
+
Package | +Description | +
---|---|
librec.rating | ++ |
Class and Description | +
---|
BiasedMF
+ Biased Matrix Factorization Models.
+ |
+
+ + diff --git a/librec/doc/librec-v1.1/overview-summary.html b/librec/doc/librec-v1.1/overview-summary.html new file mode 100644 index 000000000..d769fbcf9 --- /dev/null +++ b/librec/doc/librec-v1.1/overview-summary.html @@ -0,0 +1,150 @@ + + + + + +
Package | +Description | +
---|---|
librec.baseline | ++ |
librec.data | ++ |
librec.ext | ++ |
librec.intf | ++ |
librec.main | ++ |
librec.ranking | ++ |
librec.rating | ++ |