% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/nmfkc.net.R
\name{nmfkc.net.ecv}
\alias{nmfkc.net.ecv}
\title{Element-wise cross-validation for nmfkc.net (upper-triangle folds)}
\usage{
nmfkc.net.ecv(Y, rank = 1:3, type = c("tri", "bi", "signed"), ...)
}
\arguments{
\item{Y}{Symmetric N x N non-negative matrix.}

\item{rank}{Integer vector of ranks to evaluate. Default \code{1:3}.}

\item{type}{Model type: \code{"tri"} (default), \code{"bi"}, or \code{"signed"}.}

\item{...}{Passed to the underlying fitter; also accepts \code{nfolds}
(default 5; \code{div} alias), \code{seed} (default 123).}
}
\value{
A list with \code{objfunc}, \code{sigma}, \code{objfunc.fold},
\code{folds}, \code{Q.grid}, \code{type}.
}
\description{
k-fold CV with folds taken over the upper triangle of the
symmetric \eqn{Y} (mirrored to the lower triangle) to prevent information
leakage through symmetry.  A single entry point covers all three symmetric
NMF variants; \code{type} selects the fitting function:
\itemize{
\item \code{"tri"} (default): \code{\link{nmfkc.net}} with \eqn{C \ge 0}
\item \code{"bi"}: \code{\link{nmfkc.net}} with \eqn{C = I_Q}
\item \code{"signed"}: \code{\link{nmfkc.net}} with signed \eqn{C = C_{+} - C_{-}}
}
}
\section{Lifecycle}{

This function is \strong{experimental}. The interface may change in
future versions; details are to be described in an upcoming paper.
}

\seealso{
\code{\link{nmfkc.net}}
}
