\section{D\+B\+S\+C\+AN$<$ Range\+Search\+Type, Point\+Selection\+Policy $>$ Class Template Reference}
\label{classmlpack_1_1dbscan_1_1DBSCAN}\index{D\+B\+S\+C\+A\+N$<$ Range\+Search\+Type, Point\+Selection\+Policy $>$@{D\+B\+S\+C\+A\+N$<$ Range\+Search\+Type, Point\+Selection\+Policy $>$}}


\doxyref{D\+B\+S\+C\+AN}{p.}{classmlpack_1_1dbscan_1_1DBSCAN} (Density-\/\+Based Spatial Clustering of Applications with Noise) is a clustering technique described in the following paper\+:  


\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\textbf{ D\+B\+S\+C\+AN} (const double epsilon, const size\+\_\+t min\+Points, const bool batch\+Mode=true, Range\+Search\+Type range\+Search=Range\+Search\+Type(), Point\+Selection\+Policy point\+Selector=Point\+Selection\+Policy())
\begin{DoxyCompactList}\small\item\em Construct the \doxyref{D\+B\+S\+C\+AN}{p.}{classmlpack_1_1dbscan_1_1DBSCAN} object with the given parameters. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Mat\+Type $>$ }\\size\+\_\+t \textbf{ Cluster} (const Mat\+Type \&data, arma\+::mat \&centroids)
\begin{DoxyCompactList}\small\item\em Performs \doxyref{D\+B\+S\+C\+AN}{p.}{classmlpack_1_1dbscan_1_1DBSCAN} clustering on the data, returning number of clusters and also the centroid of each cluster. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Mat\+Type $>$ }\\size\+\_\+t \textbf{ Cluster} (const Mat\+Type \&data, arma\+::\+Row$<$ size\+\_\+t $>$ \&assignments)
\begin{DoxyCompactList}\small\item\em Performs \doxyref{D\+B\+S\+C\+AN}{p.}{classmlpack_1_1dbscan_1_1DBSCAN} clustering on the data, returning number of clusters and also the list of cluster assignments. \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Mat\+Type $>$ }\\size\+\_\+t \textbf{ Cluster} (const Mat\+Type \&data, arma\+::\+Row$<$ size\+\_\+t $>$ \&assignments, arma\+::mat \&centroids)
\begin{DoxyCompactList}\small\item\em Performs \doxyref{D\+B\+S\+C\+AN}{p.}{classmlpack_1_1dbscan_1_1DBSCAN} clustering on the data, returning number of clusters, the centroid of each cluster and also the list of cluster assignments. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$typename Range\+Search\+Type = range\+::\+Range\+Search$<$$>$, typename Point\+Selection\+Policy = Ordered\+Point\+Selection$>$\newline
class mlpack\+::dbscan\+::\+D\+B\+S\+C\+A\+N$<$ Range\+Search\+Type, Point\+Selection\+Policy $>$}

\doxyref{D\+B\+S\+C\+AN}{p.}{classmlpack_1_1dbscan_1_1DBSCAN} (Density-\/\+Based Spatial Clustering of Applications with Noise) is a clustering technique described in the following paper\+: 


\begin{DoxyCode}
@inproceedings\{ester1996density,
  title=\{A density-based algorithm \textcolor{keywordflow}{for} discovering clusters in large spatial
      databases with noise.\},
  author=\{Ester, M. and Kriegel, H.-P. and Sander, J. and Xu, X.\},
  booktitle=\{Proceedings of the Second International Conference on Knowledge
      Discovery and Data Mining (KDD \textcolor{stringliteral}{'96)\},}
\textcolor{stringliteral}{  pages=\{226--231\},}
\textcolor{stringliteral}{  year=\{1996\}}
\textcolor{stringliteral}{\}}
\end{DoxyCode}


The \doxyref{D\+B\+S\+C\+AN}{p.}{classmlpack_1_1dbscan_1_1DBSCAN} algorithm iteratively clusters points using range searches with a specified radius parameter. This implementation allows configuration of the range search technique used and the point selection strategy by means of template parameters.


\begin{DoxyTemplParams}{Template Parameters}
{\em Range\+Search\+Type} & Class to use for range searching. \\
\hline
{\em Point\+Selection\+Policy} & Strategy for selecting next point to cluster with. \\
\hline
\end{DoxyTemplParams}


Definition at line 53 of file dbscan.\+hpp.



\subsection{Constructor \& Destructor Documentation}
\mbox{\label{classmlpack_1_1dbscan_1_1DBSCAN_add1ee82d37001657fc8978359145543b}} 
\index{mlpack\+::dbscan\+::\+D\+B\+S\+C\+AN@{mlpack\+::dbscan\+::\+D\+B\+S\+C\+AN}!D\+B\+S\+C\+AN@{D\+B\+S\+C\+AN}}
\index{D\+B\+S\+C\+AN@{D\+B\+S\+C\+AN}!mlpack\+::dbscan\+::\+D\+B\+S\+C\+AN@{mlpack\+::dbscan\+::\+D\+B\+S\+C\+AN}}
\subsubsection{D\+B\+S\+C\+A\+N()}
{\footnotesize\ttfamily \textbf{ D\+B\+S\+C\+AN} (\begin{DoxyParamCaption}\item[{const double}]{epsilon,  }\item[{const size\+\_\+t}]{min\+Points,  }\item[{const bool}]{batch\+Mode = {\ttfamily true},  }\item[{Range\+Search\+Type}]{range\+Search = {\ttfamily RangeSearchType()},  }\item[{Point\+Selection\+Policy}]{point\+Selector = {\ttfamily PointSelectionPolicy()} }\end{DoxyParamCaption})}



Construct the \doxyref{D\+B\+S\+C\+AN}{p.}{classmlpack_1_1dbscan_1_1DBSCAN} object with the given parameters. 

The batch\+Mode parameter should be set to false in the case where R\+AM issues will be encountered (i.\+e. if the dataset is very large or if epsilon is large). When batch\+Mode is false, each point will be searched iteratively, which could be slower but will use less memory.


\begin{DoxyParams}{Parameters}
{\em epsilon} & Size of range query. \\
\hline
{\em min\+Points} & Minimum number of points for each cluster. \\
\hline
{\em batch\+Mode} & If true, all points are searched in batch. \\
\hline
{\em range\+Search} & Optional instantiated Range\+Search object. \\
\hline
{\em point\+Selector} & OptionL instantiated Point\+Selection\+Policy object. \\
\hline
\end{DoxyParams}


\subsection{Member Function Documentation}
\mbox{\label{classmlpack_1_1dbscan_1_1DBSCAN_a224c059e24d3dcdab266b9743ec37404}} 
\index{mlpack\+::dbscan\+::\+D\+B\+S\+C\+AN@{mlpack\+::dbscan\+::\+D\+B\+S\+C\+AN}!Cluster@{Cluster}}
\index{Cluster@{Cluster}!mlpack\+::dbscan\+::\+D\+B\+S\+C\+AN@{mlpack\+::dbscan\+::\+D\+B\+S\+C\+AN}}
\subsubsection{Cluster()\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily size\+\_\+t Cluster (\begin{DoxyParamCaption}\item[{const Mat\+Type \&}]{data,  }\item[{arma\+::mat \&}]{centroids }\end{DoxyParamCaption})}



Performs \doxyref{D\+B\+S\+C\+AN}{p.}{classmlpack_1_1dbscan_1_1DBSCAN} clustering on the data, returning number of clusters and also the centroid of each cluster. 


\begin{DoxyTemplParams}{Template Parameters}
{\em Mat\+Type} & Type of matrix (arma\+::mat or arma\+::sp\+\_\+mat). \\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em data} & Dataset to cluster. \\
\hline
{\em centroids} & Matrix in which centroids are stored. \\
\hline
\end{DoxyParams}
\mbox{\label{classmlpack_1_1dbscan_1_1DBSCAN_a0245b1f39300ec8133bc6cc9309523c6}} 
\index{mlpack\+::dbscan\+::\+D\+B\+S\+C\+AN@{mlpack\+::dbscan\+::\+D\+B\+S\+C\+AN}!Cluster@{Cluster}}
\index{Cluster@{Cluster}!mlpack\+::dbscan\+::\+D\+B\+S\+C\+AN@{mlpack\+::dbscan\+::\+D\+B\+S\+C\+AN}}
\subsubsection{Cluster()\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily size\+\_\+t Cluster (\begin{DoxyParamCaption}\item[{const Mat\+Type \&}]{data,  }\item[{arma\+::\+Row$<$ size\+\_\+t $>$ \&}]{assignments }\end{DoxyParamCaption})}



Performs \doxyref{D\+B\+S\+C\+AN}{p.}{classmlpack_1_1dbscan_1_1DBSCAN} clustering on the data, returning number of clusters and also the list of cluster assignments. 

If assignments[i] == S\+I\+Z\+E\+\_\+\+M\+AX, then the point is considered \char`\"{}noise\char`\"{}.


\begin{DoxyTemplParams}{Template Parameters}
{\em Mat\+Type} & Type of matrix (arma\+::mat or arma\+::sp\+\_\+mat). \\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em data} & Dataset to cluster. \\
\hline
{\em assignments} & Vector to store cluster assignments. \\
\hline
\end{DoxyParams}
\mbox{\label{classmlpack_1_1dbscan_1_1DBSCAN_ac413cbc512ae367a3824f70b0b497f4e}} 
\index{mlpack\+::dbscan\+::\+D\+B\+S\+C\+AN@{mlpack\+::dbscan\+::\+D\+B\+S\+C\+AN}!Cluster@{Cluster}}
\index{Cluster@{Cluster}!mlpack\+::dbscan\+::\+D\+B\+S\+C\+AN@{mlpack\+::dbscan\+::\+D\+B\+S\+C\+AN}}
\subsubsection{Cluster()\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily size\+\_\+t Cluster (\begin{DoxyParamCaption}\item[{const Mat\+Type \&}]{data,  }\item[{arma\+::\+Row$<$ size\+\_\+t $>$ \&}]{assignments,  }\item[{arma\+::mat \&}]{centroids }\end{DoxyParamCaption})}



Performs \doxyref{D\+B\+S\+C\+AN}{p.}{classmlpack_1_1dbscan_1_1DBSCAN} clustering on the data, returning number of clusters, the centroid of each cluster and also the list of cluster assignments. 

If assignments[i] == S\+I\+Z\+E\+\_\+\+M\+AX, then the point is considered \char`\"{}noise\char`\"{}.


\begin{DoxyTemplParams}{Template Parameters}
{\em Mat\+Type} & Type of matrix (arma\+::mat or arma\+::sp\+\_\+mat). \\
\hline
\end{DoxyTemplParams}

\begin{DoxyParams}{Parameters}
{\em data} & Dataset to cluster. \\
\hline
{\em assignments} & Vector to store cluster assignments. \\
\hline
{\em centroids} & Matrix in which centroids are stored. \\
\hline
\end{DoxyParams}


The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
/var/www/mlpack.\+ratml.\+org/mlpack.\+org/\+\_\+src/mlpack-\/git/src/mlpack/methods/dbscan/\textbf{ dbscan.\+hpp}\end{DoxyCompactItemize}
