[mlpack-git] master, mlpack-1.0.x: Removing old cosine_tree code. (23a1099)

gitdub at big.cc.gt.atl.ga.us gitdub at big.cc.gt.atl.ga.us
Thu Mar 5 21:50:01 EST 2015


Repository : https://github.com/mlpack/mlpack

On branches: master,mlpack-1.0.x
Link       : https://github.com/mlpack/mlpack/compare/904762495c039e345beba14c1142fd719b3bd50e...f94823c800ad6f7266995c700b1b630d5ffdcf40

>---------------------------------------------------------------

commit 23a109957ca80012193ec727797f2a275197d2ff
Author: Siddharth Agrawal <siddharth.950 at gmail.com>
Date:   Fri Jun 27 06:48:51 2014 +0000

    Removing old cosine_tree code.


>---------------------------------------------------------------

23a109957ca80012193ec727797f2a275197d2ff
 src/mlpack/core/tree/cosine_tree/cosine_tree.hpp   | 105 -------------
 .../core/tree/cosine_tree/cosine_tree_builder.hpp  | 108 -------------
 .../tree/cosine_tree/cosine_tree_builder_impl.hpp  | 172 ---------------------
 .../core/tree/cosine_tree/cosine_tree_impl.hpp     | 108 -------------
 4 files changed, 493 deletions(-)

diff --git a/src/mlpack/core/tree/cosine_tree/cosine_tree.hpp b/src/mlpack/core/tree/cosine_tree/cosine_tree.hpp
deleted file mode 100644
index 0bece0d..0000000
--- a/src/mlpack/core/tree/cosine_tree/cosine_tree.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-/**
- * @file cosine_tree.hpp
- * @author Mudit Raj Gupta
- *
- * Definition of Cosine Tree.
- */
- 
-#ifndef __MLPACK_CORE_TREE_COSINE_TREE_COSINE_TREE_HPP
-#define __MLPACK_CORE_TREE_COSINE_TREE_COSINE_TREE_HPP
-
-#include <mlpack/core.hpp>
-
-namespace mlpack {
-namespace tree /** Cosine Trees and building procedures. */ {
-
-class CosineTree
-{
- private:
-  //! Data. 
-  arma::mat data;
-  //! Centroid.
-  arma::rowvec centroid;
-  //! Sampling Probabilities
-  arma::vec probabilities;
-  //! The left child node.
-  CosineTree* left;
-  //! The right child node.
-  CosineTree* right;
-  //! Number of points in the node.
-  size_t numPoints;
-  
- public:
-  //! So other classes can use TreeType::Mat.
-  //typedef MatType Mat;
-  /**
-   * Constructor 
-   * 
-   * @param data Dataset to create tree from. 
-   * @param centroid Centroid of the matrix.
-   * @param probabilities Sampling probabilities
-   */
-  CosineTree(arma::mat data, arma::rowvec centroid, arma::vec probabilities);
-
-  /**
-   * Create an empty tree node.
-   */
-  CosineTree();
-
-  /**
-   * Deletes this node, deallocating the memory for the children and calling
-   * their destructors in turn.  This will invalidate any pointers or references
-   * to any nodes which are children of this one.
-   */
-  ~CosineTree();
-
-  //! Gets the left child of this node.
-  CosineTree* Left() const;
-  
-  //!Sets the Left child of this node.
-  void Left(CosineTree* child);
-
-  //! Gets the right child of this node.
-  CosineTree* Right() const;
-
-  //!Sets the Right child of this node.
-  void Right(CosineTree* child);
-
-  /**
-   * Return the specified child (0 will be left, 1 will be right).  If the index
-   * is greater than 1, this will return the right child.
-   *
-   * @param child Index of child to return.
-   */
-  CosineTree& Child(const size_t child) const;
-
-  //! Return the number of points in this node (0 if not a leaf).
-  size_t NumPoints() const;
-
-  //! Returns a reference to the data
-  arma::mat Data();
-  
-  //! Sets a reference to the data
-  void Data(arma::mat& d);
-  
-  //! Returns a reference to Sample Probabilites
-  arma::vec Probabilities();
-  
-  //! Sets a reference to Sample Probabilites
-  void Probabilities(arma::vec& prob);
-  
-  //! Returns a reference to the centroid
-  arma::rowvec Centroid();  
-  
-  //! Sets the centroid
-  void Centroid(arma::rowvec& centr);  
-   
-};
-
-}; // namespace tree
-}; // namespace mlpack
-
-// Include implementation.
-#include "cosine_tree_impl.hpp"
-
-#endif
diff --git a/src/mlpack/core/tree/cosine_tree/cosine_tree_builder.hpp b/src/mlpack/core/tree/cosine_tree/cosine_tree_builder.hpp
deleted file mode 100644
index e7f8989..0000000
--- a/src/mlpack/core/tree/cosine_tree/cosine_tree_builder.hpp
+++ /dev/null
@@ -1,108 +0,0 @@
-/**
- * @file cosine_tree_builder.hpp
- * @author Mudit Raj Gupta
- *
- * Helper class to build the cosine tree
- */
-#ifndef __MLPACK_CORE_TREE_COSINE_TREE_COSINE_TREE_BUILDER_HPP
-#define __MLPACK_CORE_TREE_COSINE_TREE_COSINE_TREE_BUILDER_HPP
-
-#include <mlpack/core.hpp>
-#include "cosine_tree.hpp"
-
-using namespace mlpack::tree;
-
-namespace mlpack {
-namespace tree /** tree-building procedures. */ {
-
-class CosineTreeBuilder
-{
- private:
-  /**
-   * Length Square Sampling method for sampling rows
-   * of the matrix
-   *
-   * @param A Matrix for which probabilities are calculated
-   * @param prob Reference to the probability vector
-   */
-  void LSSampling(arma::mat A, arma::vec& prob);
-
-  /**
-   * Calculates the centroid of the matrix
-   *
-   * @param A Matrix for which the centroid has to be calculated
-   */
-  arma::rowvec CalculateCentroid(arma::mat A) const;
-
-  /**
-   * Calculates the Pivot for splitting
-   *
-   * @param prob Probability for a point to act as the pivot
-   */
-  size_t GetPivot(arma::vec prob);
-
-  /**
-   * Splits the points into the root node into children nodes
-   *
-   * @param c Array of Cosin Similarities
-   * @param ALeft Matrix for storing the points in Left Node
-   * @param ARight Matrix for storing the points in Right Node
-   * @param A All points
-   */
-  void SplitData(std::vector<double> c, arma::mat& ALeft,
-                 arma::mat& Aright, arma::mat A);
-
-  /**
-   * Creates Cosine Similarity Array
-   *
-   * @param c Array of Cosine Similarity
-   * @param A All points
-   * @param pivot pivot point
-   */
-  void CreateCosineSimilarityArray(std::vector<double>& c,
-                                   arma::mat A, size_t pivot);
-
-  /**
-   * Calculates Maximum Cosine Similarity
-   *
-   * @param c Array of Cosine Similarities
-   */
-  double GetMaxSimilarity(std::vector<double> c);
-
-  /**
-   * Calculates Maximum Cosine Similarity
-   *
-   * @param c Array of Cosine Similarities
-   */
-  double GetMinSimilarity(std::vector<double> c);
-
- public:
-  //! Empty Constructor
-  CosineTreeBuilder();
-  //! Destructor
-  ~CosineTreeBuilder();
-
-  /**
-   * Creates a new cosine tree node
-   *
-   * @param A Data for constructing the node
-   * @param root Reference to the constructed node
-   */
-  void CTNode(arma::mat A, CosineTree& root);
-
-  /**
-   * Splits a cosine tree node
-   *
-   * @param root Node to be split
-   * @param right reference to the right child
-   * @param left reference to the left child
-   */
-  void CTNodeSplit(CosineTree& root, CosineTree& left, CosineTree& right);
-};
-}; // namespace tree
-}; // namespace mlpack
-
-// Include implementation.
-#include "cosine_tree_builder_impl.hpp"
-
-#endif
diff --git a/src/mlpack/core/tree/cosine_tree/cosine_tree_builder_impl.hpp b/src/mlpack/core/tree/cosine_tree/cosine_tree_builder_impl.hpp
deleted file mode 100644
index 9ba4274..0000000
--- a/src/mlpack/core/tree/cosine_tree/cosine_tree_builder_impl.hpp
+++ /dev/null
@@ -1,172 +0,0 @@
-/**
- * @file cosine_tree_builder_impl.hpp
- * @author Mudit Raj Gupta
- *
- * Implementation of cosine tree builder.
- */
-#ifndef __MLPACK_CORE_TREE_COSINE_TREE_COSINE_TREE_BUILDER_IMPL_HPP
-#define __MLPACK_CORE_TREE_COSINE_TREE_COSINE_TREE_BUILDER_IMPL_HPP
-
-#include "cosine_tree_builder.hpp"
-
-#include <mlpack/core/kernels/cosine_distance.hpp>
-
-namespace mlpack {
-namespace tree {
-
-// Empty Constructor
-CosineTreeBuilder::CosineTreeBuilder()
-{
-  Log::Info<<"Constructor"<<std::endl;
-}
-
-// Destructor
-CosineTreeBuilder::~CosineTreeBuilder() {}
-
-void CosineTreeBuilder::LSSampling(arma::mat A, arma::vec& probability)
-{
-  Log::Info<<"LSSampling"<<std::endl;
-  //Saving the frobenious norm of the matrix
-  double normA = arma::norm(A,"fro");
-  //Calculating probability of each point to be sampled
-  for (size_t i=0;i<A.n_rows;i++)
-    probability(i) = arma::norm(A.row(i),"fro")/normA;
-}
-
-arma::rowvec CosineTreeBuilder::CalculateCentroid(arma::mat A) const
-{
-  Log::Info<<"CalculateCentroid"<<std::endl;
-  //Summing over all coloumns
-  arma::rowvec colsum = arma::sum(A,0);
-  //Averaging
-  double k = 1.0/A.n_rows;
-  return k*colsum;
-}
-
-void CosineTreeBuilder::CTNode(arma::mat A, CosineTree& root)
-{
-  A = A.t();
-  Log::Info<<"CTNode"<<std::endl;
-  //Calculating Centroid
-  arma::rowvec centroid = CalculateCentroid(A);
-  //Calculating sampling probabilities
-  arma::vec probabilities = arma::zeros<arma::vec>(A.n_rows,1);
-  LSSampling(A,probabilities);
-  //Setting Values
-  root.Probabilities(probabilities);
-  root.Data(A);
-  root.Centroid(centroid);
-}
-
-size_t CosineTreeBuilder::GetPivot(arma::vec prob)
-{
-  Log::Info<<"GetPivot"<<std::endl;
-  //Setting firtst value as the pivot
-  double maxPivot=prob(0,0);
-  size_t pivot=0;
-
-  //Searching for the pivot poitn
-  for (size_t i=0;i<prob.n_rows;i++)
-  {
-    if(prob(i,0) > maxPivot)
-    {
-      maxPivot = prob(i,0);
-      pivot = i;
-    }
-  }
-  return pivot;
-}
-
-void CosineTreeBuilder::SplitData(std::vector<double> c, arma::mat& ALeft,
-                                  arma::mat& ARight,arma::mat A)
-{
-  Log::Info<<"SplitData"<<std::endl;
-  double cMax,cMin;
-  //Calculating the lower and the Upper Limit
-  cMin = GetMaxSimilarity(c);
-  cMax = GetMinSimilarity(c);
-  //Couter for left and right
-  size_t lft, rgt;
-  lft = 0;
-  rgt = 0;
-  //Splitting on the basis of nearness to the the high or low value
-  for(size_t i=0;i<A.n_rows;i++)
-  {
-    if ((cMax - c[i])<=(c[i] - cMin))
-    {
-      ALeft.insert_rows(lft,A.row(i));
-      lft ++;
-    }
-    else
-    {
-      ARight.insert_rows(rgt,A.row(i));
-      rgt ++;
-    }
-  }
-}
-
-void CosineTreeBuilder::CreateCosineSimilarityArray(std::vector<double>& c,
-                                                    arma::mat A, size_t pivot)
-{
-  Log::Info<<"CreateCosineSimilarityArray"<<std::endl;
-  for (size_t i = 0; i < A.n_rows; i++)
-  {
-    const double similarity =
-        kernel::CosineDistance::Evaluate(A.row(pivot), A.row(i));
-    c.push_back(similarity);
-  }
-}
-double CosineTreeBuilder::GetMinSimilarity(std::vector<double> c)
-{
-  Log::Info<<"GetMinSimilarity"<<std::endl;
-  double cMin = c[0];
-  for(size_t i=1;i<c.size();i++)
-    if(cMin<c[i])
-      cMin = c[i];
-  return cMin;
-}
-double CosineTreeBuilder::GetMaxSimilarity(std::vector<double> c)
-{
-  Log::Info<<"GetMaxSimilarity"<<std::endl;
-  double cMax = c[0];
-  for(size_t i=1;i<c.size();i++)
-    if(cMax<c[i])
-      cMax = c[i];
-  return cMax;
-}
-void CosineTreeBuilder::CTNodeSplit(CosineTree& root, CosineTree& left,
-                                    CosineTree& right)
-{
-  //Extracting points from the root
-  arma::mat A = root.Data();
-  //Cosine Similarity Array
-  std::vector<double> c;
-  //Matrices holding points for the left and the right node
-  arma::mat ALeft, ARight;
-  //Sampling probabilities
-  arma::vec prob = root.Probabilities();
-  //Pivot
-  size_t pivot = GetPivot(prob);
-  //Creating Array
-  CreateCosineSimilarityArray(c,A,pivot);
-  //Splitting data points
-  SplitData(c,ALeft,ARight,A);
-  //Creating Nodes
-  if(ALeft.n_rows > 0)
-  {
-    CTNode(ALeft.t(),left);
-    //TODO: Traversal is not required, still fix this
-    //root.Left(left);
-  }
-  if(ARight.n_rows > 0)
-  {
-    CTNode(ARight.t(),right);
-    //TODO: Traversal is not required, still fix this
-    //root.Right(right);
-  }
-}
-
-}; // namespace cosinetreebuilder
-}; // namespace mlpack
-
-#endif
diff --git a/src/mlpack/core/tree/cosine_tree/cosine_tree_impl.hpp b/src/mlpack/core/tree/cosine_tree/cosine_tree_impl.hpp
deleted file mode 100644
index 417fa7b..0000000
--- a/src/mlpack/core/tree/cosine_tree/cosine_tree_impl.hpp
+++ /dev/null
@@ -1,108 +0,0 @@
-/**
- * @file cosine_tree_impl.hpp
- * @author Mudit Raj Gupta
- *
- * Implementation of cosine tree.
- */
-#ifndef __MLPACK_CORE_TREE_COSINE_TREE_COSINE_TREE_IMPL_HPP
-#define __MLPACK_CORE_TREE_COSINE_TREE_COSINE_TREE_IMPL_HPP
-
-#include "cosine_tree.hpp"
-
-namespace mlpack {
-namespace tree {
-
-CosineTree::CosineTree(arma::mat data, arma::rowvec centroid, arma::vec probabilities) : 
-    data(data.t()),
-    centroid(centroid),
-    probabilities(probabilities),
-    left(NULL),
-    right(NULL),
-    numPoints(data.n_cols)
-{ 
-  // Nothing to do
-}
-
-CosineTree::CosineTree() : 
-    left(NULL),
-    right(NULL)
-{   
-  // Nothing to do
-}
-
-CosineTree::~CosineTree()
-{
-  if (left)
-    delete left;
-  if (right)
-    delete right;
-}
-
-CosineTree* CosineTree::Right() const
-{
-  return right;
-}
-
-void CosineTree::Right(CosineTree* child)
-{
-  right = child;
-}
-
-CosineTree* CosineTree::Left() const
-{
-  return left;
-}
-
-void CosineTree::Left(CosineTree* child)
-{
-  left = child;
-}
-
-CosineTree& CosineTree::Child(const size_t child) const
-{
-  if (child == 0)
-    return *left;
-  else
-    return *right;
-}
-
-size_t CosineTree::NumPoints() const
-{
-  return numPoints;
-}
-
-arma::mat CosineTree::Data()
-{
-  return data;
-}
-
-void CosineTree::Data(arma::mat& d)
-{
-    data = d;
-    numPoints = d.n_rows;
-}
-
-arma::vec CosineTree::Probabilities() 
-{
-  return probabilities;
-}
-
-void CosineTree::Probabilities(arma::vec& prob)
-{
-  probabilities = prob; 
-}
-
-arma::rowvec CosineTree::Centroid()
-{
-  return centroid;
-}
-
-void CosineTree::Centroid(arma::rowvec& centr)
-{
-    centroid = centr;
-}
-
-}; // namespace tree
-}; // namespace mlpack
-
-#endif



More information about the mlpack-git mailing list