From 6587b2a8f3bb8ac3bac39b19eb774394234ae677 Mon Sep 17 00:00:00 2001 From: Thierry Denoeux Date: Tue, 21 Jun 2016 17:42:52 +0000 Subject: [PATCH] version 1.0.1 --- DESCRIPTION | 19 + MD5 | 32 + NAMESPACE | 12 + R/EkNNfit.R | 66 ++ R/EkNNinit.R | 54 ++ R/EkNNval.R | 94 +++ R/classds.R | 35 + R/evclass.R | 32 + R/foncgradr2n.R | 85 ++ R/glass-data.R | 40 + R/gradientds.R | 79 ++ R/harris.R | 52 ++ R/ionosphere-data.R | 37 + R/optimds.R | 50 ++ R/proDSfit.R | 80 ++ R/proDSinit.R | 86 ++ R/proDSval.R | 81 ++ R/vehicles-data.R | 36 + data/glass.RData | Bin 0 -> 4331 bytes data/ionosphere.RData | Bin 0 -> 41891 bytes data/vehicles.RData | Bin 0 -> 21273 bytes man/EkNNfit.Rd | 77 ++ man/EkNNinit.Rd | 58 ++ man/EkNNval.Rd | 71 ++ man/evclass.Rd | 37 + man/glass.Rd | 41 + man/ionosphere.Rd | 38 + man/proDSfit.Rd | 75 ++ man/proDSinit.Rd | 62 ++ man/proDSval.Rd | 61 ++ man/vehicles.Rd | 37 + vignettes/Introduction.Rmd | 124 +++ vignettes/tdenoeux.bib | 1548 ++++++++++++++++++++++++++++++++++++ 33 files changed, 3199 insertions(+) create mode 100644 DESCRIPTION create mode 100644 MD5 create mode 100644 NAMESPACE create mode 100644 R/EkNNfit.R create mode 100644 R/EkNNinit.R create mode 100644 R/EkNNval.R create mode 100644 R/classds.R create mode 100644 R/evclass.R create mode 100644 R/foncgradr2n.R create mode 100644 R/glass-data.R create mode 100644 R/gradientds.R create mode 100644 R/harris.R create mode 100644 R/ionosphere-data.R create mode 100644 R/optimds.R create mode 100644 R/proDSfit.R create mode 100644 R/proDSinit.R create mode 100644 R/proDSval.R create mode 100644 R/vehicles-data.R create mode 100644 data/glass.RData create mode 100644 data/ionosphere.RData create mode 100644 data/vehicles.RData create mode 100644 man/EkNNfit.Rd create mode 100644 man/EkNNinit.Rd create mode 100644 man/EkNNval.Rd create mode 100644 man/evclass.Rd create mode 100644 man/glass.Rd create mode 100644 man/ionosphere.Rd create mode 100644 man/proDSfit.Rd create mode 100644 man/proDSinit.Rd create mode 100644 man/proDSval.Rd create mode 100644 man/vehicles.Rd create mode 100644 vignettes/Introduction.Rmd create mode 100644 vignettes/tdenoeux.bib diff --git a/DESCRIPTION b/DESCRIPTION new file mode 100644 index 0000000..cba6090 --- /dev/null +++ b/DESCRIPTION @@ -0,0 +1,19 @@ +Package: evclass +Type: Package +Title: Evidential Distance-Based Classification +Version: 1.0.1 +Date: 2016-06-21 +Author: Thierry Denoeux +Maintainer: Thierry Denoeux +Description: Different evidential distance-based classifiers, which provide + outputs in the form of Dempster-Shafer mass functions. The methods are: the + evidential K-nearest neighbor rule and the evidential neural network. +License: GPL-3 +Depends: R (>= 3.1.0) +Imports: FNN +LazyData: TRUE +RoxygenNote: 5.0.1 +NeedsCompilation: no +Packaged: 2016-06-21 09:49:58 UTC; Thierry +Repository: CRAN +Date/Publication: 2016-06-21 17:42:52 diff --git a/MD5 b/MD5 new file mode 100644 index 0000000..9010aa6 --- /dev/null +++ b/MD5 @@ -0,0 +1,32 @@ +796e0a2c90a6bd52ddb6912593f0598f *DESCRIPTION +6dfd314ed4c8aaa318cb72b37c1bdd9d *NAMESPACE +bcd052b70a02a0e61c6457b927c334c8 *R/EkNNfit.R +a0a4669c272eff4f63a0bdcacafe84e7 *R/EkNNinit.R +cc918301931ef0dfa197a2f3d791b3d0 *R/EkNNval.R +52a431a233d5075e603d3b52f9c9782c *R/classds.R +115d774e5bce42f17e4c44ba20b1c5e2 *R/evclass.R +6f31c165a0d7a2a3e86c41b4e697ed38 *R/foncgradr2n.R +aeaad4cb6952aa9e16d979f5b01f0950 *R/glass-data.R +2980f6f9293ffb4e0dc4d828494c1c99 *R/gradientds.R +20a8bb25740f8f2445eda7ea0460ec20 *R/harris.R +7c919b97eb312a99911bba45aa026664 *R/ionosphere-data.R +848b2e2c11ce455a332dd8b0e7306f75 *R/optimds.R +7535b780d2fd7f9fc526016f40975819 *R/proDSfit.R +4523d06f8b0b94024d8d57b9819c9aac *R/proDSinit.R +cf689fe5918edf79efcfb88395fcbd20 *R/proDSval.R +a988fc277f3bfdb7f16cd8807d7bec4e *R/vehicles-data.R +988e27d0f83a7ff327e4f38f089aeefd *data/glass.RData +b7fa49999b8679c81898cc5262ee0c81 *data/ionosphere.RData +1665c19c5134e390d23a6f938557c3b5 *data/vehicles.RData +692b0234dd3ae533733ef4382a3109b6 *man/EkNNfit.Rd +df9e6f51bbe7a511a71c62669b0369e9 *man/EkNNinit.Rd +5c6c7e59a33b0c199ea37c15e93b6f1a *man/EkNNval.Rd +cf56f366ae4cec7a5916b3be9c7313c5 *man/evclass.Rd +ecf423e10f75e6dab5a7ced8a253575b *man/glass.Rd +144a8069c347be152abc7543780db1c2 *man/ionosphere.Rd +4f20dd9c17a3c66b6eda7e1c24012814 *man/proDSfit.Rd +19dc1316032dc586a3b83fd4d9b31945 *man/proDSinit.Rd +68c05de616fa459bba567ce123daebed *man/proDSval.Rd +6d00db39a18df54421981daa1b761cdc *man/vehicles.Rd +15c64d602e7264b11a8ca115a92a62f8 *vignettes/Introduction.Rmd +7a59c365f0124c990e37d0f2e8c9768c *vignettes/tdenoeux.bib diff --git a/NAMESPACE b/NAMESPACE new file mode 100644 index 0000000..3a70228 --- /dev/null +++ b/NAMESPACE @@ -0,0 +1,12 @@ +# Generated by roxygen2: do not edit by hand + +export(EkNNfit) +export(EkNNinit) +export(EkNNval) +export(proDSfit) +export(proDSinit) +export(proDSval) +import(FNN) +importFrom(stats,dist) +importFrom(stats,kmeans) +importFrom(stats,runif) diff --git a/R/EkNNfit.R b/R/EkNNfit.R new file mode 100644 index 0000000..194f774 --- /dev/null +++ b/R/EkNNfit.R @@ -0,0 +1,66 @@ +#' Training of the EkNN classifier +#' +#'\code{EkNNfit} optimizes the parameters of the EkNN classifier. +#' +#'If the argument \code{param} is not supplied, the function \code{\link{EkNNinit}} is called. +#' +#' @param x Input matrix of size n x d, where n is the number of objects and d the number of +#' attributes. +#' @param y Vector of class labels (of length n). May be a factor, or a vector of +#' integers. +#' @param K Number of neighbors. +#' @param param Initial parameters (default: NULL). +#' @param alpha Parameter \eqn{\alpha} (default: 0.95) +#' @param lambda Parameter of the cost function. If \code{lambda=1}, the +#' cost function measures the error between the plausibilities and the 0-1 target values. +#' If \code{lambda=1/M}, where M is the number of classes (default), the piginistic probabilities +#' are considered in the cost function. If \code{lambda=0}, the beliefs are used. +#' @param optimize Boolean. If TRUE (default), the parameters are optimized. +#' @param options A list of parameters for the optimization algorithm: maxiter +#' (maximum number of iterations), eta (initial step of gradient variation), +#' gain_min (minimum gain in the optimisation loop), disp (Boolean; if TRUE, intermediate +#' results are displayed during the optimization). +#' +#' @return A list with five elements: +#' \describe{ +#' \item{param}{The optimized parameters.} +#' \item{cost}{Final value of the cost function.} +#' \item{err}{Leave-one-out error rate.} +#' \item{ypred}{Leave-one-out predicted class labels.} +#' \item{m}{Leave-one-out predicted mass functions. The first M columns correspond +#' to the mass assigned to each class. The last column corresponds to the mass +#' assigned to the whole set of classes.} +#' } +#' +#'@references T. Denoeux. A k-nearest neighbor classification rule based on Dempster-Shafer +#'theory. IEEE Transactions on Systems, Man and Cybernetics, 25(05):804--813, 1995. +#' +#' L. M. Zouhal and T. Denoeux. An evidence-theoretic k-NN rule with parameter +#' optimization. IEEE Transactions on Systems, Man and Cybernetics Part C, +#' 28(2):263--271,1998. +#' +#'Available from \url{https://www.hds.utc.fr/~tdenoeux}. +#' +#'@author Thierry Denoeux. +#' +#' @export +#' @import FNN +#' +#' @seealso \code{\link{EkNNinit}}, \code{\link{EkNNval}} +#' +#' @examples ## Iris dataset +#' data(iris) +#' x<-iris[,1:4] +#' y<-iris[,5] +#' fit<-EkNNfit(x,y,K=5) +EkNNfit<-function(x,y,K,param=NULL,alpha=0.95,lambda=1/max(as.numeric(y)),optimize=TRUE, + options=list(maxiter=300,eta=0.1,gain_min=1e-6,disp=TRUE)){ + y<-as.integer(y) + x<-as.matrix(x) + if(is.null(param)) param<-EkNNinit(x,y,alpha) + knn<-get.knn(x,k=K) + knn$nn.dist<-knn$nn.dist^2 + if(optimize) opt<-optimds(x,y,param,knn,K,lambda,options) + class <- classds(opt$param,knn,y,K) + return(list(param=opt$param,cost=opt$cost,err=class$err,ypred=class$ypred,m=class$m)) +} diff --git a/R/EkNNinit.R b/R/EkNNinit.R new file mode 100644 index 0000000..8a64432 --- /dev/null +++ b/R/EkNNinit.R @@ -0,0 +1,54 @@ +#' Initialization of parameters for the EkNN classifier +#' +#'\code{EkNNinit} returns initial parameter values for the EkNN classifier. +#' +#'Each parameter \eqn{\gamma_k} is set ot the inverse of the square root of the mean +#'Euclidean distances wihin class k. Note that \eqn{\gamma_k} here is the square root +#'of the \eqn{\gamma_k} as defined in (Zouhal and Denoeux, 1998). By default, parameter alpha is set +#'to 0.95. This value normally does not have to be changed. +#' +#' +#' @param x Input matrix of size n x d, where n is the number of objects and d the number of +#' attributes. +#' @param y Vector of class lables (of length n). May be a factor, or a vector of +#' integers. +#' @param alpha Parameter \eqn{\alpha}. +#' +#' @return A list with two elements: +#' \describe{ +#' \item{gamma}{Vector of parameters \eqn{\gamma_k}, of length c, the number of classes.} +#' \item{alpha}{Parameter \eqn{\alpha}, set to 0.95.} +#' } +#' +#'@references T. Denoeux. A k-nearest neighbor classification rule based on Dempster-Shafer +#'theory. IEEE Transactions on Systems, Man and Cybernetics, 25(05):804--813, 1995. +#' +#' L. M. Zouhal and T. Denoeux. An evidence-theoretic k-NN rule with parameter +#' optimization. IEEE Transactions on Systems, Man and Cybernetics Part C, +#' 28(2):263--271,1998. +#' +#'Available from \url{https://www.hds.utc.fr/~tdenoeux}. +#' +#'@author Thierry Denoeux. +#' +#' @export +#' @importFrom stats dist +#' +#' @seealso \code{\link{EkNNfit}}, \code{\link{EkNNval}} +#' +#' @examples ## Iris dataset +#' data(iris) +#' x<-iris[,1:4] +#' y<-iris[,5] +#' param<-EkNNinit(x,y) +#' param +EkNNinit<-function(x,y,alpha=0.95){ + y<-as.numeric(y) + M<-max(y) + gamm<-rep(0,M) + for(k in 1:M){ + D<-dist(x[y==k,]) + gamm[k]<-1/sqrt(mean(D)) + } + return(list(gamma=gamm,alpha=alpha)) +} diff --git a/R/EkNNval.R b/R/EkNNval.R new file mode 100644 index 0000000..dbfb016 --- /dev/null +++ b/R/EkNNval.R @@ -0,0 +1,94 @@ +#' Classification of a test set by the EkNN classifier +#' +#'\code{EkNNval} classifies instances in a test set using the EkNN classifier. +#' +#' If class labels for the test set are provided, the test error rate is also returned. +#' If parameters are not supplied, they are given default values by \code{\link{EkNNinit}}. +#' +#' +#' @param xtrain Matrix of size ntrain x d, containing the values of the d attributes for the +#' training data. +#' @param ytrain Vector of class labels for the training data (of length ntrain). May +#' be a factor, or a vector of integers. +#' @param xtst Matrix of size ntst x d, containing the values of the d attributes for the +#' test data. +#' @param K Number of neighbors. +#' @param ytst Vector of class labels for the test data (optional). May +#' be a factor, or a vector of integers. +#' @param param Parameters, as returned by \code{\link{EkNNfit}}. +#' +#' @return A list with three elements: +#' \describe{ +#' \item{m}{Predicted mass functions for the test data. The first M columns correspond +#' to the mass assigned to each class. The last column corresponds to the mass +#' assigned to the whole set of classes.} +#' \item{ypred}{Predicted class labels for the test data.} +#' \item{err}{Test error rate.} +#' } +#' +#' +#'@references T. Denoeux. A k-nearest neighbor classification rule based on Dempster-Shafer +#'theory. IEEE Transactions on Systems, Man and Cybernetics, 25(05):804--813, 1995. +#' +#' L. M. Zouhal and T. Denoeux. An evidence-theoretic k-NN rule with parameter +#' optimization. IEEE Transactions on Systems, Man and Cybernetics Part C, +#' 28(2):263--271,1998. +#' +#'Available from \url{https://www.hds.utc.fr/~tdenoeux}. +#' +#'@author Thierry Denoeux. +#' +#' @export +#' @import FNN +#' +#' @seealso \code{\link{EkNNinit}}, \code{\link{EkNNfit}} +#' +#' @examples ## Iris dataset +#' data(iris) +#' train<-sample(150,100) +#' xtrain<-iris[train,1:4] +#' ytrain<-iris[train,5] +#' xtst<-iris[-train,1:4] +#' ytst<-iris[-train,5] +#' K<-5 +#' fit<-EkNNfit(xtrain,ytrain,K) +#' test<-EkNNval(xtrain,ytrain,xtst,K,ytst,fit$param) +EkNNval <- function(xtrain,ytrain,xtst,K,ytst=NULL,param=NULL){ + + ytrain<-as.numeric(ytrain) + if(!is.null(ytst)) ytst<-as.numeric(ytst) + + if(is.null(param)) param<-EkNNinit(xtrain,ytrain) + + Napp<-nrow(xtrain) + M<-max(ytrain) + N<-nrow(xtst) + + knn<-get.knnx(xtrain, xtst, k=K) + knn$nn.dist<-knn$nn.dist^2 + is<-t(knn$nn.index) + ds<-t(knn$nn.dist) + + m = rbind(matrix(0,M,N),rep(1,N)) + + + for(i in 1:N){ + for(j in 1:K){ + m1 <- rep(0,M+1) + m1[ytrain[is[j,i]]] <- param$alpha*exp(-param$gamma[ytrain[is[j,i]]]^2*ds[j,i]) + m1[M+1] <- 1 - m1[ytrain[is[j,i]]] + m[1:M,i] <- m1[1:M]*m[1:M,i] + m1[1:M]*m[M+1,i] + m[1:M,i]*m1[M+1] + m[M+1,i] <- m1[M+1] * m[M+1,i] + m<-m/matrix(colSums(m),M+1,N,byrow=TRUE) + } + } + m<-t(m) + ypred<-max.col(m[,1:M]) + if(!is.null(ytst)) err<-length(which(ypred != ytst))/N else err<-NULL + + return(list(m=m,ypred=ypred,err=err)) + +} + + + diff --git a/R/classds.R b/R/classds.R new file mode 100644 index 0000000..067e949 --- /dev/null +++ b/R/classds.R @@ -0,0 +1,35 @@ +classds<-function(param,knn,y,K){ + N<-length(y) + M=max(y) + L<-rep(0,N) + mk <- rbind(matrix(0,M,N),rep(1,N)) + is<-t(knn$nn.index) + ds<-t(knn$nn.dist) + + for(k in 1:K){ + Is <- is[k,] + Is = y[Is] + Tk <- matrix(0,M,N) + for(j in 1:M){ + pos <- which(Is==j) + if(length(pos) != 0) Tk[j,pos] <- rep(1,length(pos)) + } + G <- matrix(param$gamm^2,M,N) * Tk + gam <- apply(G,2,max) + s <- param$alpha*exp(-gam *ds[k,]) + m <- rbind(Tk*matrix(s,M,N,byrow=TRUE),1-s) + mk <- rbind( mk[1:M,]*(m[1:M,]+matrix(m[M+1,],M,N,byrow=TRUE))+ + m[1:M,]*matrix(mk[M+1,],M,N,byrow=TRUE),mk[M+1,]*m[M+1,]) + Kn <- colSums(mk) + mk <- mk/ matrix(Kn,M+1,N,byrow=TRUE) + } + mk<-t(mk) + L<-max.col(mk[,1:M]) + err=length(which(L != y))/N + return(list(m=mk,ypred=L,err=err)) +} + + + + + diff --git a/R/evclass.R b/R/evclass.R new file mode 100644 index 0000000..1412413 --- /dev/null +++ b/R/evclass.R @@ -0,0 +1,32 @@ +#' evclass: A package for evidential classification +#' +#' The evclass package currently contains functions for two evidential classifiers: the evidential +#' K-nearest neighbor (EK-NN) rule (Denoeux, 1995; Zouhal and Denoeux, 1998) and the evidential +#' neural network (Denoeux, 2000). In contrast with classical statistical classifiers, evidential +#' classifier quantify the uncertainty of the classification using Dempster-Shafer mass functions. +#' +#' The main functions are: \code{\link{EkNNinit}}, \code{\link{EkNNfit}} and \code{\link{EkNNval}} +#' for the initialization, training and evaluation of the EK-NN classifier, and +#' \code{\link{proDSinit}}, \code{\link{proDSfit}} and \code{\link{proDSval}} for the +#' evidential neural network classifier. +#' +#' @docType package +#' @name evclass +#' +#' @seealso \code{\link{EkNNinit}}, \code{\link{EkNNfit}}, +#'\code{\link{EkNNval}}, \code{\link{proDSinit}}, \code{\link{proDSfit}}, \code{\link{proDSval}}. +#' +#' @references +#'T. Denoeux. A k-nearest neighbor classification rule based on Dempster-Shafer +#'theory. IEEE Transactions on Systems, Man and Cybernetics, 25(05):804--813, 1995. +#' +#'T. Denoeux. A neural network classifier based on Dempster-Shafer theory. +#'IEEE Trans. on Systems, Man and Cybernetics A, 30(2):131--150, 2000. +#' +#' L. M. Zouhal and T. Denoeux. An evidence-theoretic k-NN rule with parameter +#' optimization. IEEE Transactions on Systems, Man and Cybernetics Part C, +#' 28(2):263--271,1998. +#' +#'Available from \url{https://www.hds.utc.fr/~tdenoeux}. +#' +NULL diff --git a/R/foncgradr2n.R b/R/foncgradr2n.R new file mode 100644 index 0000000..a728630 --- /dev/null +++ b/R/foncgradr2n.R @@ -0,0 +1,85 @@ +# Gradient and cost calculation for the evidential neural network classifier. Called by harris. +foncgradr2n<- function(w,X,t,lambda,mu,optimProto){ + l <- length(w) + p<-nrow(X) + N<-ncol(X) + M<- nrow(t) + n <- l / (p+2+M) + + W<-matrix(w[1:(n*p)],n,p) + Gamma <- w[(n*p+1):(n*p+n)] + BETA <- matrix(w[(n*(p+1)+1):(n*(p+1+M))],n,M) + alpha <- w[(n*(p+1+M)+1):l] + BETA2 <- BETA^2 + beta2 <- rowSums(BETA2) + U <- BETA2 / matrix(beta2,n,M,byrow=TRUE) + + d<-matrix(0,n,N) + s<-d + expo<-s + dU <- matrix(0,n,M) + Dbeta <- dU + Ds <- matrix(0,n,N) + Dgamma <- Ds + Dalpha <- Ds + DW<-matrix(0,n,p) + mk <- rbind(matrix(0,M,N),rep(1,N)) + mm <- mk + alphap <- 0.99 / (1 + exp(-alpha)) + + for(k in 1:n){ + # propagation + d[k,] <- 0.5*colSums((X - matrix(W[k,],p,N))^2) + expo[k,] <- exp(- Gamma[k]^2 * d[k,]) + s[k,] <- alphap[k]*expo[k,] + m = rbind(U[k,] %o% s[k,],1-s[k,]) + mk = rbind( mk[1:M,] * (m[1:M,] + matrix(m[M+1,],M,N,byrow=TRUE)) + + m[1:M,]*matrix(mk[M+1,],M,N,byrow=TRUE), mk[M+1,]*m[M+1,]) + } + # normalisation + K <- colSums(mk) + K2<-K^2 + mkn<-mk/matrix(K,M+1,N,byrow=TRUE) + Q <- mkn[1:M,] + lambda * matrix(mkn[M+1,],M,N,byrow=TRUE) - t + E <- 0.5 * mean(colSums(Q^2)) + mu * sum(alphap) + + dEdm <- matrix(0,M+1,N) + I <- diag(M) + for(k in 1:M){ + dEdm[k,] <- colSums( Q * (I[,k]%o%K - mk[1:M,] - + lambda*matrix(mk[M+1,],M,N,byrow=TRUE))) / K2 + } + dEdm[M+1,] <- colSums(Q * (-mk[1:M,] + + lambda*matrix(K-mk[M+1,],M,N,byrow=TRUE))) / K2 + + mm<-matrix(0,M+1,N) + for(k in 1:n){ + # gradient calculation + m <- rbind(U[k,] %o% s[k,] , 1-s[k,]) + mm[M+1,] <- mk[M+1,] / m[M+1,] + L <- matrix(mm[M+1,],M,N,byrow=TRUE) + mm[1:M,] <- (mk[1:M,] - L * m[1:M,]) / + (m[1:M,] + matrix(m[M+1,],M,N,byrow=TRUE)) + R <- mm[1:M,] + L + A <- R * matrix(s[k,],M,N,byrow=TRUE) + B <- matrix(U[k,],M,N) * R - mm[1:M,] + dU[k,] <- rowMeans(A * dEdm[1:M,]) + Ds[k,] <- colSums(dEdm[1:M,] * B) - dEdm[M+1,]*mm[M+1,] + DW[k,] <- - (Ds[k,] * Gamma[k]^2 * s[k,]) %*% (matrix(W[k,],N,p,byrow=TRUE) - t(X)) + } + +DW <- as.numeric(optimProto)*DW/N + +T <- matrix(beta2,n,M) +Dbeta <- 2*BETA / T^2 * (dU *(T - BETA2) - matrix(rowSums(dU*BETA2),n,M) + dU * BETA2) + +Dgamma <- - 2 * rowMeans(Ds * d * s) * Gamma +Dalpha <- (rowMeans(Ds * expo)+ mu) * 0.99 * (1-alphap) * alphap + +G = c(as.vector(DW),Dgamma,as.vector(Dbeta),Dalpha) + +return(list(E=E,G=G)) + +} + + diff --git a/R/glass-data.R b/R/glass-data.R new file mode 100644 index 0000000..24e1694 --- /dev/null +++ b/R/glass-data.R @@ -0,0 +1,40 @@ +#' Glass dataset +#' +#' This data set contains the description of 214 fragments of glass originally +#' collected for a study in the context of criminal investigation. Each fragment has a measured +#' reflectivity index and chemical composition (weight percent of Na, Mg, Al, Si, K, Ca, Ba and Fe). +#' As suggested by Ripley (1994), 29 instances were discarded, and the remaining 185 +#' were re-grouped in four classes: window float glass (70), window non-float glass (76), vehicle window +#' glass (17) and other (22). The data set was split randomly in a training set of size 89 and a test +#' set of size 96. +#' +#' @docType data +#' +#' @usage data(glass) +#' +#' @format A list with two elements: +#' \describe{ +#' \item{x}{The 185 x 9 object-attribute matrix.} +#' \item{y}{A 185-vector containing the class labels.} +#' } +#' +#' @keywords datasets +#' +#' @references +#' +#' P. M. Murphy and D. W. Aha. UCI Reposition of machine learning databases. +#' [Machine readable data repository]. University of California, Departement of +#' Information and Computer Science, Irvine, CA. +#' +#' B.D.Ripley, Flexible nonlinear approaches to classification, in "From Statistics +#' to Neural Networks", V. Cherkassly, J. H. Friedman, and H. Wechsler, Eds., +#' Berlin, Germany: Springer-Verlag, 1994, pp. 105--126. +#' +#' T. Denoeux. A neural network classifier based on Dempster-Shafer theory. +#'IEEE Trans. on Systems, Man and Cybernetics A, 30(2):131--150, 2000. +#' +#' +#' @examples +#' data(glass) +#' table(glass$y) +"glass" diff --git a/R/gradientds.R b/R/gradientds.R new file mode 100644 index 0000000..147d8b0 --- /dev/null +++ b/R/gradientds.R @@ -0,0 +1,79 @@ +# Gradient and cost function for EkNN, used by optimds.R +gradientds<-function(y,knn,P,alpha,K,lambda){ + N<-length(y) + M <- max(y) + Ident <- diag(M) + T <- Ident[,y] + + gama <- P + Dgama = rep(0,M) + Ds <- rep(0,N) + Dsgama <- matrix(0,M,N) + mk<-rbind(matrix(0,M,N),rep(1,N)) + mm <- mk + + s <- matrix(0,K,N) + + is<-t(knn$nn.index) + ds<-t(knn$nn.dist) + + logK=0 + for(k in 1:K){ + Is <- is[k,] + Is = y[Is] + Tk <- matrix(0,M,N) + for(j in 1:M){ + pos <- which(Is==j) + if(length(pos) != 0) Tk[j,pos] <- rep(1,length(pos)) + } + G <- matrix(gama^2,M,N) * Tk + gam <- apply(G,2,max) + s[k,] <- alpha*exp(-gam *ds[k,]) + m <- rbind(Tk*matrix(s[k,],M,N,byrow=TRUE),1-s[k,]) + mk <- rbind( mk[1:M,]*(m[1:M,]+matrix(m[M+1,],M,N,byrow=TRUE))+ + m[1:M,]*matrix(mk[M+1,],M,N,byrow=TRUE),mk[M+1,]*m[M+1,]) + } + + # Normalization + Kn <- colSums(mk) + mkn <- mk/ matrix(Kn,M+1,N,byrow=TRUE) + Q <- mkn[1:M,]+lambda*matrix(mkn[M+1,],M,N,byrow=TRUE) - T + + ERR <- 0.5*mean(colSums(Q^2)) + + # gradient + + Dsm <- matrix(0,M+1,N) + + for(k in 1:K){ + Is <- is[k,] + Is <- y[Is] + Tk <- matrix(0,M,N) + for(j in 1:M){ + pos <- which(Is==j) + if(length(pos) != 0) Tk[j,pos] <- rep(1,length(pos)) + } + m <- rbind(Tk*matrix(s[k,],M,N,byrow=TRUE),1-s[k,]) + if(length(which(m[M+1,] == 0)) > 1){ + Dsgama <- matrix(1e10,M,N) + k <- K+1 + } else{ + mm[M+1,] <- mk[M+1,]/m[M+1,] + H = matrix(mm[M+1,],M,N,byrow=TRUE) + mm[1:M,] <- (mk[1:M,] - H*m[1:M,])/(m[1:M,]+ matrix(m[M+1,],M,N,byrow=TRUE)) + v<- (mm[1:M,] + matrix(mm[M+1,],M,N,byrow=TRUE)) * Tk - mm[1:M,] + DsK <- colSums(v) - mm[M+1,] + Dsm[1:M,] <- (matrix(Kn,M,N,byrow=TRUE)*v - + mk[1:M,]*matrix(DsK,M,N,byrow=TRUE) ) / matrix(Kn^2,M,N,byrow=TRUE) + Dsm[M+1,] <- (-Kn*mm[M+1,] - mk[M+1,]*DsK)/(Kn^2) + Ds <- colSums(Q*(Dsm[1:M,]+lambda*matrix(Dsm[M+1,],M,N,byrow=TRUE))) + Dsgama <- Dsgama -2*gama%*%t(Ds*ds[k,]*s[k,]) *Tk + } + } + + return(list(cost=ERR,grad=rowMeans(Dsgama))) + +} + + + diff --git a/R/harris.R b/R/harris.R new file mode 100644 index 0000000..fa390a9 --- /dev/null +++ b/R/harris.R @@ -0,0 +1,52 @@ +# optimization algorithm used by proDSfit +harris <-function(x0,z,t,lambda,mu,optimProto,options){ + pas <- rep(options$eta,length(x0)) + a <- 1.2 + b <- 0.8 + c <- 0.5 + ovf <- 1e4 + unf <- 1e-6 + x<-x0 + + it <- 0 + gain<-1 + yg<- foncgradr2n(x,z,t,lambda,mu,optimProto) + yp<-yg$E + gp<-yg$G + + + while((gain >= options$gain_min) & (it <= options$maxiter)){ + it<-it+1; + yg<-foncgradr2n(x,z,t,lambda,mu,optimProto); + y<-yg$E + g<-yg$G + if(options$disp >0){ + if(it-floor(it/options$disp)*options$disp ==1) print(c(it, y, 10*gain)) + } + if(y > yp){ + x <- xp + g <- gp + pas <- pas * c + x <- x - pas * g + } else{ + gain<-0.9*gain+0.1*abs(yp-y) + xp <- x + test <- (g * gp) >= 0 + pas <- ((test * a) + ((!test) * b)) * pas + pas <- (pas<=ovf) * pas + (pas>ovf) * ovf + pas <- (pas>=unf) * pas + (pas= options$gain_min) & (it <= options$maxiter)){ + it = it + 1; + costgrad<-gradientds(y,knn,P,alpha,K,lambda) + Errco<-costgrad$cost + D <- costgrad$grad + if(is.nan(gain) | is.infinite(gain)) gain <- 1 + if(options$disp) print(c(it,Errco,gain)) + if(Errco > Errcop){ + P <- Pp + D <- Dp + pas <- pas * c + P <- P - pas * D + }else{ + gain <- .9*gain + .1*abs(Errcop - Errco) + Pp <- P + test <- ((D * Dp) >= 0) + pas <- ((test * a) + ((!test) * b)) * pas + pas <- (pas <= mx) * pas + (pas > mx) * mx + pas <- (pas >= mi) * pas + (pas < mi) * mi + Dp <- D + P <- P - pas * D + Errcop <- Errco + } + } + return(list(param=list(gamma=P,alpha=alpha),cost=Errco)) +} + + + + diff --git a/R/proDSfit.R b/R/proDSfit.R new file mode 100644 index 0000000..362add1 --- /dev/null +++ b/R/proDSfit.R @@ -0,0 +1,80 @@ +#' Training of the evidential neural network classifier +#' +#'\code{proDSfit} performs parameter optimization for the evidential neural network classifier. +#' +#'The prototypes are initialized by the k-means algorithms. The initial membership values \eqn{u_{ik}} of +#'each prototype \eqn{p_i} to class \eqn{\omega_k} are normally defined as the proportion of training samples +#'from class \eqn{\omega_k} in the neighborhood of prototype \eqn{p_i}. If arguments \code{crisp} and +#'\code{nprotoPerClass} are set to TRUE, the prototypes are assigned to one and only one class. +#' +#' @param x Input matrix of size n x d, where n is the number of objects and d the number of +#' attributes. +#' @param y Vector of class lables (of length n). May be a factor, or a vector of +#' integers. +#' @param param Initial parameters (see \code{link{proDSinit}}). +#' @param lambda Parameter of the cost function. If \code{lambda=1}, the +#' cost function measures the error between the plausibilities and the 0-1 target values. +#' If \code{lambda=1/M}, where M is the number of classes (default), the piginistic probabilities +#' are considered in the cost function. If \code{lambda=0}, the beliefs are used. +#' @param mu Regularization hyperparameter (default=0). +#' @param optimProto Boolean. If TRUE, the prototypes are optimized (default). Otherwise, they are fixed. +#' @param options A list of parameters for the optimization algorithm: maxiter +#' (maximum number of iterations), eta (initial step of gradient variation), +#' gain_min (minimum gain in the optimisation loop), disp (integer; if >0, intermediate +#' results are displayed every disp iterations). +#' +#' +#' @return A list with three elements: +#' \describe{ +#' \item{param}{Optimized network parameters.} +#' \item{cost}{Final value of the cost function.} +#' \item{err}{Training error rate.} +#' } +#' +#'@references T. Denoeux. A neural network classifier based on Dempster-Shafer theory. +#'IEEE Trans. on Systems, Man and Cybernetics A, 30(2):131--150, 2000. +#' +#'Available from \url{https://www.hds.utc.fr/~tdenoeux}. +#' +#'@author Thierry Denoeux. +#' +#' @export +#' +#' @seealso \code{\link{proDSinit}}, \code{\link{proDSval}} +#' +#' @examples ## Glass dataset +#' data(glass) +#' xapp<-glass$x[1:89,] +#' yapp<-glass$y[1:89] +#' xtst<-glass$x[90:185,] +#' ytst<-glass$y[90:185] +#' ## Initialization +#' param0<-proDSinit(xapp,yapp,nproto=7) +#' ## Training +#' fit<-proDSfit(xapp,yapp,param0) +proDSfit <- function(x,y,param,lambda=1/max(as.numeric(y)),mu=0,optimProto=TRUE, + options=list(maxiter=500,eta=0.1,gain_min=1e-4,disp=10)){ + + M<-max(as.numeric(y)) + n<-nrow(param$W) + p<-ncol(param$W) + Id <- diag(M) + t<-Id[y,] + N<-nrow(x) + w <- c(as.vector(param$W),param$gamma,as.vector(param$beta),param$alpha) + l <- length(w) + + opt<-harris(w,t(x),t(t),lambda,mu,optimProto,options) + + W<-matrix(opt$w[1:(n*p)],n,p) + Gamma <- opt$w[(n*p+1):(n*p+n)] + BETA <- matrix(opt$w[(n*(p+1)+1):(n*(p+1+M))],n,M) + alpha <- opt$w[(n*(p+1+M)+1):l] + param<-list(alpha=alpha,gamma=Gamma,beta=BETA,W=W) + + propag<-proDSval(x,param,y) + + return(list(param=param,cost=opt$E,err=propag$err)) +} + + diff --git a/R/proDSinit.R b/R/proDSinit.R new file mode 100644 index 0000000..70d5a7a --- /dev/null +++ b/R/proDSinit.R @@ -0,0 +1,86 @@ +#' Initialization of parameters for the evidential neural network classifier +#' +#'\code{proDSinit} returns initial parameter values for the evidential neural network classifier. +#' +#'The prototypes are initialized by the k-means algorithms. The initial membership values \eqn{u_{ik}} of +#'each prototype \eqn{p_i} to class \eqn{\omega_k} are normally defined as the proportion of training samples +#'from class \eqn{\omega_k} in the neighborhood of prototype \eqn{p_i}. If arguments \code{crisp} and +#'\code{nprotoPerClass} are set to TRUE, the prototypes are assigned to one and only one class. +#' +#' @param x Input matrix of size n x d, where n is the number of objects and d the number of +#' attributes. +#' @param y Vector of class lables (of length n). May be a factor, or a vector of +#' integers. +#' @param nproto Number of prototypes. +#' @param nprotoPerClass Boolean. If TRUE, there are \code{nproto} prototypes per class. If +#' FALSE (default), the total number of prototypes is equal to \code{nproto}. +#' @param crisp Boolean. If TRUE, the prototypes have full membership to only one class. (Available only is +#' nprotoPerClass=TRUE). +#' +#' @return A list with four elements containg the initialized network parameters +#' \describe{ +#' \item{alpha}{Vector of length r, where r is the number of prototypes.} +#' \item{gamma}{Vector of length r} +#' \item{beta}{Matrix of size (r,M), where M is the number fo classes.} +#' \item{W}{Matrix of size (r,d), containing the prototype coordinates.} +#' } +#' +#'@references T. Denoeux. A neural network classifier based on Dempster-Shafer theory. +#'IEEE Trans. on Systems, Man and Cybernetics A, 30(2):131--150, 2000. +#' +#'Available from \url{https://www.hds.utc.fr/~tdenoeux}. +#' +#'@author Thierry Denoeux. +#' +#' @export +#' @importFrom stats runif kmeans +#' +#' @seealso \code{\link{proDSfit}}, \code{\link{proDSval}} +#' +#' @examples ## Glass dataset +#' data(glass) +#' xapp<-glass$x[1:89,] +#' yapp<-glass$y[1:89] +#' param0<-proDSinit(xapp,yapp,nproto=7) +#' param0 +proDSinit<- function(x,y,nproto,nprotoPerClass=FALSE,crisp=FALSE){ + y<-as.numeric(y) + M <- max(y) + N <- nrow(x) + Id <- diag(M) + t<-Id[y,] + + if(nprotoPerClass){ + W0<-NULL + BETA0<-NULL + for(i in 1:M){ + ii<-which(y==i) + clus <- kmeans(x[ii,],nproto) + W0 <- rbind(W0,clus$centers) + BETA0 <- rbind(BETA0,t[ii[1:nproto],]) + } + n<-nproto*M + if(!crisp) BETA0 <- BETA0 + 0.1 + } else{ + n<-nproto + BETA0<-matrix(0,n,M) + clus <- kmeans(x,n) + class<-clus$cluster + W0<-clus$centers + for(i in 1:n){ + ii <- which(class == i) + if(length(ii)==1){ + BETA0[i,] = t[ii,] + } else if(length(ii)>0){ + BETA0[i,] = sqrt(colMeans(t[ii,])) + } else BETA0[i,] <- runif(M) + } # end for + } # end if + alpha0 <- rep(0,n) + gamma0 <- rep(0.1,n) + return(list(alpha=alpha0,gamma=gamma0,beta=BETA0,W=W0)) + +} + + + diff --git a/R/proDSval.R b/R/proDSval.R new file mode 100644 index 0000000..5b05dba --- /dev/null +++ b/R/proDSval.R @@ -0,0 +1,81 @@ +#' Classification of a test set by the evidential neural network classifier +#' +#'\code{proDSval} classifies instances in a test set using the evidential neural network classifier. +#' +#' If class labels for the test set are provided, the test error rate is also returned. +#' +#' @param x Matrix of size n x d, containing the values of the d attributes for the test data. +#' @param param Neural network parameters, as provided by \code{\link{proDSfit}}. +#' @param y Optimnal vector of class labels for the test data. May be a factor, or a vector of +#' integers. +#' +#' @return A list with three elements: +#' \describe{ +#' \item{m}{Predicted mass functions for the test data. The first M columns correspond +#' to the mass assigned to each class. The last column corresponds to the mass +#' assigned to the whole set of classes.} +#' \item{ypred}{Predicted class labels for the test data.} +#' \item{err}{Test error rate (if the class label of test data has been provided).} +#' } +#' +#'@references +#'T. Denoeux. A neural network classifier based on Dempster-Shafer theory. +#'IEEE Trans. on Systems, Man and Cybernetics A, 30(2):131--150, 2000. +#' +#'Available from \url{https://www.hds.utc.fr/~tdenoeux}. +#' +#'@author Thierry Denoeux. +#' +#' @export +#' +#' @seealso \code{\link{proDSinit}}, \code{\link{proDSfit}} +#' +#' @examples ## Glass dataset +#' data(glass) +#' xapp<-glass$x[1:89,] +#' yapp<-glass$y[1:89] +#' xtst<-glass$x[90:185,] +#' ytst<-glass$y[90:185] +#' ## Initialization +#' param0<-proDSinit(xapp,yapp,nproto=7) +#' ## Training +#' fit<-proDSfit(xapp,yapp,param0) +#' ## Test +#' val<-proDSval(xtst,fit$param,ytst) +#' ## Confusion matrix +#' table(ytst,val$ypred) +proDSval<-function(x,param,y=NULL){ + n<-nrow(param$W) + p<-ncol(param$W) + N <- nrow(x) + M <- ncol(param$beta) + x<-t(x) + + BETA2<-param$beta^2 + beta2 <- rowSums(BETA2) + U <- BETA2 / matrix(beta2,n,M,byrow=TRUE) + alphap<-0.99 / (1 + exp(-param$alpha)) + + mk <- rbind(matrix(0,M,N),rep(1,N)) + for(k in 1:n){ + d <- 0.5*colSums((x - matrix(param$W[k,],p,N))^2) + s <- alphap[k]*exp(- param$gamma[k]^2 * d) + m = rbind(U[k,] %o% s,1-s) + mk = rbind( mk[1:M,] * (m[1:M,] + matrix(m[M+1,],M,N,byrow=TRUE)) + + m[1:M,]*matrix(mk[M+1,],M,N,byrow=TRUE), mk[M+1,]*m[M+1,]) + } + # normalisation + K <- colSums(mk) + mk<-t(mk/matrix(K,M+1,N,byrow=TRUE)) + + if(!is.null(y)){ + ypred<-max.col(mk[,1:M]) + err<-length(which(as.numeric(y)!=ypred))/N + } else err<-NULL + + return(list(m=mk,ypred=ypred,err=err)) +} + + + + diff --git a/R/vehicles-data.R b/R/vehicles-data.R new file mode 100644 index 0000000..dab6929 --- /dev/null +++ b/R/vehicles-data.R @@ -0,0 +1,36 @@ +#' Vehicles dataset +#' +#' This dataset was collected from silhouettes by the HIPS (Hierarchical Image +#' Processing System) extension BINATTS Four model vehicles were used for the +#' experiment: bus, Chevrolet van, Saab 9000 and Opel Manta. The data were used to +#' distinguish 3D objects within a 2-D silhouette of the objects. There are 846 +#' instances and 18 numeric attributes. The first 564 objects are training data, +#' the rest are test data. This version of dataset was used by Zouhal and Denoeux (1998). +#' +#' @docType data +#' +#' @usage data(vehicles) +#' +#' @format A list with two elements: +#' \describe{ +#' \item{x}{The 846 x 18 object-attribute matrix.} +#' \item{y}{A 846-vector containing the class labels.} +#' } +#' +#' @keywords datasets +#' +#' @references +#' +#' P. M. Murphy and D. W. Aha. UCI Reposition of machine learning databases. +#' [Machine readable data repository]. University of California, Departement of +#' Information and Computer Science, Irvine, CA. +#' +#' L. M. Zouhal and T. Denoeux. An evidence-theoretic k-NN rule with parameter +#' optimization. IEEE Transactions on Systems, Man and Cybernetics Part C, +#' 28(2):263--271,1998. +#' +#' +#' @examples +#' data(vehicles) +#' table(vehicles$y) +"vehicles" diff --git a/data/glass.RData b/data/glass.RData new file mode 100644 index 0000000000000000000000000000000000000000..de0bb5ee842f59fde501a585564ea221fd71f27d GIT binary patch literal 4331 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 ZI}#5gCh#x!IMfzU{txYro2YI&000YiIbi?* literal 0 HcmV?d00001 diff --git a/data/ionosphere.RData b/data/ionosphere.RData new file mode 100644 index 0000000000000000000000000000000000000000..c0e4e6d359f73d2a4d0df44ab70274174563e5de GIT binary patch literal 41891 zcmW)nWn2^P*T#Q}grtgqbV-+hNP~iif=Ej<5D*3F9I#DVrKCi1gmg;hMuVhuZ*&b9 zFkrB;?eYKIFYnL&;(l{J=eoYS^vy1sQAGh)iXDCkl z{0@_rR?0msqo=oS3*7qE*0yoW2K(yGf6-H%Q=DIHF2`EuI@*UyXt%K)6Y2 zM9?+<5_^K)Ko0!>1t5sW`f67$4J@r9XiKj?DdyFcY;#9+&+F{Z21|cjdCwCPlm1F0 z+n7G&dLu&}{Rqjx**t3ze3D18aoX7f`SB#1=^IczaD4R{IrlPvgsWwTzJ>u=x^J5~ zi(9)@lZXscmY~@@Dp+T-TpD1boJ7<@OCfXoHX+#oksqFtDBor;uljeLaKhOqfwap= z3oezmAeF2b%0~Jl5Y3bGlNWH_yIgt zT?Ai+{>8xSft9C%%^qzZN5dI5^DbJWjjy`^cUxsEgV6;4OFZ~wo~cx*i{wjrb`5JK z2I4)~7jaccb{Mg`W2Fm(|2B`k3MpHoajwh?@Qe8gSFTle!>$&$?KhFOveSwMvz%ZT zU>^iS+Rnq?BkTpr7SRzx?|yRPBa1rEojYvL`(%APvy`5`M_D{~Wza>9I;JOoiFZU|&XuBm6q zYrVUm?>%x4OYxLm4stJXan$@0p;!*S^I7 z=57JJ4d8BZP!pF&G&-*ys&`JcIo0(;)aaI?Gp&kuBJ9=A_QmwvmA`eati)_%ZK6Ac z3N>+{?FekK_Bc!wuRMK~6fB7^d__>GxNdQuAMUvm=(&fJlKk{F$+(}3!)x94GRc-C zd;X5*U_f18DRF_)JsoiH)n$ONTCx3=j(H&=V6uqlEHqjQA7`PnIGzyuO4YCy8osKG z4EX_nPo?6pRDr|}=+>CRFVENwp+*Aw_(dJuJniCC6eO)J(#V(adbSD6sIC^#cAr!(Iq0v{i8bn0T*FQ z%FI7uLp8dMy&h$3{j`9+bu+CV*u4m0T|P?D zmt0!8FNahE`t76)-~E0r`m<@Zk!wnc_xM9CW=i`%Wc(FC!Y3UYOu&T=CqDqb)`y|TXq*KfcaXiCtjE4G` z;^SDUDm>1b(fj07*R{KO5iI`wRXYKs_D_q4%$GR5(!=IM_U0MH0QSXdJwxrH8-#1E z1TCwMU004)zr1*LYiO7mx_}|OPpYCAV)V52+=nH<1&4h?Ch7C(Qg^##0KlptF6kv@ zntPMF_o{b&1XQX8mf>(hw&$r*4F}8yUUE0q0O_|+|DvRFX>O}rlPb&n@~Vl;c@uj; z+DmcWe*7)yIg+&9?py)kz0P23d3=r<&}Ah|~&3*$9HZ7L26@4vQHJwE0je6cF_%L#M` zV@BQxo2`ArC_nV22{hxlzH@~={T3z)g7+#Ter_Q1-_Gfe7i=Yrm;?9A&D=C_oCWnhF)0BO%v4))}%fT46E?k;h*Mw7tyPBNNF6$xRhg}jQTSd6tP)#{}Heq zPbBZ*?DQTEtr#L$ZsX~Fo%^@^X_K%}^(|@+hy9F#+IP+l3SgPw)&y|Lv!69zd zf&%ryupsf=Q%Yn(KvaDHa*RLs{!G*d2B|bOkLB?6rJwa z+aZmOz6;=Lu3cG`+_Exgwx8Q?AFKShbW%_kqYCG(Ud?0=yW$kiEKYATNL9ZsKb)al z`*I5@4=3^8n{lb%kX*d@oWT=p*RwR{HW#q>+NP=nG`M0c>$N#NQ(4rmaAS*K;c0$% zo7o}KXS;l!wPmUOWJR5>)CC=<&99{;Tg=R})p_x2eLYzOFXKmcn7cpt3v^iR^!WbN%-|Eqz@aN+ z5`S7m#lEX0b26#(*EGWvSD}Gp!;!jIdy7rh6?vm!4AevYz2@1qqngy}5^3`1_&6NP z$<)=CDfMxUWr~;;OyI!;d_{O1)%X;TE-0&S6DE814WZSCTTU&S?LfAz3)b1=&gno* zaSJkBG&X}sE}&9I5tcTK@}j{JVS`MtpN&32M3qT>o8T9JulQt&F%gW|>u*TKfb(hM zT*gjQ0H!b!J)5ONulnYX+QpE~A;DqIRqZIb_z7*n8*^GlcA{nhe}K%fz@X8F1i)gZOxjLS2=Ey| z=dGbXn$PlLbB+NP=*fA(WzBAz<*OXGZLh{Sm2?%=HPl}$o*O*i5Jhd}qWZqwl89r6 zgA~x@CaJG=7eaIdws*1-g&u1&B_Cvhd-RQa>f7IvPq#cq*A0lifWa9T5=-6>d~B;R zghGMDwlm)g7D>^Z7F zqq+gSzn9GPGHoto8$k;NAZP?zejL=lt$d5I{)N_|u15hAH*7(mxk!wTz3}E2u^Q*o zKB-ZZx01xj!SrD|3fx7_DwIg!!;Gi_C4Z{o>QSyo&+~etwP;M&4)YE6b~o6Z>LT&vsU_Kh`S%cICH1{&+2Ftk_qw<@*oSGyicVeC1CsW8&yA>f-Oj zR9ZVQWSlQ0JLCcrjOgIrGD<7?G$3yRBC56no$$k_BVM(7vwu1&{k4vI70rPsidI~t zOM%$tL0I)}rPqU|_VSJ5BcTsTtwYXP@iG>0F;h9aKg!H4yl7?J$3n`6|p;$hK7b`Bb(hgT%N-bC7Qm~>9)%oMZ#slg5NPLV5xrMqyMF& z8m4ij`u(Q}Zw20H%~K7`rNS5@ye1btfXZ$}CF%EEiRx%OWqs|rh0LVeK`I5l~ z>3e0Y7PkP^H0@Huk-L}50{vj2W$)uiA^U#{OB%3B7p8N7wcz6^8w<@}J=kn*W<{_h+Nm z(r`7$^Wy|ca4ic*R2yoPK^_K@(YV({DT{9>po(;S!1F7~lphL8v^Bi|?b^#Ki-A?w zfyXq7g)-ZO8cc?Kki@sr0``Qc?U_JK4v?dTz33Bu^=ck$oP~}FzV5H9o*Ghy=77bz z15{6r`_Wt)c0-d0*#v#<(hAMK#J;ODNkWMuqDkwYE4wBjNEpf%{)w*ja)j*o6#m$F z^odi1{f6g;;i<1_XxG;E3I2sQ?;UVzr7DIjE3FDOMQUSMjeBmIiJVV(G@vcCniN#- z1EFHTsG z;GSiHnFUaP${DbNGvWTLnkiQkZ$rNc)Zf-%yPnGqeta(}S0$U>;`r1Xqep1xXt8i_ zcasWBD<>xiUJ60HFz3#6k(#DcN(a$^{r##Om9@_DMM<+1zB6OnK7kFZ{4x~67;;|R zQ-IN(=TDwwWblwd`Eyle#)isz*MY19_^IJmM5EO|Y`2_<^eH9X8!=QmP_Y#7p@f+L ziNd4Ix+J3@};9B89&Oo1<-}&z`P`&hIxrrN(OYm~3$)SeFMw+t8IBs%?Qh)=CWF z(P`DCo-b7uuXC_lFGZvOHgsg%ABWw4#wwNf@`?A1m-B1rFw55qaA_;OyBv-BxwHz) zmQ%g3`3)@VxNXDPua$H7z+z-@S!QgM<~pc&x-_fFlPnJmL0yj{N;khH;?01NA{}e!+qYxAm4*IEz;Vf1DNH5*_>P~IKSI%6Y>T>{SGl=ZI^-q zQk9)4Zi=c@x+Z)UbsdE;+cQZZlJ5H;m7)(rRBNZZr2Qv0)6LBI3gEbR>}5N8mo2D_ zB6EV)cu|v0O(EEJTkYVL=SqO~%thbKak(f)arCbHmE~nw#(&FY2Mu)(crDDrwE%Q# zupqha#FB%53}S7&dxXhErsa49fL38zYasaG2=zkS&GaZ_D76~OAP@?9HWIS)cBX&Y3}cdT>Tru)D>b`?eY~gGM+!&U;#8c>%SAC<(j0110E-x?QX;bWWQ_7Y`YxE zLCc@Nvm0IJwz|0Bv7gg}+k!8=hTnyH2d zDxkn0h4C=(7D9}h_4f@F({k=Hc(HQPgumS!lwUhQ4tO(=R1O{8Z@ki15(aiYtBSD_ z3HMkM`-mJaGrSh2<}=iPSXgxXW4Y2S_&0@*pAAim@tAG5!o*9mcz+1`?D8OLn_m+Iu^RN zVuQbXZSGf!#dm12^SvUtLG^Pxob}Dm`wXjr*~2CZtq_LUmmHZQ=e@O^Zt?CIeQmlq z%5A%@bWXl>$d?~p>TV*1$KJkjmEVcA)`rA~ZJpGodY!w)fqZ$uWiHFl1>S_=f_~kJ zkD_-UXfm2wI0ib`A;dsDmd%Pz2#YyDxLXLW?YrM*$^$knmUa;tAm9) z(2*&AsH0}7Ubw~3L%;7O*HssIGmfjtaik8YLI-f$Y^&GDnM0pbIJGU$`Wi&4PVwOn z^XWsrw;=1=W&s?x`$Xc>vVY7=_(hheW^CYnbzHX)684+Z|q1$Y*%{?i+Ny~0V@poR((6x5+owx!QAhAKpyE&V{l=??O zrXPKyN(g?(2ho4Ry}f^~CH&W~DQX=Nb^1X`#vMUm(Pv|nRj*8L?+rYh+L&F|CmuD{ zy&<)Vi6d3=j|QXGSDP`GeHJ^2dhFQK_CQ6%Rc{D#P1dyFQlz3Kosm@>*-?NV!P6x2 zEd|dAhm_K~(;NST-5sPI1`K`<>9wVwkOPvtkT+Bx(a^E#j`JOw^7HTs_IN0wwo`== zP73Tkw;Q{OJ|Fn4jrA(Q>td$A^xbDV&rZ>foWw57J6q?btB2lW(%CI#d<;l+4*1m7 zyHdt07l!zI!hLA8f_EO5Inl0SZw{qp@KC!M%>|OWw;vx0&sV16M%mYCaG z1g%_%#|mzo7~{6=^*1#W2k*B`!pGG033=+@&`PB%zup)do_-eni3l~Cp>qKX44L}* zJ6f41ziH_XXeYbdR4`uL!pK-Fq{i|ql#SAPI{5d)dvyNUU}-^#gOlM7^zzekQzcNB ziny5@T;J$-+2tk+y7HPllLl@>%4}oM*=#XMP@eY2mx+m5EgPw>9uC-hl|Nq(o>!z3 z?tNxTVPPC?R2uG)8bq3(HGAw%NF}%6)-#oTMK)Im*DyS;t4>3FHh*;UiA`1X*Y4W9+%Q~ z=qhHmA;t-v#Aj-IT!2&`EG4^p;DR=WV*_bsqb*}|pA^{55M<^Xo9`$6Ht9W6_1-880&T#lpHhN7sm{_!zkPszyZ@E&H|G8qQp+&+$X5>dWDdY_< zd~Q8+kgxr8lycXhRNWo-Ih6h3x$SF{p4}0-_gw2qK{d*q{|S8JB;{Fl#RkzxOyYS9 z5cnA;2T8@i6Te3n>bitjb*tDQsiNCeeTs5tnwx)DKh7Lhiap5=)rb^q<|T8Nb49pm z!;aK5u;X|f{v*OrY5wHklP}zVG(dehJ-&BsPnQ%puKSU#T9d{tpxpr!EFr<3sn9rz zBRodgG~{yRS5m*78>E9!QkeWr{D-D3J=ceR0tHlMa0!kO>Q>7`JF?UdS(@!v%uBO2 zMM`zwiNdi#XiL?jxWf+(E@sOXFA4yJgSnQsK8R?oQ%nhAAe)j?Gz9#Z+1dY~x_b0* z<50*2-@N1eDUG71{+Xqb{Ht#THR7Z9VR(gSHS z-h;F5#j2-RZ4#gn;|0C?hEveok)smy`h4GtbTtLR(P-{BF~EP_?8&P+ImMbUV@}Hb zyS|f4qbZ}ANhd4u&TAV$>^ltM?{H=OGF-B8j3wt}Au=b%_F3~$YQUI{D&1Oif5%lf z7Rk4(f?wIBVc-dz=@k^3%ZaE78_$L}6Mf)N(pW-uhcO&No}fSiUY6fKE`mu~%7umo zoiDvoS3&?;$3tHlTwUeHtf{I@<2QmjlY?BZwi-}|V^{l%#~sSMKl&Ig^KkQ4E?b|S zqD0%xS7$*I%_hN{;R46DfC8oHb0nbb%`s(!8T#!Y)h)*kYT?US;PBe?B}3r!nOO_v zLMz~gde6{42Cqb4{i8r*zpG0OnD^|`n8N=>l^9Ey-S4vJJdCMfKAy$p-57!QoC_sb zig4Ff#PxCMU~02GK0BMcVUY=sZ#x6UE`p!Q@H{o6K zHa@M|_0`Z1ofHP{G*HfG{f(!FxpQ(D zpWw&f|G<0N_?BzATlC~pw45(idxmGEo(7vXDeoCIn^-nEs>PXXsYFY-a~+~pa8QTE%(FQIGR^0`BJXUvgl{A?9)2nBN4iPQK zRF-S|07FdFEBoyyacFQ{kbID+Vn|orSn~>w$j=`w&gk+Hznq`fLjD}s5x3*HMsgD% zieuDYp`TP#staC|dw@;f>`A+k&~cNJ z$6y_!T6Ctpda}W={k-xqu``q>#LRP@G9lv$8#45-G(}WTU$Z020jmGZb_c@zq?B9v z=a6xh<1Bo>;z>JZp@^Kw(|L^#DiS@F0?_A|?q(j60Bn*f2P#HxrL z9SX@#Ac8*is+(l)92uhZ6GD6mu2_8#0KVPEMVSaMCrc-XuHL8RXboj=Dgyw)&hstp z^R)h^0vUJyklmWI9H^;(U$SwEEf7v6=9~ma1)2jsf5&gU(jVn=TMwqQPS8DljEc<` z8k;|5cZrZP?Ah8Z=0CCLpPTJz#1W*Ae#?tGA;f10p!?K_;qgG2-0>e|xFN>$F>J0x zDuvUOZipkro6G-}mb}cJyCTCvsWA12WLAYo9M|zQhEx%z|D90X>~5p_(5|zLZwwpO zaL(Jsuv7&r2z)l_n(&xbxV;#>_^lUw$cM6fsO0wh$=%Ro_n+Jx2$r$#+du->6&;wo z8iv-LJ`@XbJ-8f17aBOFwchnDjVz|+?F&N3J|%pY2vR?hgsyJITcR z4Pv?Q_$xu&gn>1?2O=Ka+gti4$R-{O5;mENC{KDXn8U^T47D-Kn~!DR31s^gyk@*M z-3lDs0h3ba5ou&fqMQDv1V8$E(}<+>llY}&kCreD7W$m>@tcfz$K_;v|Kf>B$%d3t z@1u2}(x>A-DQb@d&atJ~zeVG4HKE!w2iWR<9qX9iZGqwIwz>lw)4f8vap9*|=BIl^ zvcjCao3TE^3HC!P!m>##wn`Y|T4_)olZ2rgax}9h(f-JcAKqD}7CJJZ>+Wrfp>Ucj z3q^dp5DA=K;d~kWO131}20JH%e&j`4Z?iw}b=2zl`&hx3xAo^$9S{EF_;K018OK_d z6e})SXA|RCRM7F>mJ~J%T1l(I-y#o_9VM=vW>wDWI12y7Nrc;-$pvV=$Ny8e0~69^ ziM13IumC4Y3N;?BQSSuO*MkLa=v322j4*fA7suiW9=~)+@vyDgHruvhl;?azajnrD z=Z7n6@{|vn79QSRKdw!s3Oi(SZ#(65(NIN_n>kmmQV1-kJqD^4o>9sk*_1Ep6{3yT zzlC$>DCM)d;rx;pCpjn=YTYGQYsW0!XEj`RVq?IUj&)zre)}+?LeZePx9psz6-CT& z2Mxc}G6Tc))_$KLclCG`f~G-t7+u2s5FdWpkZMEpd8z0W3UrL{;}#aAb5Zw^bZdeA z$2HnkFvAVbSE8X3GvA1Y^dOUVKr#S!zZo4lLK8hJN|{OeI+uZ|wE9pvi9VVuzT&L% zPKsL9Z+OoLC1xs5aI7mflw<$hl#I0q*Wa#Rd6b5%2#zJ$y z;%G%c5XLK3hG0)pvy0yj$jch;sOGbpMX#rddbz*oLPtI4TX?^H?e(-_z>2^jl~6=& z`XaEpIj{A@+0J@jL4Az<4ZyH2uY z1Z;5WPs>`oLny5)`*?0b)@ClSl4zxM*8lR#f)5>o;xtmco_1Hk>Tc!lwDdrWbx?Xid!`N;?~Ud|7LvjD533b2NyE7tbc2bu_X9T zMRIo$X&4Rc+OFAVT0*Th3h&-SaQE=q&Og(X#P97aPhfr%t}YyA$5q&knQ;3JkEmz% zXEyzQ4Ypp)+@yHUer}5iHv1SN<=^+1;7Y7??;W41eAe;6B)J{x@QofW;tRe zzLBZk$uTPQ>tivf&Q*W*>gUMgy=rNVLb@CcpPcj2gM1n4TM^Os?t$$+`Q@J&3bsez zUZzl8sbJBcAlT9x)gXQ|js&5tZPfFyNNXei<0cJ8G$UK?e*+DkD7;9LeredDa!K$7 ztVJ0blK8Kp>98~O3=>NJ$e7lEpBg!D@0>i{W6`U;+<0cmOBg$3 z^KeHDu+NN3FKtq0qTBqvdw$M7XPzs@J}LfK)*-$1EXi-M7c2ODRI@Ln%`ew$e@+=~ zUx3iPhn@7dLH7l+CJf|nCsS;5`lwj)l~0v;c*rKq6?+LxV5Zb_2G}l%6e#-m8Tqjs zP`)Ulor?heCwe*3CWOYPRNiHfzVns+=&eYoBf=6`0p=@MNrk5SV15*b@#g2;LwpwRA=!Y-FfEr z@Bw_*f<|a6XCHWIPd`mqGOkUY61}n9s?=UD-u}}Jvm;V#4(**gCWR>^P!#tUaOEyt&+uB?n(s_r{^<|>>v?>G;5IS#@LS43A1f=>-c!!59*!uj&#*;la{Gf`dM9|zGGw)o2u^s?GMdZl1MvW zSlNYxcz9ar-|Wc_C?W!p+&)}a4mtCR`!IcjAz!5N+NP(EaOHPmquJSwZx&VC7A7yj zuB26%G^Jo+m#fp~wkwd9So1RnSR=TU+NkvXiaO6pc15P=BRz>f2f8WVEvvpJC}Ld; zH}qJ?hD}QI>o>wxr@OgN^XHiFo5^G1nM(W^aAVoUn-@&WtS)OE>^HQ0tb)Z)Rrcbw zqF;21`AN~FNvO*MgUc_mEeWThseilZhq#-icUq`JW4RlJCs$pm0&j=tg2qqNq4aPzBEd!KV1*y(OJ2B)l%qro76o7+Gno0 zZCi4tN+CQ&Jwtqh3MKm{A^n#Dx*Cg_eyk#Ks$Ax;g#uHFZ;*vq{Ryo=gtN(&GpmwS zubQvO0tN|n;~mFTusH$LYY8-5d5FpKYO^j83S6i`!QEp<$Ax*L7`)6&7p=W0>3=T| zXbU3vRIovju^KN=6CUZ~6Hkh|iQ^Y}Mi^g1pK<@bFIuH#6i|OMnMjr&Rj7sfYBVvE z3)TJ`%z1A)Fr#X~zK*)ihwy8756gSZ%)oKU^hw^HFN|7Z;o=t#7&n#pi|lX}JZ=NxHDC%C$L)I>N(BTw(t|K;s`O(Ru%V)?*s*NH6kz8O3%CRo#(}s)tj~ zyBLJG`j$+`@#7(Q;PG5b+EMX(;_JXXaT_zOmyy{FuOk7+g0t&$=nvlSINCAHkfnoo zkF`X+FwZ&eyT&*oh(*JPYxqIa)xQ9rG%v%AIGWJ%+ag-O0x^tCzrlSPpHdb0LmF=0 zfyLK~;jDoO$Db(YZ2^IoAa0bpYQKMp7(Xo^<{3O zj2cG9hx?zX#SWm5W;K7N;-5pR@-Cb5fN9q_u=@w~O=ksg56;XBCUkVgt`N;nU5N{e zEZS}Teud5Gpsl&a>yt)$-xUYlKrZG*?QxN z(Ga4ylj@Pn5s-4*eaIlyB&DRb>maV)42AhiG0I)Er(^0gX+3Wm&~hI3Qti=eky{2b zSQMj3@>Kh%Ny(0>&b6AM2(4YxP!ytrt*_QrF#%C@zepIcvH!8jUEc6ri>UPv9zPqQ zzUNOMJGY{+Hu}o_pi7A-d?(L0OEmDJGo)*UHHhBIvgE71V56`l+Eh1D zz{|I4Kcl|&?$H>m?gs>V3mRr+V;r`k1p9SvWVRr=vt?4U7fndX{n6v`Rfim~Wpw;4 z=50?gD)P&uPbWU0)-(PJFEr?rz1=bS#xG5B@s;S;pTU>*-&g;XVQp%6TeE#)VNw?~ z^Z?wm$JtBiX;Uw{gf>5@-PE%hRPHav5uYUR9}AE^3&NV-{0UYC(QvSatkoFr58l|r zlWWHYH4WR?-nzeH*9261pW`;oyNOH6OEaBJ`pTM8jBhnL7G-#Oi_1tub7kZtk#C@I ztsQLyo5skJoBf0pxBe;lHJkFwOT^^YiSxFXcp`cw7jN2s@)II|#&NS18di%{Gy3vu zni~G=#U)E$K27aKB(K?s>fDHNVlGl@V;TAd_gZah?2u}yT~Uv79mT^` z#_++~4_>P4jYVD#@75a8dt0w@!^3)4R*>%Xr&+z8_Dl{fINXi+6Mt#_msUR=UM zPOIvTVvB}-xWEC6m8$^8^zjrMfRKC868S$e7;1`@ zAK9S!2>W%lSX}f~5Yit~y^7#Hw|!|d`=zM>)lsiMw_|5K^B2YSEH{=NH{a<^e)vc) zJ|KVgcK7TKQ)sQ&58Y)kKN%f+^DBY+;;qo-I7VdN46-ar5Afg;!84qk^(}XHtNu!c6Dwqo@Uu`sk02-1bd6(NgNsZ%do@9*CL-Y@^Wjcdb(i zN9-M%G5Vcd-cQVW1ez;*IGk4!XbY9D_QxMoPr^6gMq#tM{8f_hkQ+%48vSD_21A|z zF8P+4M}w5cc{#Tj&fPLD91%`joj4}};KKZ4jsj&hsYv#+)MlrU5S@-(nVkFH6I+PvLKT`=x zF8=+Ud33^0XmQSv3A|)fw%UEu#XrzdJ*->zaepKrp8wYm_|?{NSygv$u%7jyIkSRg zytv=b^4Tfh7I3M{eDgr=3*W!i`N+*=wWlv(1G4!GKl7`j?(7j&Em|M_N2fN^IJ6hb zvvZzKrJ764hd=i7Z2p!aZ8O0$7uWTqviSXMFw3isfV#4GIk;vE^tlhKqi|R&^4lYQ z_3*pbZ*Ge%)5!nBi0>%U3byUVd)|!y^6*`mZ-*3p1apHJ(<>oo%VD>=uoSHN(+s>T z3{Pvg8B5n(jq3~Nl$A%D19FaxGfsMDMgR$-xbTiM^ltv;MbvFIG_I~EJT8+!e9|t(@-WC`HsV03i%zn*vST@Ba z=~Z!kuYiBy5TQTxq2qY3v6gYPi;8)MeAh{MpN3cGr z?H|%xR(nKSE$9xo`wr7r9d`M6ex2JFz~Nm44m?y<8>03e9^6(9mbYHl;+Dz>wZ*CuSEP<*~HuN zV1}23k?X8g_5!$iC+_{Zm!mlD>-RSBi(1@C>!({ZCi$PwC5v)3{xnp&k)^pH;YSH0kP1d;cYv5* z#OLXb?%FpITG6$lGQn!K{&&CmLbw++E#~Q;Y}2JxOgf8lGMb0ts?~zn^tU zea#``G~JzvN$X;_sDD!@`H*aGlbIkxx@o)mXUYu&b+F{(=^D@2kP8%|@nQ4w{6sMI zbmW~F@cSD79n0D9NKUXR-xaJZ`u;kNMzR;^*H$T!FlZo=O@ zzPnL92{dcJ+J(;QZS;?Jxjum@@L*1()<<^<83Tt7mZMW%8|KdAjcLnE+l^5d?C9o= z4uuYf7_y{yD9S#-Q>qS!JtXSyi!d;j}D=5MZjc8ZWar zwGk#&+)%}n7AD;edEmbSjneOL*eMARvQcEpd0E4JTh3sp2`HE~dTlk{R>i(7q;L{` zu2}dbh@){s{L}52RcB+Mnp@mDK$j_uW)_gbgOIIpZ8rgdY=7(aKMvPK$#(ylx=!|_ zM)Zg&e4MK{))3416cN|cfbfioPt@C=bfVR7CQqeB;qC>?0n*~@Gfvkp30E&yi8KD@ zx1q;sRN1(s>tSb8|p z#^E$JE~wgU0x-b+*=oD#d;S2?o0hkK#l~eexMx{PINykzdtv!&MFxvzx|vsKYF0*? zcIu0EiJdiYdL+iqS!s9l_$w?@^EAKnCPfy{Lr|*0!{KHU_AS+;ieQoUd|3|W>`|U! zfK;3^LzT3zZvHGlXh#|UU7{MKgwS5l6nz@ZJrz0k#AY4g_igNKgqp+9#RZdD;B3+n z0NX9>OGl2(nXU}QlXJ7P)Y-%x*R6-B9pPagLVglE*!zHw14HOQfNA{6g#!#d_uR;F zSmo0$R!|qRAQ+gd08LONhG$U5#~A7HznFV})gx!UA4rG3r-F7jS21dN z%!q>U54*aYQ7YU{%ZNdZ%HtGW+Yd{%TioXuZF@8l^KYoa?_#1X?nI*lHKRdH2@jQ+ z$a;=|3=9AEj%GMernO|gYp=rc#hp)~i)YvXQ8(iX3SZj@g`3ggfdhB%=U66gR~sem z3dPTz2pm?~-*~6tOs%I`1PSw@a9}l&VWx&vepk+fg48w>WyRYKdWd{;% zc4T`$b|2`~XBCI~D2+OL;@8iq@HH)3M@WXM|KKu{5`*4fN(uBJL90Wc_(U^=C=!V z+{H4N2^T;)FVY8!-Iiy^u0disreQc$VQ6H^&6@c4JPQ5@Os>Yeyr*Y+K9nW>p4|6r z?FgU({FF2{IS=hR9qcxY@>j2~Arrk2&Wp#|!NUW-u*sp&VC1S|k};-bl<<)12=Tyq zOGg0GktqteZ6@W?Mqikv_S&OFZP8$5Is{RS0!jl3uxfyjPR9Ak&oD8BNB>p5bv5<` zmcSue7IIxnvD0;PA~m7TX5_-_LUWJIqyWfg)z-6mn)hJV^)u!xYf8)qvQ%}x48FkQP>EPQ>xl%QN7-;aseuo>qU?7Vq)#^Zw8|tH=Hs*Ixx*9cFNrA-Z8?r(0lI z+~G>?roOPo3B~1G;ZSLsn`J|%8j>p1hmWOLqkpEX_x@SvYlhsA>b3xm9SApO5qYdOPruoBxbVe)%p((Y>VE zW3kkw81S<%Tjx@r11wRe^`_N#^^@gqeeAm}VAsr=zw@+|x*_=4-=91C=(Y>m$5DU@ zX~4H$uPnsl=-t|>`#&h*w86Kq2OUs|!eyj7D($2m@W)1l`3cT(zM8=P;qKfhpr|^B zQ=zqDpR(fnx%R)srWPBZ%yquz8Y3asyEI_-#A)}R#0(Ht7-2`fCLkQw3dd%k1z1zX z5`s#_-H=qNXqLBuOrZCx*7skkxY%1RM9!B%)JNXdAf-5cKM&ZOE%ILvlhHGODtH`~ zx*UC<6*(N?tfuM7IDCsTrvxP>{MHmD$@KCbDWwFz9Aca6s2M)>aT}Ux`7bi@{gl!x zbf5&Afn6E$HnnrrDa@aPUe~rhdt!XE=P~rxS4((Wf6NhrUFk?}XUPeo4(}U5tqW;5 zwZh$D&`aas!d_g$+zm$U5V9J_lAZ66-A<|;{(d>J`n#tNq8{ZwMXnvLcdm~!h-?1aV_pjqPe zt5TVeX&B75T+Oe9<)Dm4x(+6Jz!(w(zb#LF_seO6Ob+25ci_&WwQ@D|a+#oukjkPN z8S7$n_W^%oL@{$v`qyfz_OVVMpX-R{&VNHjG2Vh<>wq;puiO5TJc){O>Ymb1c(hqa z_{fHp0ms+reXpTsCsr|P3~8&q*5bo~v}2N=0^jW~;>gq7k}rpjuau~njk>s;GEL^l zxVrYD3-z~_tcp@T?BU&CPJQ;W=aDl7XmZ8ORoAD&z zv-UtVm2Uf|PXXrpuOAYrd?Mgm>rWtJ=FJsgCXJYs)r*EZ95ka-YB!{nzJ%%ivW&v3 zQ6mNAYSaqut*Hjt!Vj*WK*TklZa9eyg3x!RPt2ZnajB5#V3udWgp7dOO%)KyuXs&M z>!7>ONGl@EJ>AK-%|>IRNg>8z(VtuuvjGX0{4>0 z4>%JVy$uwfy7X$6`nPy@3m?6CpQC0vST9?MW@=&V>4y%nddw!)AayX#&3n)lTl%K2 zS=;=&%bHqZsf`QZZoDONB~ zq{-&SUXPGeS;lU>PKnaIEOg(~zMOU;Xjn~uAvWq=Z+_w+sm6S>EweKVQ zCI0!6A8{dCDkl;9EwsVF)E?_G_1K)#CS%!k(y73K4tTwcV_tB) zz4hJflCWV7WWdC{C1m9$)B1Q*=G1WVcS)5_juZJI=Y;{T`Zvc9#>9TEMYTG8`-~9^ z5qF-YxFLX^+P>Ajju$xhR&dU7DwViqJ3>C-rQzP7W#Q{QUT*X}GiAJFPwDaPblx2d zO*4s1I$&#hQD~VEycUt_*UUcZ6mkFqVNmqJ_Gxr@ayfl z&)nZ5SAeNbqDet3%f^c16oyuDNi57^;3vN7TTgq=<{i+}gkxy<6pgLB-{y@#Q#n_A z$K~f&vQd%_xwpG%(`+d-&!!|Mp#h>703B8!YxFiReCUns(X(1k4QH{{%RMTu))1we z>zX@KW;YA@?`|vU$w!!)kT8l=hpVA){AVsc?g>C=Pk5sH7ryJKirKpB%k5yo!fR$Z z!vX6b_>YcDCl)JcnX)9WIle;A(MvXPX2;swU@~&pb))8Y?6h%8HOQjG{Ex!+Mc(~Vd4WeG)ea9K z!OunTo!)F@bOr(-w099DKs)*;#WC+8Bh(nBqIGQjA;(N`*aY@Q#0}B}2pMDk^${Y* zF{6}JvekO3GxQU*SBXI@eb%$?ABm2}TcdMB&{JjMbh`iB+g@CWq9+?l7rN-UQe~Rl zDN_Y7nN-dfftW;654E%BB~>Cq7Kl{Cc`7<6$95d)z{ew5sP0Y@Dx>#8J?=ws>%j{2 zSHWa8za+o#jiRL*uTK*N@3Btm<5s;c!Y}%hf}b_V<5GqL|4H){EMnna?2$gx4z_<=88aTO zQjb_Be9t1KTDZN7xxcO2w+MSRj?VC5GwU8{EPHWitMLW$?#m{pd#_L ztK%}la%8Kv(AfGua-Ckks95yy^Y36l1h)AXH0x7&loItkkJ(y(h^ilDB7{*#H+W}Q zFYBDdyC&{ZGyNTY2@%Qo;uO6xShD;yW{xtMDx~RHggXWSn<~_TR>Otvf)oM89{P)O+o0OMgFni&P={dees?pm~T0 zXrThsvHt4dNPM8`I(v}7^0TKSMe_6|EN}J*6|kIOhz2UwO1ot!(E5b5R>!xr-@(Ew zWcUhZvz$R!%3zvxHw1)t781V&cN3KnkAO#&_h!$5k2t}BQv$kk9-K1+y^$5 z7Bu<-3F7OzPPyjX`YhJSJS+ZpG)?q*1)qy_iLabXJ-s3yg}sIaxnPyNp-kf$%<(-& z`;(KQ2eDY=nDLcLyXal4(0mg^&jE`C$7~aRnniq@jw;u=C)z>$MzNEpsb*NJ>|o$TfPO@Ec$=P{{C|@@nF9A zoJM^wd6_=-YP|i#JHB|w8}IWC9iO><7Rw^8M44_#({8Qj&?xGGoWJ5V%>5W~M47&i zVV8N!D(gY%Dck^tTlo0_ZqJ>DppJhL6#oa~ctQ*x?**^;m>cg0q~8!^p3LtEaM|tN z*gBo)=z65y8@@^b^doubAQtL{mu0hGf{oi2k^PDucS!1oL4!Z~CJ*%bdashV3ht{v zPK9n?m~Z+wd4)$2=Xa<-KG8`C39cx3^ZP%{TYN0$JX{iAx;0K6?no9_`0WN**hZ}* zJV7=_goR~{KY~^BN06ZFKa?UmH*UeNMDO2t_Deos9PcV6yYbWKbXa_UjC!v}bkL2@ z8F~&@;hDR|4>)@Ng*x6h$4jp0gc-UFcELA>WS#s%P$^=qA?nBSLK9Fy*VTh`B@?n{|}4{Mw*JS@B38bL0fwLwVw!CvX-8ocMaD;P*q zUoYUg|0XzPzm}&?ygj|(W#nsL47hZCjx0)cx>2Ed|BDWt`8$*d->!l2YHlC(y1_Wo zr^iuD-tJ?%!)hE9-Nfkcv9dnOH8JyAK>Ja}%yae?473Bu`ZfK>lRg`szO2D`Hdl|A zhUy_^z1Jo_R5o3Qr&Olfzd$(>U)TiKn5X-fe}8rU`2&+x7If{aaA{v3DrMV-118?P zP?ht3?nS3YMdGKGakeVt&N8oyW1td@sD&+E1Ed^G>+f&s@YKlf;Fh|w zQ(q_8*}iN7?6TfirH^h=(?t6BsA3@9aO7Wd?6hxo?WM$F*MI%e(<889kSavpLlu2k z0EG-a<%9<~u!HLr22h}y;hyc_ll3K_&hC{&gi<@^j6K%Z?Av*j{nE6j;9*(Kx8c-r z9o&(-KFc-+PK_6(QeAf>tIlJ{#j=zilSQ5Fr&GwKZ0bsWA%hPP7Q9KAUEf@$Uz<;% zwob1#d^PEy)_OPy>MIdYJM;Uwf%bie5Lh^$)j*E`)@S;TJz> zzbeBV+Y#2j5WU7D3=2C2E@k7jlj!i( zis;*sO8-#6p2kSizUj10e7Tjn)tJ{3VbQ)msF6BpwQ|R}dk^L7`JYmRH*HfeH}6ky z->-lkFHttzgSDkJ@zvV5H*I&@S!bY7=Jz_bQ*Vwj+HV_cxE(5Yz@Dyx{CQ_ab!>?_w=s9c>9iw~|Wxjn8%DEhRCsuO!^C8D+_wEvZ8Y7Pt z{aynHgL3V!P8*f_%=O8%fces(6^t?|~gb$LS`(>tnZ-VB_ znER{LJP1rz?Z!X8N3oI@pIJ*q?6Y?d1Yb-=wNS_o19xQlR;X@T_XG9#T0z;_ z`?U&|5=fyk?So8px~@$5T3^JxFKjB@J~4o@8BX#i3Z(zKL3{-hSeD}*%olwPoA$pT zquwie4%jUCXQ@BaBt^@4!e$=NQ9aS3R_iaot?OMV)4Ct9Y29@SD>Uju&=?iuY4ODQ#)_=J%%QK5X22K{~@}+R$Mo z<68Alyu99=Po1)!TcsYdUZG*n{1v5I$RuuEAWzq48=SYxMK9C2_s+oUCHdy}7ch;z zGl?!3rRVE_A?4E_|G4JQJO2La{PPDb7k!xw-Cre#@YX9epPvjLMTvh6eRVh));b>r zf*U9iJ=>Y0)4!f&u74!oZYIJQIuS^4D#Fl9l&a)uUK~g}7!KAJJw>m=&}}P!W-8o2d% zgqQVJ>kyQBiH~W5kD*R@ggFeGn2uFFSty2#Jb${@fuaL4e^@1s9HaTnG}Fd}MC@AI z!nL6IHW>I`!&lVFKJ;rNahz&IH$z}L8($%)!s(Us;bYmcCMXoWjBSsFhF*#pNE7|H z)X1QHt@0);7d?U;!7J_2zHhWr^!QUn-#JU`RMKEBqaVU*iOZI&&DNDg;$p35=jHp| zi(&@IRKOlVxwNyv0kiN5LR5g&D5zwT7nl&nM3*|dXk`=8My zE{lFZ-)I9PTB~(JX{=%^UhowhO5V@Sbxb8D9oM>>E>I z^pDN;FU;}+9qRXc2`9+#tE$ZTSHUa(iDBtqhcq6U%Ku=(S$(}y`+^{#=-PumgzusL z@6G=BoS5^l3!l%c)GnX=8Xm##*yMh9>3*c?bMIq$^>j+PzKiPcQ!(4xNAiLt%J{Rs zZWQ{Tt$|PSz3P{QM^gxS@37|`M=bCt3=PiuKR1SD;v4{0;uG??*P)3 zTgbUL!^Sx7x3Nj{AYg6RwP$20H+@5m<1I_Cb&vk?m+0@Oa*n@eM9(Mj;?B6wKFMwwfT7u%L~Wy=ZxzY)HoZm7BQhCdcLDYTF1=%yy4G#MA7@7{*5f6N7B&o<+4xM z>;~(-S*jY}y9iDdrhJ|ai`J*dLg{z-r7o4J+ML#dw2*D4>*po6#%-JXwW(2k-7e$4 zKw0+ECsvFf3A^_BfwP~QIQnB;q7LK?KeU=1!Jb1-UjifVEaz!v92~M;NG+qy0?5|9 zIr54gY@O6?LmU>}2&crAb>bs!^fi2(A&XSoBxpX(GO&)lC?@NgdSQ}^q>J_QwA_lq@D zuG~6a-5sNg9#pDpO-D!8RYhOF7e4V-3Ag8o5n-*b6*AlxtHQ`6y1dnx$zg^@ko zLr1j!FV!kKuPa1*gm)Ec%0PIy!%XCejGrx!fBe#0@Ghv(vb;yv_r3Z#ymp1*uG;7tz(~& zE+`b-=qib~;>>H&5A(RJx(*-ncemh!j{W`T;_kPW%WntG*L8pGYsaiBg&HT{&~e6{ zr=#9)unrtl@-kE2qm|;@I7{>6&A(^&2^Ona@3d~{af}54DT!&hFOyxtF75k`@k!;|72)(J zDjD~52lV^_72KXrpj250Q$!El-k*h(P?xF%Kf`3@YjHRs}?x3cvUh z2Q^=pwh4|ejmw@b=#b>A2PIxiQ7G)kedN`;m+*-GvWI;upP~ceTamB(r;z-IUgWZK z7dpbz+gGT(P61gip$%U#kclSf^}`%T2EJGP+RXL)kk*l-g^#fCKaCNci{-*6*g1}g z&RD1G`le5L65H@zOrylFEpZ_ilE^OOBT@6z$;x$zH%Rnh$cS_EqwWJkH^JZ~8+r~7 z={MS?ZtBu~b#k0gLb-#Y?>{OOUC%-;!}O^blofFel++| z67L#yXhY9|9IUVX6D(}6_BwoQ^Z6buOnZC}PJO?S-Ny}Ds%XgzHti8zJ7b)svklQL zRG8EG&&F@m>oKnQs}5JZd8)xW>_N7RdJHb^Tkfs@UVZ@jdugrkxeh9|lWpJNfbbgjvb^nia7q2o zFY&Ki@E^WN)>BxW2nWmgpMt#_PmNW48{R}!!h>F{>wlOjxP-MCZ>x?VR*K&;X}>c% z%5iuPIwb2;uJ%iyehk+bOsR_f_Ernn1rKc(AB{@shZYMzrA&Bi+236kxnf__E{!Lk zRZNSxl6J7X?^iJNdlwCOI})K?hOlaLE!zv1^da+E4|6#3r4GJJaK=e$84IqZbn!>X zWc$4Pv0bmPl&*0hR3>ChqC|~Gj~w#m?QSS0y+j`*i0|I9*AWb|)mGkm%|Mv70~a`7D;COQYjvi{|Ku7DU%l1ucZ zDij*_qdnLx`lE@OcR=~l_ex~DnHy28ee-CxUiHzSG?K{vl zpZ4>zJT+#%^s#PxHjNQIh!r}2qjD84eRtTLP!i(?zA z1ILS7DW7SgkD2)1C4cp;pcae$6jM8c%OS;8%2=vP5_Ux9L1X8T;O9=mW&$RUYm8QlGDK z+B^Y1(L1&EW5XL1>o^d8(ZLO9{T_HnPF9sU_(eC-*iV4rN?+9PSL-{&Cw@AP$ms3( z=}LH&tolz!;S+t5F#7?e)YtjA{zvea5mxF-!w%#5sV$THF}CZ$iBDlKMrw?}JBW-<{tu-}edLq*D8o)!!$A?=@bh zDI3FigJ2U~)Og=-)K42akG)bqtYJB^v*7H?g(E8E+r2qF!Y?e5{(|Kdq;?-UKdA%zbUzaxH&({!_rM`>iBE;`Qf#PG7El$>!~4mjb?T^=bqgG(zm7+EZM90}wAm+-`CscZ`%hEC zB|Rha^uXJHIJE$k!prk%-Wlu)HahAB_+*?KeI3#7B`@P)@1~%{LB{y>sBYLvuTYTN zI1i9p`uyRmSm*~KwTi#L6Jhxstt{v9rOAV~tFpr#)#Oy^@dsJtW4W&O6x4i>nDOru z-BFk5uK9GmhCBw3ns>hjKJkYLZB~XI2?+CLUxbk8%?5-oW*N>vJ#uMXG;(WQWpYKb z?-8@#pc<(=8+_i-4XQ!<6GDQ+GoD4y9N|ek5D`{%uB9KD_p?iI_%5x-Lq$By7ScMY z!)G01;30x+j}jT@+IKk;zi9nDkK|R}YgsTFA?fdgqz@YszLA&d^UuQXP{u1&jT(56 zUFyRFrM?u5Q|~qUs6j4Mms5#V8SR}Q1K+z!;@;`v8=b9r{xoljGPJt7p?Ysjo^Rkv zd^-Lz-xoax^L5mI_BX7GTWT&#D~l&YlPTJRd* zx!56ngv$3-0r5U6)paV`DE*jRE;p_-uUkm54qxv?HKMCsEAvW$l4s~uO=-e&Py1XE z?(*RfzsM9BH#W^LqvDy|aHMSU>(0@7wp6KoC8<>7j_IK2wq_LUR1pbE6f1UEJJ?vy z{3sn2e5tfwmRv9wCw@0L8%CVGjrs(SlW{rzg!_$WA-PW3!Z(eW{D~FaF;6guKyiLqGMsydutgVy_XFA z-h;Ycgc;%&_36iKw1=sp?=bjgHp;_lHw)ey^WVm|O>z7yR zc|Y#wEz);(h+b&)_e$Jr9%q{1UaBNNUslS7v{WU2yK#;iUfthmFzzptKIwjqlQ;Vf z#{G~X{&~yAuT*eTsX22qXVL0+9dHdOaOJ6*`5Os0`vhb__-IjoX-{DAhsp|Rqh z@wrN`uKSV7wGS7$l|1YB6R29_)+nIbZ-Y%e3v3V`Yla%Wl@3}VILtJb!?+F(C9m-Q zkMKsKv>}~G!y~>UL7o=oz{CB>t|-$wwMad3mdaR=snC`^4`H&_BcmP4{&Ptg73jDM zhgEm#w4W$R>$THv(P!T)`r`9cyM5$P6W{CNHrmthj%B0SNSyxp)pzG@g-81+ph8vW zZ|X%`85UcC$=sHG5o=XC{M`r0U|Hm0n5X@7=_|JV%ELm@{TE#*O6#BseV5T5(eYWP zeTC=%m&xbQT8W2iMAxiL{2~qCu2u3qo5ZJdz1G1X;&uw-69d+#`# z#4(3d+h$aI2w)y8B5dB_k;Bs_ptWd+}w?B|1JnQ}pOTQ<2K8rbysP`#N z^Sdb8r`Ylv6Hm?8QTzR;aW56H9dEnn?~hq;f(N=DJ&|DcQKPqyKA#5bx^dn|)-P9f z>wEG0II2*h<6oy-jRQA7m!*Bp{{GW{vrgC~zH{mRGPZF2*N!sQmE8o7LT#P$HeAZ( z;Kg_0pTG_5`uvjpZ6AU4@zKvT{UaAa(E)ZgSB7uH5E33nK=R9|^M-4tn#evvsDvB+ z2ur=$D}L>@O15`rG0JuS8D8W-at81CLG z0N-x-R-jbJnN(BGg23d|yeYVP@kAImjtOX76++_kQOo)3Gi1cQhMt3qVdwREq*3oR z>cLi~=ii91=&l>v6$r1^;GawV3&pBk_I(zZUqwLsf1^-zYf3dA(d4x?gzq(Qz&?rJ?GuK5)2-}VR4`m( z7BUXq^6rx6O=9lbU2Ge%4HoGy_*I+gp+yLbe}K7v(O372PLfCXY;F~4EW@hMF-8Vqpv__c}dY_0gqTB^<|zq9OJvkq$4`V!>V zcwBNy92I@v*amk|D+@VPwPZ^HSwv4a_{(_wnpy;x_J2S?r9H>j)UPkv{}F!S&3Q%7 zp-$sb$f9-bs8ah3(MIt_F>nq+hR63oP~uWQ`;bh4kKq?n>-Br3ULNMO?^LqrJ^&T7 zzVU~Yrg73Z!uBJ7qD11!u=L0L+GhiGDlOXZGd$8qs^vHk2%Nz{0tDBx&?|zGvo2hm zg@E82d^fVNZM^&0c+lF98Ni6wwcZbfS&sc-^K-T+e@El`*NSeyx>uOEhgmFF(h{@9 z*L1(u`H1IJ9B;lfzh|b_m!td!wu{$Xes3FG_IIxFF}q`32PvDW#g(rIs~ z%0NTwPQ1VW)8mDM@$a=p+>69@jpy{-ejFpUE^WNe$K7wC)>EJY?SDh1+E1N4BY#jC zA=yPg+Ve3J)TmZ;$Ern#^?=sx#UTxgrE0BPK-(C0+?k5+QGyZoW1r;H#`%}-Rf6lo zsP=Y6aQDzm(G^L1G`sfJ^lNcId}p1amu1yFQnJf>RjPFe=^)$NT4Sznfl3z(lPO#J zn`z3`?Zyo#e!j=&U78<*ZMHH>SV7sMw`lNlJ<^Y{FJL21xWw1Tu5~eClRBXJJ<1mS zk#%r#c+d)ohgr~(@|4Z<-YpOv1Qe+9WnKji2yP@n zpO|(%3e_6digGpWHz_gjy)g6~)(@PMKYhfFF$n62x*v|Rh{P_^JK zmTNr+N@IEZhsmMZ2{u0_=zbr0l`VMT{pRl|ajrRD4c$Z|zBJ-vqu%QkA1LKcH!++{ zR>A%HHSdywQU?t7+jW!j7!#Gqn~HgnUl3YYP5c@ znKyV<+ac(LmEp4s;O{Y_2*RcpO#INHx$(Pma$e#t*Q zPZWtiRhrgaqaw+t*8j2QTVfeLGi(hV? z#DDAlTJI&7=$v`De1ADvbzX+52boxb^;&-%iIOMfaNX-A65J zy@9sRQi3=4&~oiRNjt?y!lCRV&e%#m?cYukk5GVRAYQ|6@l9R5nhh9`Ed0Dn)y@)^z(S#L#GZUd(c?Pw13iL$VV@heAA zq{>B~?W0YC?{%?#=Q-AVfyeS@(BOX z(CB=oc`0fhYiK?qtJGN<*e)hNk9tjq|N4FPbplQg z{*6M^6e|OYyUAks7%@%qR)o}Y zn$ZS9@u72ze}Ywfy^Z4tOCPBG3I^(#@7HQS4|w^y?}aNeJ6zeVF9M<)ZfsYg=*QvevD3Dj_dUhg2D$dUI(O( z?$Ub3WLI?cJHI41mk(dSA@M(S3XakETuAFRnLc4P;pdOO?#n?~_nFM?@^rpo#%+dg zg`wZ;(eW}urz+s=0lG)<4%4MiW?oN?KZj=m6S}BKxiY+X72NC}ddRHzy2NKGz=!ud z90_L~a=-If1{|!KaB_DeJoMbxZx*s&)Sx%J0qBMxJ844k+8exj+8XxHoQH;YF=C1RujT9zs}rVY4b%{l4nf zAeFEj)@|g_`p8tpHrrR4`^!?@T1WRr|KY>vd(_u^*e7r^?A&&0Y5F@E^*+DWA*C!m z&rznbd+h6mMfw6E7hx5AYl!7;nwokJE}iGY#=N~}QNi{10kD5{o%$DC zTsCNi>{ctEe(c#~BxwE#l}nuA&^lt|(DMlS1W!;RzwctXK7KAM_CukCCq#I+uuuiO z97fdl?<}l8Z8Q600f~phI?sbs_$C&WPJa73`FNRloPvz^-A^9rf7_Tg(3RX985m1- zLl~ff5c`0KE|qx)yxGhYT6Mo*IXZ5W`bbs6h0nw+P>4XW;dc zqZ{&IQz{pw78Gi{iFsUJrJ^@D88zJBSPT!-cP^-34+PI0)O9EX#IG$lf{B)J?P4Jn z%2M(fM@!=7(W28%9Ykj?$n=*D(d&^h57b{bWe0OK1&ii0V8`@p+o1V-*e5!GGnC!n z>Uw`uLnrLm-_JAV{AXP6OqQkSN*g%sv`~@ODQ_s=HRq{#er*RhpT5O>ZP)dKnBy?w zojCjdr*Ut*`QCiruJwA6EP4)7?=^H<8m-eyTLk}9tn+yCs;1GJy87$bOa*A?kwx%BLD2_D zWx4UkktY3am)r+d%_}B{uIEs>d_GJ3=`*wsqxpLjG3}}y8E>&{StLRUAt+|Vx|x9C7ra((~J*h7^^$9S=hzQ|niwi1}1Y$Usc$(FWpBV%X z+fjT?rF#6B*LjTgHHv%x+BMEM=6zetNB%NSqhFijccadOV&ch6RhHZzqn~DeZ<*$E zqg3md#nc6AShjCM{q+`I=IHM!(0%84adPx=$6cq6vYpag)QGRE@xIX?@Uq;&3uI@w ze|N*TBKo-h(+6(WbqFfddJa^}_068hIIe_HEtH@3bL39H4>=nDOMa;jx{8`BrBZST zzMxwCzmi(22J$;d;xg`79OnAoa;#(-=)pK3JWUcG;sbI&uNOSM;CqQ>Z2Ijc7u&(L zC6DMuAGuWvxwzTp>2)kq?c0Ycjr$DS1o!fl=%w$IKDArdjp1e4yDQ;Pb}I!t;bXhO zm*9|iC0XO)k+g;bD;V?Ec8PNqOi+#HZrCn7;B?W8U!nDTaVS**H4b8%Vq4tx1PSgH z`9q$aFzlP|aOpk?T*8+v)i_pII845eR%_x|&9f0MbjztGY4w zj;Dp%PlUF!9MU6HK8gXZ=`iSUOE zpW^W<-EKL`@N1*@)7U7qp?NK4o-zJ@Foz3o^2u}zlx~ya#m&7}bq8>5lXS-bq z9lUAg*~`?h?Dqsz%h zy`k4tzkciczCPd7eLr{}ZC9j{4w8h*{ULV$I#481 zE4X=Mzd^xG7=1X=F+-5?2KD)ErSMS#S_cvp;xFOUycal`PgVwpz8}rc<#9e+ty@eL1J7yt#kzMsh^eQ1}ClTliw zPA~wsl3z~Fho9T*FPfjPkhrfx^o@hkUkiyY{$auG*oFV?mcCKGe7;otfx-;0c$DrF zeTH!w$7||2gv5`?!RyB_wE7YTs==-GpXrGBAGz7zXAQjKo9@x`U?eYB{_kG1-eQsO zk5}*Yv99U6a1LZ5AMz9$th)zk!nb!T`flZ(7@bMg%zJ*?$0!%vo1b+z55?@ij{96w zO&qUZ^Pf<8oPjvzc2WLZa0#!aMD(1Jl%31mZj>&%{sp?uOu33(xV_$2W4Y*N824+M z_S1~XTQjt7NJH~eLv>U*#BV!#JFBu6edjZCKUSUho3DL}J>BGX3h?}Xp?O@{n(r1f z@A+BBtS{{q{DD{etAbKTi+8+k?bjRk@5cTYD>(fj7ivWx!KSMHjZ-OAaNge5s-a^s zw-1UhYMkqbqnbBuUeBt>6~XKj^Y5ZhZ`ON@q>oapsyru8M6uv&ZK^ENtsci$sFvZU zPN6~tPyA^bb}2aeu@FMqXB$Dm`}#PXyBn@H>V$Ti_km0JVgZHzy!u)AL|@&bb;x0p z{e3yvDpH`KOzGY6@T%yscN`#ZaqtZfJ-2*`}-A-(w;1 z-=-R_Yu`#%U0|BX|bGm(94} zEpi@3YB_p)EoDkvX<<6ZIC5~~=1+2+@$6MgPufi$jZ>l&!COz)zBq8Cu%IsTdH#PA z9=4Ue5`N+Hxj4OX%C1f*z4r-ke+9$dohxo8xhn;2m&xZ5ykCoCZeBwuJ zd_JIYGLiLE$BT6`&o5>k&%;O*9(S3(58zfZkWK6L2Mr!gP}V!Yj5n|J55lS~@Y^he z*_XRspJo)xrCx?=@r^BP!G!|2CEhut%0o@b)Z2ASoKnrQ(T(BZ%iIb~2mIw2LR`1I zGjcy&bit|nPDV)h=t0rf_iudfqhTxFZPdWSy#CLMpJ#|+#dhN)0q}}mpP9d`}^nU<1n``)cQ*1YtcWAi7#D$9Y=BNuRadX=hv@` zsyjL`*3Y$p<3o|~rs8b(PviP{@6-IR>&_n#J`39fAG=4*HaA|1@L%h`4L!&reBugD zg9ej>lEQ_GLp}WHwrp+n6ditQ|wiyIGK%N=28? z$1*o<>+8%)2Cw5_sudiZtm~AUpeBO;*eCwTZqXyQF@E_xa*AFu+fPmRS9F3!bcTs_cAutYS|1h_qJwf!y{sLHbXDzb^dTL7 z`sTL3+b^MPPHY~fBJJNnIhq$s9`U)!=d|%gtWe8PU3=57P4q>vLi1SQ)i_!*>%Gsb zitKjE5Z(8+oSz)RF2QFV7Twwu**;bO4pb!dd6q|BGN0ONy=5AFAs4Pp{oak7U!15z?x@$jK+9bb|_%qQF1=DzRo57Pc$Gs(L+!{DqLqAcDlR|3w=pM<(+1D!_nXHPjqg3m zdd}CuD)9-?I&7T$^itp|)Uop;a?@u!?M=D?)X57Ut&{yImv&D99&MZb4b%UKmq z44q3UTA$IV_fopn1%pfXDPhxnE@+yN&*E^9YIv%1|fl1sh zco@qRJLcdQBz0y=@5DgkMh!fuN_6I*5FWbW*Cusg%2%kJ)22|Z%m*vE?bVd>q#th7 zdq=A(-6v(3A$lcyv@R@tt$pHR=FRG;@g%{kxHEj> zj}(-;s<9ux^gI2cBNTX%g;?Qq&l$dDZ5vdv4a`mib$pHx(`SdHQqdsJ8;ZaxMF{=~ zB`Pg^=Ns5LU2g{)^JsUXT=;gz_hkz{&dy=-mvAe3Z-?HfyId`t!{K^eO>kpSr%Qw6xdaD&SoD4z3J#M}|GA)C z*J`8wD0uo1>kA!5n00`*AY1D;QjO@gJNNbe;+LxHP$N3R_VKDAc`ib#41Do+68$s! zOmu3(qH7U8gNYz;YTQ3E#D~-)Iu9$9D|DYk*rh+^Q`17}5V*co0*RRjY8@{Gg-`7k zo$~#bx)Oyf_jfsViq4Qnx$q7B6WLm4*1V4&=QdUaN-ku9M);Wz z)dC@wW2?u#m2yH*jGzh&j%-6v`i~CXPp#kXOeLV##C+}2_FO0seXU&4q013p`Sj1onkoe=+wLb!ahQ971Re(GV zE=9ZlY6k+M$Kv0>L_PQx#T>3$7rspn2iSFmXH;or^*mYb0JKGg^ zgpG&44K9f*E18~jG9A#qaCAiX0jWmo@sLgHh>@Lra%ND8%&&DC|BE`Ur;EDlS>OU8 zh9^&kReUsECu?D0o5lg4nwOzB;pnA^Q6;dc)%@DuQ1$^EQ&8sJEUZX2;X6CE9xQp3 zz1qupqKYU6q?)a~$QR)?; z<*>`VuFh5^MXzdIkdp;MaUNQxDwF({4Y6Mb|eVdRrkbtDcG)hK0;Vy2dG^M8>I8 zbj|%L%sXcR+}bY&0hxCLTz**&UlIc@;8XCF0gxhZ-EQRwi+*2Ng{k*#LYU##k04*k zn7#i2+&aHNh1TDMo9$Fi$13TQhO~|lJi5P)3ifMzGjd=5cI%c~2EnQQ<>1@FL^uS+ zwH%**7KV+do6h9c^$@Dk{V_VkGA~!tc$Nvd&HOz|HJ+FbF%4q{ z@&qqe#WHWL;o`Q`CQ4FjCZ7+YIXWMupsqKxx|O_Y z&NxcYIykgBdALHfV|Vh+$^i>j!ELQpsD^z9XnEvpZ=c)}`CNt=Nt3irB~pctk|RDi z#j0#jw~9($Q9`c|(Lt7t*+!o4c>%-@ZRA7;GJ>RQ!0q zW*G4xtWoXn+m2$7_KPPQ+fp>fXM%St79Mkv_`I)(EUGWwTZKak9n)eR4r_f#R3BwP z9rCrFB^h|U^`h&XBYc-l>`Q)_{5(8{Q|-?ToF=>WamF^mu}6>pBf9R4e9=9ft9gjD zR>2x~@1TC7i{W8f%L`bnb%C%z>rr3_50m9EeClUNA9ua@N$=4(09eHr!6UvHrCPrR zUY(~>miWII$G3A43u&6iIhW-D50m2}7C=C$)?q=u_}WFESDfc~@h?>>RnN{FX*=u6 zbu^D7V>CCENnpuAL#ib;fpY6<|4E5b&$00GIMO`+Os)R~oAxP-j8_))N3Has*GRm)UE?z7sNhY$mOA-#w$Zzs z(p9^B&jdPP=zHI-fM1!kOmzG9sIo>uH?nA-UplINc*IjyI&Ng3@**{{dqQ+ZCfxAo=S-(No_k z_{OE@4^SDV=?8aE_*|ou-O-5wctrSW^CfToLh5HLl?z(CrmzbSq(*pRbK5soN`Ocg zACMY0L|a4_mYZ!%Q?$Mx!(W%HZ))N)g@e%_Y+!nMNh; z)OtSDUE>ZYO>nlmm>;=`ihpM%U~-6FO;G&5{ft*|QzF9%&!rhWot{c{f}e6JmAEB+ z$tgZ@o5V+MyJCyIbQ*SOo;Yn{e_KDM>F>ib@eA3?z9hesRdfvO!UM1?l-JIWC{gk; zn$84R%#nG2o8TR`==BP-3Y2l+WF)9+@i}*6n&?gLV43yE{(3V&o2;sgc4Z#zSE}$^ zA3>h*H;ObaA4$5eO$#}lJ&$%OH<0elFj@41GKELqF*2)0MljZk&g24Fhmv*unARn* zAc=WDA7p&|X)*KGPMLQfWjT*ikh%j1{yst1-OcYe z{929AuMixK0~T z^biwCQN?x;cVeD{iH=w+Ix+c*E_z=XDh_c23r^M5?Aa6{wnJ|U?<)z%KTrA-RidZs z(YorW(>m^O>--#*vL3j<<-o4~I*H%5@!BuG5eEJ!o71#rNYQ@GuuGlH$G(EoB5?!r zh+$Xm2Um|X_Y>572KaPbiGb(|J4BzqRCs6R_ok@^?`6pUVs#{A>;%7}%XxpoQLQhC zI^i2zdHG$1y(${I*u)89m*APLf**3SZpB8_=y?}j(IKx@GH`89pj7lO-P-?+e4W*T z@-CdhrwfVxuTNEF@3_kRp3rT|I2!P(F!GcHvb9%6j~&UO`?1ItoP$%(tESIWi0$F7 zFn!kog3}I)k7ro;y$7`}9od+s-;u1s@2(IXGn@8hLRi<0=_Vcr=Ta}ZuEuc&R9j-$ z6bKI#Wy05Wi+)gsj$=@x@t&rBZ#l~(ya?g7!KQW8|FK_NIhV6WB1L>OlU_@>e}DTs z;gE3?eP0;*ZPG`Fwxe2zpo}+<@GJ9moR82XCHOVR;Q7KLKF7v>WAq#hUXs?CqY~i} z=8a~M~&wq#6HFKadefU^L4nS z!MM4B=LX~9a>k9!h<9GbqrvlA$G6ic6l?t|RB4@r`gvZl2d?o^y7+m;*`N7+TQy$P zd~MafiGsd8`B-1K`GlZoF03lv{pdQPvB#@#ToD`o1dd^z$bBO6~kvgz*zC8v8Xmu$r`w|pA!l= z4442X>zbVei|7dyDK&-xk$Fzy9=q<(qdc7nij>9S$VF5v_%+LAT-YV&J{G7YhwgJx z!7?U#qek$e>56`HPcAInX1c??4(YP4*tM=DYK3oKEI4|P@Skkl)?A4S@wv>L6FI`TFFS%<{^*JT`wuKK z{o0(2``u&sa+~ARp;U(MZjUsnKNe_w8S1!RZRW@Daes0OvPB=VQmIo9ErDC(z0K|H zqHhpjT3Abj^Elx`;2xf!5fZ&$qh467^$cK9DAN3%@ay`sxxa9fey>OK%uStp-=l++ z0vbYZaR6%iwS}d=TRra1H@~hs9|7%qjv~?XsrIu07OmuR%`k+-m(Z>89w?Rj+}TnY zC|-|1BsqEL?fQ8>DEvpGZ|GzB{!ii6>uk*Z8+HGi^TOTYlM;y1bFkg>pi(F!aZH0> z>orlW_!KWy@VbXfu|VqRv!vc@=s67e`?xpWan;YuT1STtbGiRnq{P`S&TI4h3?HlL z?fVJdI?m_f9cT34<9)87^Ne}lC4R1H+9#H_XnhCsJPH^-^yzBcH~XlZ)x2m!M9~rpqJwwdl^~vcDj&i~E0Ve&l}la~_^S^o zdDzbFW3p@AZrZ1LOq4}ePI+(CAf!ti?$Z4uSjG3r!*SXys?zhmQIDZw%>y&%i6Z4b zamTlGSmUg4Sg|x-wWEgnG-Kg;=SPKvp#l~4q?F-^a>spisX0EJ!8#G+*Pq zu}SjUtT7{1tAnb9zh&s~9%0{}_b^lA8R$-__kJoo<7J}XJ680$4Sa7U=LLV#dezJv z9->1$OkRdvbej`o-LT=s6gEz*`KQEz6J(CtvxON@0jf2EC9dD4g2^-WS8dog% zUW3nOUjGfkSFhl3Kh4zna!LGLsM?UP?uK{&G{q#O{hOJfO*wm%pyqoR!8GABV(wSt zcXTS$+QxdHt?2Q1?C;-?dG@}lfKy-7VciF%GRZ%T&!;o}{*$qSsN{lSEZ7rL~8l-)cW zE@U3T4iu|0-(9_FyWsb=oOWx<=elV#B+GmwdJdGx;rX4Iqwc!B&FLfQCm&?k%~h~g zsRT3`McWlns~4q;KiL|MGb6i_E9kj{s#KVCMJjzQ^{P~clU;}mZcnwr&MnGFJeOAe zser>L)7W3Qpoe_XyPmCiY;;(mkk5IR48OKq;Sns>I9albpP66lxRYP_4|d_B`9)XP zv6vewl+JXt-IUC}zCTiqvg3X9xQSy<75r$X=tE>rnb^Pf!_8Eq^@YeEN$w}FyPRCZ zm>7)hte^e{%@q7xIm3sqC!3yssFHEV7m}ghJN*F$@?nSOi&BE_YvDc7@0~AwRl~2X zY@Z@XoKBUR??eTEDkF=5_3@wRYK;*c(?rdSq!ps;utV^@+qlfK4O98L=U}_`BQShm zDeET=z_CgDe847t^ZD8*1>0ntC+oUD?a@B57_G|5lhTkZywViiuf{gXFXrgJ932$> zU5nZ1hK`C}Q1tduug&?&_`5|_cc;H<_yo~( z-4Ac*bMYSkv_2F4h__$UKi7zRcmCM2x4WdL`8m&Db=Desph|RY?HYedn_2GrIa;k; z>Xx-fbsYoEP{fVdeQ+`j=~VN)Jlv>hjLOqk5FB37X|^a>{O8HAYW+WyT%j6;NpP@W z`6%=AwQLtq-&gf1TlhzF;nKJ$>=&JzMD0TitHwjZBe+VB_z?KH3|+sz`lNs6<@U&s zdOvR^BiLp(O7wh*>g!oZ9HFN;F-4GN+AfD%bRkkTt{t^n=K$5byDR7*FGru5-?!)_ z78HR^Z~^|cEmS0J@;$4#Z@v=_(ZO`-d6!&D2Iq=Rw{ddt}r&3+#q-xD`L5R zxwOtP0{vOAFy?z)a$b2_4-6S>qrRPHlriuF#dmaq9JNRz%$xyEr*0n_o%pe4db&uqhjo5P!D6^s1b zn^Dn384@f+o$#a>#-8h^LsGw*H%$rTeiLs$=5b_HJTY|6g+>4U(fpU~3v@k`tlH<@ z^hb`?`3zjFfQfC%D!w_`c@u1Exg2RVbXnmN+`O0R2$A_g{D6Fs z$trS7!YBPRtLUlEkv!WfI7*xFDbru#0x8PbE^P_y+NT>hS4q{i}=%cE>{KMo5(3~QjW$4po*u}4^hqfPa9D!c%h*1JZl9X>ePKpScM-~ zCpr>#sb|@Qzmb2?rI^=L$|`J&$jSB^^T;avNspfADPMHI%NPc76WWR1M!Mhvv$-zV z3m)B-qz%GXIGV4ZNZ|QZ9W@tH#e!k*=Rms!}`ddLiiZE?X8{Iunhr)62GB24rzP^ zay8zEGDRmn{1Fp!;NoEwK(Xj!I$3_R3|3w)eujVVoq^X&@(~ih;2@VTZbwMj(b}Gd zN1@pI&cqrm{1tD0L)KsY>0{;#gZH-VukTZVqWxWd4%TR#iBa#R1)}G$OV@{Jx@!Oa zvCRCPLx0uFiTk~xmuc41wQYxR~&|8$+Ao!o}H6>HeGFWvBAiFX|F9%Svy02Rt(ImUKmKaUeW^67bj+`_L6a6aCQ z9BXQSANKGV6pK$shUod`>$*5q=zNW?6TR+y(Ul7_?csX!_&vh=wein#9ju&=_NE-R z75*H1$M26sz~4bntM|dG=;9CNl2_3lo|r1fm84oIocPP4znCk7L~FbNWO`4@M{7RT#7|8F%yoz&NJk_ z?%@=F@K<>B`cJ8>>-{)ZavSj#Gk$Y%;iUuRi@xnltz%7_n9VVQO4ttmNu)8Jbt)ZZ z`08XT7Qej83pjwIe7!E1<0WSl18%8W^XzDrg2`6?f=tcRqI9-ryb)DAJT4&7#YTnH z74|9`$1f9T<-Ve~#*UvAGd?Wh&tTMh?RuT0<)2QuW=@CwX58CP^fDH5dUB1ab8GPS z4~vh8=5spFMR(k0+KHn6 z;Fx(a`aI+9*Z8|%d`=wVYhe66jp<=u#NAKs{pt?=s!`M<-uBTC^SBRdo_6&64Sg== zypx!>vmdFVXO?#0!P=Qiwoo$509 zF`eZu!&i`^{Mz7U{?T=))cAASC3Utst~Yc*66-E~jGZ^Lae8DORR$8pG+A_OHoTz> zsYX+lvQN0ePo!i3H`q=6Ua2$FYOd=Zpe=&uEf;)KD#Kwvgo|&(+vv+(3~)oTu0vuc z+c8{*34*^#ljF5aQbhPBuyS1T8`$<`;c!%Gybe-@FMm{cM}^!^x*OR{uX~Ml@ig)v zEf>D>>K5FHK~DFPJLZ429DAityjS}dQBp@1z@~+|-fLdJYVirpQnEfN0XibOLvWT12+$)FLnG&r28aDWq9!`NV;*<;^*6ci93dEEs^?N&V=g3<=hr^rtd;Y~ zBDy;nf^$pK@hk1n_YsMn1Ep#H234u-;&H+c(@;)^mY;tNJ6LAuM(ozOLrPfAfDWvF{+BkdRo;ZLqHmVaOBL47p&a26 z9u)rVZt+LxCOBFn-#7GovqTp?QR_WmuGWFTR;hOw`n`sp!y%QXq@*HO`Z2i-ujvBM zG!86a#J$^;JnMxXTFvypcWH-`F+1gLOzGD5;;z###!;R3(q85}CeQ3J=KF?zuc7CV zB>mrc;$Igvk2Mtc(p=#Q2DE-Pt&=<>NBbGZogbt3Yv`#LtL1-Yt+`!$89#B3i;A`1 zi+O(L%=Y)+7jHlD)~o3ArUcz*L6PVgia&PDdUW7MUML$i@IV%ae~GXvb*8RPS}SX@Vo#qUt6_K|=^{%&kvCHytx zwNL8G4!#ZkK%zqluU3IBPy@FE>V`954xT2Q_`xlHTS2CWZmr*s@b29#n=%tV>6=(3 z&OR(Y4Hllh*TE||qwrEyfN2F66V*3hC(8xhgc9A4M}^kCBp>^N-e~@gs}w!9>V4Rx z&gAZMZ<8mpuQl>PSX7zwvsYn}IJ|;&U@j-8_)XaFP(lvVVbi|E@T)TU*u`*(uefnu zp3wot07sF&4y5TZw^JFzqVGbQY9l7QU@KMt)s*_{tm9r2uazab6u~?eszF%mo+DHE z?fJhlA&UxyS76|REu!BMVt)8hx=48JqU&IOUs%yMTG<+~_$E%dzVYrCquyJX%))TU8o|UsN>RFVqdYE}IX4jv#YoE}#b;+pr!e3C z&Z42ZYs|c~RrlE%HTwJQ;>DA3f5$k_4ehu7K4iJXCs3-&Vu+@$Nj&3pib(|`GPYq6r7g$R+!uQR9E}x9I|rQa5XA5?+Zmz?=#NJDs@lewZnL3 zy6`CocJ`gM{QG41b^HLI_)OcB?aZ>rFqi9ai(whU!c-__9^Vkq!+jz%)lOO^yng#i zHok&ga7`99+*bV#hvxC1TJz4RK>M{)m5QD(D5E+RraS`j{=PdhvkfJO=mj1aP90x zQj$aNqgvLtxr>~_3*Mo9m{2A4*Ph~6P_0J!k}_nfuJBn_ctp26Aox?a=5d?8n@%OS zQ1~^R(g*S?n9Em(VCS-T6WFvqI%RA9GwfC}_LJU37vZ;5=y(@)@way*YJr!K)}J%= zdqeJzCp|TLG(5TvWBM5enGWy_pahTBhr>bkU%J7pbA&aI(yaG-MZd`_`T*f|o8G?gk8=>#zJBI$+f+D%-{8{v zAV?M7d6v${s7Ua}Va*4FSL4c2C_aD=#(i9dRIOu%fatLYpJkv8f?Su1%-?d|{km^x z-j9V^=Q;X*riwibSTokSnEA6-^E}M`81Glu#yqie)O}dTZQSOxR{IpwH_G10GXnb+ zjQrCn7_N1j;>Edf=b22wr#j_2XNs<^kL{W3eWq%4ohaUZDCh6}+Kf0q?)Rr(^}vm{ z?TO)^n17GjpZR@p-jDuV%=R{|Lqpj;SvU+y+LtQk^Fh|#dZoerR{!zcj%Su1qVl2M zA0ty6IrVx$Ug3GV#Rn$9`dTIAH0CQOPmnmkm$?H<1kYA2JlA)$KNVGIepbx-(%@P+Q?0`Lq?&wi0VVK9`_(E`S2bH^0mkL-FZTQGiqi#aWl)85F@sy*cv!_Q;o$v}o zSCEd#^{Zq<(biPGqKS&^s6es#P6?Ao$%HPOVDU$XIi?KbO3M}Ac-_0_Ib3HfNaSWcm5w7ww~Xun!y^J?@srD;Ar?LSf3 z%CTArcW$x}poH>{%1RCJ65tKd#$ zVLh53#qT`8_D2qLKjn%R)9Q#B?`7-yaLoJ=^&Ic-abK5eT>$fYK-x2zgF28F7AR9Zu6V#DkUg7`oTgnct|@m z|1A2r|F;iHh|D_kpV>)P(Q`H8-g!~=UYEq>rQ#o+aseAEqE4a9o=Tza(s$n(II-~a zZ@pyG`4cVE{Rvvf%lBg>>m8B!Vx$ZHQ*=3K7Kc@PkSRD}oAmDu-8}Ed=P2ep?PR^g z`8Xta!<~W?`uCks#pIGjc*JGWx7sFoulRfs+mU`tNR!3KY}E5TKJRh`?NMs!eI_79_}j@cUy6P&7HM4o>LvcehjkoDM-Q=} z01f6g%^{ksb=64QTHQq+ts6!mo{n!NpRzf)t{s&Mp4ZOs%d@FSt!i~> zpJPyDJrl{{AjG-(&K;R38s5*Ln^#MEl+vyf#YI z`ILE`j{Ws}+wj z$8m2Sr$7hXn$b91e0wo=P&5M8m0E**G5&!@I literal 0 HcmV?d00001 diff --git a/data/vehicles.RData b/data/vehicles.RData new file mode 100644 index 0000000000000000000000000000000000000000..f86782f11b9a6efa217b46e90282f7fdff11f4d7 GIT binary patch literal 21273 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 literal 0 HcmV?d00001 diff --git a/man/EkNNfit.Rd b/man/EkNNfit.Rd new file mode 100644 index 0000000..b54c659 --- /dev/null +++ b/man/EkNNfit.Rd @@ -0,0 +1,77 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/EkNNfit.R +\name{EkNNfit} +\alias{EkNNfit} +\title{Training of the EkNN classifier} +\usage{ +EkNNfit(x, y, K, param = NULL, alpha = 0.95, + lambda = 1/max(as.numeric(y)), optimize = TRUE, options = list(maxiter = + 300, eta = 0.1, gain_min = 1e-06, disp = TRUE)) +} +\arguments{ +\item{x}{Input matrix of size n x d, where n is the number of objects and d the number of +attributes.} + +\item{y}{Vector of class labels (of length n). May be a factor, or a vector of +integers.} + +\item{K}{Number of neighbors.} + +\item{param}{Initial parameters (default: NULL).} + +\item{alpha}{Parameter \eqn{\alpha} (default: 0.95)} + +\item{lambda}{Parameter of the cost function. If \code{lambda=1}, the +cost function measures the error between the plausibilities and the 0-1 target values. +If \code{lambda=1/M}, where M is the number of classes (default), the piginistic probabilities +are considered in the cost function. If \code{lambda=0}, the beliefs are used.} + +\item{optimize}{Boolean. If TRUE (default), the parameters are optimized.} + +\item{options}{A list of parameters for the optimization algorithm: maxiter +(maximum number of iterations), eta (initial step of gradient variation), +gain_min (minimum gain in the optimisation loop), disp (Boolean; if TRUE, intermediate +results are displayed during the optimization).} +} +\value{ +A list with five elements: + \describe{ + \item{param}{The optimized parameters.} + \item{cost}{Final value of the cost function.} + \item{err}{Leave-one-out error rate.} + \item{ypred}{Leave-one-out predicted class labels.} + \item{m}{Leave-one-out predicted mass functions. The first M columns correspond + to the mass assigned to each class. The last column corresponds to the mass + assigned to the whole set of classes.} + } +} +\description{ +\code{EkNNfit} optimizes the parameters of the EkNN classifier. +} +\details{ +If the argument \code{param} is not supplied, the function \code{\link{EkNNinit}} is called. +} +\examples{ +## Iris dataset +data(iris) +x<-iris[,1:4] +y<-iris[,5] +fit<-EkNNfit(x,y,K=5) +} +\author{ +Thierry Denoeux. +} +\references{ +T. Denoeux. A k-nearest neighbor classification rule based on Dempster-Shafer +theory. IEEE Transactions on Systems, Man and Cybernetics, 25(05):804--813, 1995. + +L. M. Zouhal and T. Denoeux. An evidence-theoretic k-NN rule with parameter +optimization. IEEE Transactions on Systems, Man and Cybernetics Part C, +28(2):263--271,1998. + +Available from \url{https://www.hds.utc.fr/~tdenoeux}. +} +\seealso{ +\code{\link{EkNNinit}}, \code{\link{EkNNval}} +} + diff --git a/man/EkNNinit.Rd b/man/EkNNinit.Rd new file mode 100644 index 0000000..8afc14f --- /dev/null +++ b/man/EkNNinit.Rd @@ -0,0 +1,58 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/EkNNinit.R +\name{EkNNinit} +\alias{EkNNinit} +\title{Initialization of parameters for the EkNN classifier} +\usage{ +EkNNinit(x, y, alpha = 0.95) +} +\arguments{ +\item{x}{Input matrix of size n x d, where n is the number of objects and d the number of +attributes.} + +\item{y}{Vector of class lables (of length n). May be a factor, or a vector of +integers.} + +\item{alpha}{Parameter \eqn{\alpha}.} +} +\value{ +A list with two elements: + \describe{ + \item{gamma}{Vector of parameters \eqn{\gamma_k}, of length c, the number of classes.} + \item{alpha}{Parameter \eqn{\alpha}, set to 0.95.} + } +} +\description{ +\code{EkNNinit} returns initial parameter values for the EkNN classifier. +} +\details{ +Each parameter \eqn{\gamma_k} is set ot the inverse of the square root of the mean +Euclidean distances wihin class k. Note that \eqn{\gamma_k} here is the square root +of the \eqn{\gamma_k} as defined in (Zouhal and Denoeux, 1998). By default, parameter alpha is set +to 0.95. This value normally does not have to be changed. +} +\examples{ +## Iris dataset +data(iris) +x<-iris[,1:4] +y<-iris[,5] +param<-EkNNinit(x,y) +param +} +\author{ +Thierry Denoeux. +} +\references{ +T. Denoeux. A k-nearest neighbor classification rule based on Dempster-Shafer +theory. IEEE Transactions on Systems, Man and Cybernetics, 25(05):804--813, 1995. + +L. M. Zouhal and T. Denoeux. An evidence-theoretic k-NN rule with parameter +optimization. IEEE Transactions on Systems, Man and Cybernetics Part C, +28(2):263--271,1998. + +Available from \url{https://www.hds.utc.fr/~tdenoeux}. +} +\seealso{ +\code{\link{EkNNfit}}, \code{\link{EkNNval}} +} + diff --git a/man/EkNNval.Rd b/man/EkNNval.Rd new file mode 100644 index 0000000..191bd30 --- /dev/null +++ b/man/EkNNval.Rd @@ -0,0 +1,71 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/EkNNval.R +\name{EkNNval} +\alias{EkNNval} +\title{Classification of a test set by the EkNN classifier} +\usage{ +EkNNval(xtrain, ytrain, xtst, K, ytst = NULL, param = NULL) +} +\arguments{ +\item{xtrain}{Matrix of size ntrain x d, containing the values of the d attributes for the +training data.} + +\item{ytrain}{Vector of class labels for the training data (of length ntrain). May +be a factor, or a vector of integers.} + +\item{xtst}{Matrix of size ntst x d, containing the values of the d attributes for the +test data.} + +\item{K}{Number of neighbors.} + +\item{ytst}{Vector of class labels for the test data (optional). May +be a factor, or a vector of integers.} + +\item{param}{Parameters, as returned by \code{\link{EkNNfit}}.} +} +\value{ +A list with three elements: + \describe{ + \item{m}{Predicted mass functions for the test data. The first M columns correspond + to the mass assigned to each class. The last column corresponds to the mass + assigned to the whole set of classes.} + \item{ypred}{Predicted class labels for the test data.} + \item{err}{Test error rate.} + } +} +\description{ +\code{EkNNval} classifies instances in a test set using the EkNN classifier. +} +\details{ +If class labels for the test set are provided, the test error rate is also returned. +If parameters are not supplied, they are given default values by \code{\link{EkNNinit}}. +} +\examples{ +## Iris dataset +data(iris) +train<-sample(150,100) +xtrain<-iris[train,1:4] +ytrain<-iris[train,5] +xtst<-iris[-train,1:4] +ytst<-iris[-train,5] +K<-5 +fit<-EkNNfit(xtrain,ytrain,K) +test<-EkNNval(xtrain,ytrain,xtst,K,ytst,fit$param) +} +\author{ +Thierry Denoeux. +} +\references{ +T. Denoeux. A k-nearest neighbor classification rule based on Dempster-Shafer +theory. IEEE Transactions on Systems, Man and Cybernetics, 25(05):804--813, 1995. + +L. M. Zouhal and T. Denoeux. An evidence-theoretic k-NN rule with parameter +optimization. IEEE Transactions on Systems, Man and Cybernetics Part C, +28(2):263--271,1998. + +Available from \url{https://www.hds.utc.fr/~tdenoeux}. +} +\seealso{ +\code{\link{EkNNinit}}, \code{\link{EkNNfit}} +} + diff --git a/man/evclass.Rd b/man/evclass.Rd new file mode 100644 index 0000000..019d1cd --- /dev/null +++ b/man/evclass.Rd @@ -0,0 +1,37 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/evclass.R +\docType{package} +\name{evclass} +\alias{evclass} +\alias{evclass-package} +\title{evclass: A package for evidential classification} +\description{ +The evclass package currently contains functions for two evidential classifiers: the evidential +K-nearest neighbor (EK-NN) rule (Denoeux, 1995; Zouhal and Denoeux, 1998) and the evidential +neural network (Denoeux, 2000). In contrast with classical statistical classifiers, evidential +classifier quantify the uncertainty of the classification using Dempster-Shafer mass functions. +} +\details{ +The main functions are: \code{\link{EkNNinit}}, \code{\link{EkNNfit}} and \code{\link{EkNNval}} +for the initialization, training and evaluation of the EK-NN classifier, and +\code{\link{proDSinit}}, \code{\link{proDSfit}} and \code{\link{proDSval}} for the +evidential neural network classifier. +} +\references{ +T. Denoeux. A k-nearest neighbor classification rule based on Dempster-Shafer +theory. IEEE Transactions on Systems, Man and Cybernetics, 25(05):804--813, 1995. + +T. Denoeux. A neural network classifier based on Dempster-Shafer theory. +IEEE Trans. on Systems, Man and Cybernetics A, 30(2):131--150, 2000. + +L. M. Zouhal and T. Denoeux. An evidence-theoretic k-NN rule with parameter +optimization. IEEE Transactions on Systems, Man and Cybernetics Part C, +28(2):263--271,1998. + +Available from \url{https://www.hds.utc.fr/~tdenoeux}. +} +\seealso{ +\code{\link{EkNNinit}}, \code{\link{EkNNfit}}, +\code{\link{EkNNval}}, \code{\link{proDSinit}}, \code{\link{proDSfit}}, \code{\link{proDSval}}. +} + diff --git a/man/glass.Rd b/man/glass.Rd new file mode 100644 index 0000000..4b04c4b --- /dev/null +++ b/man/glass.Rd @@ -0,0 +1,41 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/glass-data.R +\docType{data} +\name{glass} +\alias{glass} +\title{Glass dataset} +\format{A list with two elements: +\describe{ +\item{x}{The 185 x 9 object-attribute matrix.} +\item{y}{A 185-vector containing the class labels.} +}} +\usage{ +data(glass) +} +\description{ +This data set contains the description of 214 fragments of glass originally +collected for a study in the context of criminal investigation. Each fragment has a measured +reflectivity index and chemical composition (weight percent of Na, Mg, Al, Si, K, Ca, Ba and Fe). +As suggested by Ripley (1994), 29 instances were discarded, and the remaining 185 +were re-grouped in four classes: window float glass (70), window non-float glass (76), vehicle window +glass (17) and other (22). The data set was split randomly in a training set of size 89 and a test +set of size 96. +} +\examples{ +data(glass) +table(glass$y) +} +\references{ +P. M. Murphy and D. W. Aha. UCI Reposition of machine learning databases. +[Machine readable data repository]. University of California, Departement of +Information and Computer Science, Irvine, CA. + +B.D.Ripley, Flexible nonlinear approaches to classification, in "From Statistics +to Neural Networks", V. Cherkassly, J. H. Friedman, and H. Wechsler, Eds., +Berlin, Germany: Springer-Verlag, 1994, pp. 105--126. + +T. Denoeux. A neural network classifier based on Dempster-Shafer theory. +IEEE Trans. on Systems, Man and Cybernetics A, 30(2):131--150, 2000. +} +\keyword{datasets} + diff --git a/man/ionosphere.Rd b/man/ionosphere.Rd new file mode 100644 index 0000000..e09510d --- /dev/null +++ b/man/ionosphere.Rd @@ -0,0 +1,38 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/ionosphere-data.R +\docType{data} +\name{ionosphere} +\alias{ionosphere} +\title{Ionosphere dataset} +\format{A list with two elements: +\describe{ +\item{x}{The 351 x 18 object-attribute matrix.} +\item{y}{A 351-vector containing the class labels.} +}} +\usage{ +data(ionosphere) +} +\description{ +This dataset was collected by a radar system and consists of phased array of 16 +high-frequency antennas with a total transmitted power of the order of 6.4 kilowatts. +The targets were free electrons in the ionosphere. "Good" radar returns are those +showing evidence of some type of structure in the ionosphere. "Bad" returns are those +that do not. There are 351 instances and 34 numeric attributes. The first 175 +instances are training data, the rest are test data. This version of dataset was +used by Zouhal and Denoeux (1998). +} +\examples{ +data(ionosphere) +table(vehicles$y) +} +\references{ +P. M. Murphy and D. W. Aha. UCI Reposition of machine learning databases. +[Machine readable data repository]. University of California, Departement of +Information and Computer Science, Irvine, CA. + +L. M. Zouhal and T. Denoeux. An evidence-theoretic k-NN rule with parameter +optimization. IEEE Transactions on Systems, Man and Cybernetics Part C, +28(2):263--271,1998. +} +\keyword{datasets} + diff --git a/man/proDSfit.Rd b/man/proDSfit.Rd new file mode 100644 index 0000000..f47bc4d --- /dev/null +++ b/man/proDSfit.Rd @@ -0,0 +1,75 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/proDSfit.R +\name{proDSfit} +\alias{proDSfit} +\title{Training of the evidential neural network classifier} +\usage{ +proDSfit(x, y, param, lambda = 1/max(as.numeric(y)), mu = 0, + optimProto = TRUE, options = list(maxiter = 500, eta = 0.1, gain_min = + 1e-04, disp = 10)) +} +\arguments{ +\item{x}{Input matrix of size n x d, where n is the number of objects and d the number of +attributes.} + +\item{y}{Vector of class lables (of length n). May be a factor, or a vector of +integers.} + +\item{param}{Initial parameters (see \code{link{proDSinit}}).} + +\item{lambda}{Parameter of the cost function. If \code{lambda=1}, the +cost function measures the error between the plausibilities and the 0-1 target values. +If \code{lambda=1/M}, where M is the number of classes (default), the piginistic probabilities +are considered in the cost function. If \code{lambda=0}, the beliefs are used.} + +\item{mu}{Regularization hyperparameter (default=0).} + +\item{optimProto}{Boolean. If TRUE, the prototypes are optimized (default). Otherwise, they are fixed.} + +\item{options}{A list of parameters for the optimization algorithm: maxiter +(maximum number of iterations), eta (initial step of gradient variation), +gain_min (minimum gain in the optimisation loop), disp (integer; if >0, intermediate +results are displayed every disp iterations).} +} +\value{ +A list with three elements: + \describe{ + \item{param}{Optimized network parameters.} + \item{cost}{Final value of the cost function.} + \item{err}{Training error rate.} + } +} +\description{ +\code{proDSfit} performs parameter optimization for the evidential neural network classifier. +} +\details{ +The prototypes are initialized by the k-means algorithms. The initial membership values \eqn{u_{ik}} of +each prototype \eqn{p_i} to class \eqn{\omega_k} are normally defined as the proportion of training samples +from class \eqn{\omega_k} in the neighborhood of prototype \eqn{p_i}. If arguments \code{crisp} and +\code{nprotoPerClass} are set to TRUE, the prototypes are assigned to one and only one class. +} +\examples{ +## Glass dataset +data(glass) +xapp<-glass$x[1:89,] +yapp<-glass$y[1:89] +xtst<-glass$x[90:185,] +ytst<-glass$y[90:185] +## Initialization +param0<-proDSinit(xapp,yapp,nproto=7) +## Training +fit<-proDSfit(xapp,yapp,param0) +} +\author{ +Thierry Denoeux. +} +\references{ +T. Denoeux. A neural network classifier based on Dempster-Shafer theory. +IEEE Trans. on Systems, Man and Cybernetics A, 30(2):131--150, 2000. + +Available from \url{https://www.hds.utc.fr/~tdenoeux}. +} +\seealso{ +\code{\link{proDSinit}}, \code{\link{proDSval}} +} + diff --git a/man/proDSinit.Rd b/man/proDSinit.Rd new file mode 100644 index 0000000..5373bc5 --- /dev/null +++ b/man/proDSinit.Rd @@ -0,0 +1,62 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/proDSinit.R +\name{proDSinit} +\alias{proDSinit} +\title{Initialization of parameters for the evidential neural network classifier} +\usage{ +proDSinit(x, y, nproto, nprotoPerClass = FALSE, crisp = FALSE) +} +\arguments{ +\item{x}{Input matrix of size n x d, where n is the number of objects and d the number of +attributes.} + +\item{y}{Vector of class lables (of length n). May be a factor, or a vector of +integers.} + +\item{nproto}{Number of prototypes.} + +\item{nprotoPerClass}{Boolean. If TRUE, there are \code{nproto} prototypes per class. If +FALSE (default), the total number of prototypes is equal to \code{nproto}.} + +\item{crisp}{Boolean. If TRUE, the prototypes have full membership to only one class. (Available only is +nprotoPerClass=TRUE).} +} +\value{ +A list with four elements containg the initialized network parameters + \describe{ + \item{alpha}{Vector of length r, where r is the number of prototypes.} + \item{gamma}{Vector of length r} + \item{beta}{Matrix of size (r,M), where M is the number fo classes.} + \item{W}{Matrix of size (r,d), containing the prototype coordinates.} + } +} +\description{ +\code{proDSinit} returns initial parameter values for the evidential neural network classifier. +} +\details{ +The prototypes are initialized by the k-means algorithms. The initial membership values \eqn{u_{ik}} of +each prototype \eqn{p_i} to class \eqn{\omega_k} are normally defined as the proportion of training samples +from class \eqn{\omega_k} in the neighborhood of prototype \eqn{p_i}. If arguments \code{crisp} and +\code{nprotoPerClass} are set to TRUE, the prototypes are assigned to one and only one class. +} +\examples{ +## Glass dataset +data(glass) +xapp<-glass$x[1:89,] +yapp<-glass$y[1:89] +param0<-proDSinit(xapp,yapp,nproto=7) +param0 +} +\author{ +Thierry Denoeux. +} +\references{ +T. Denoeux. A neural network classifier based on Dempster-Shafer theory. +IEEE Trans. on Systems, Man and Cybernetics A, 30(2):131--150, 2000. + +Available from \url{https://www.hds.utc.fr/~tdenoeux}. +} +\seealso{ +\code{\link{proDSfit}}, \code{\link{proDSval}} +} + diff --git a/man/proDSval.Rd b/man/proDSval.Rd new file mode 100644 index 0000000..a8bdfc7 --- /dev/null +++ b/man/proDSval.Rd @@ -0,0 +1,61 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/proDSval.R +\name{proDSval} +\alias{proDSval} +\title{Classification of a test set by the evidential neural network classifier} +\usage{ +proDSval(x, param, y = NULL) +} +\arguments{ +\item{x}{Matrix of size n x d, containing the values of the d attributes for the test data.} + +\item{param}{Neural network parameters, as provided by \code{\link{proDSfit}}.} + +\item{y}{Optimnal vector of class labels for the test data. May be a factor, or a vector of +integers.} +} +\value{ +A list with three elements: + \describe{ + \item{m}{Predicted mass functions for the test data. The first M columns correspond + to the mass assigned to each class. The last column corresponds to the mass + assigned to the whole set of classes.} + \item{ypred}{Predicted class labels for the test data.} + \item{err}{Test error rate (if the class label of test data has been provided).} + } +} +\description{ +\code{proDSval} classifies instances in a test set using the evidential neural network classifier. +} +\details{ +If class labels for the test set are provided, the test error rate is also returned. +} +\examples{ +## Glass dataset +data(glass) +xapp<-glass$x[1:89,] +yapp<-glass$y[1:89] +xtst<-glass$x[90:185,] +ytst<-glass$y[90:185] +## Initialization +param0<-proDSinit(xapp,yapp,nproto=7) +## Training +fit<-proDSfit(xapp,yapp,param0) +## Test +val<-proDSval(xtst,fit$param,ytst) +## Confusion matrix +table(ytst,val$ypred) +} +\author{ +Thierry Denoeux. +} +\references{ +T. Denoeux. A neural network classifier based on Dempster-Shafer theory. +IEEE Trans. on Systems, Man and Cybernetics A, 30(2):131--150, 2000. + +Available from \url{https://www.hds.utc.fr/~tdenoeux}. +} +\seealso{ +\code{\link{proDSinit}}, \code{\link{proDSfit}} +} + diff --git a/man/vehicles.Rd b/man/vehicles.Rd new file mode 100644 index 0000000..c734dd6 --- /dev/null +++ b/man/vehicles.Rd @@ -0,0 +1,37 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/vehicles-data.R +\docType{data} +\name{vehicles} +\alias{vehicles} +\title{Vehicles dataset} +\format{A list with two elements: +\describe{ +\item{x}{The 846 x 18 object-attribute matrix.} +\item{y}{A 846-vector containing the class labels.} +}} +\usage{ +data(vehicles) +} +\description{ +This dataset was collected from silhouettes by the HIPS (Hierarchical Image +Processing System) extension BINATTS Four model vehicles were used for the +experiment: bus, Chevrolet van, Saab 9000 and Opel Manta. The data were used to +distinguish 3D objects within a 2-D silhouette of the objects. There are 846 +instances and 18 numeric attributes. The first 564 objects are training data, +the rest are test data. This version of dataset was used by Zouhal and Denoeux (1998). +} +\examples{ +data(vehicles) +table(vehicles$y) +} +\references{ +P. M. Murphy and D. W. Aha. UCI Reposition of machine learning databases. +[Machine readable data repository]. University of California, Departement of +Information and Computer Science, Irvine, CA. + +L. M. Zouhal and T. Denoeux. An evidence-theoretic k-NN rule with parameter +optimization. IEEE Transactions on Systems, Man and Cybernetics Part C, +28(2):263--271,1998. +} +\keyword{datasets} + diff --git a/vignettes/Introduction.Rmd b/vignettes/Introduction.Rmd new file mode 100644 index 0000000..1c59a4c --- /dev/null +++ b/vignettes/Introduction.Rmd @@ -0,0 +1,124 @@ +--- +title: "Introduction to the evclass package" +author: "Thierry Denoeux" +date: "`r Sys.Date()`" +output: rmarkdown::html_vignette +bibliography: tdenoeux.bib +vignette: > + %\VignetteIndexEntry{Introduction to the evclass package} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +--- +The package `evclass` contains methods for *evidential classification*. An evidential classifier quantifies the uncertainty about the class of a pattern by a Dempster-Shafer mass function. In evidential *distance-based* classifiers, the mass functions are computed from distances between the test pattern and either training pattern, or prototypes. The user is invited to read the papers cited in this vignette to get familiar with the main concepts underlying evidential clustering. These papers can be downloaded from the author's web site, at . Here, we provide a short guided tour of the main functions in the `evclass` package. The two classification methods implemented to date ate: + +* The evidential K-nearest neighbor classifier [@denoeux95a,@zouhal97b]; +* The evidential neural network classifier [@denoeux00a]. + +You first need to install this package: + +```{r, message=FALSE} +library(evclass) +``` + +The following sections contain a brief introduction on the way to use the functions in the package `evclass` for evidential classification. + +## Evidential K-nearest neighbor classifier + +The principle of the evidential K-nearest neighbor (EK-NN) classifier is explained in [@denoeux95a], and the optimization of the parameters of this model is presented in [@zouhal97b]. The reader is referred to these references. Here, we focus on the practical application of this method using the functions implemented in `evclass`. + +Consider, for instance, the `ionosphere` data. This dataset consists in 351 instances grouped in two classes and described by 34 numeric attributes. The first 175 instances are training data, the rest are test data. Let us first load the data, and split them into a training set and a test set. + +```{r} +data(ionosphere) +xtr<-ionosphere$x[1:176,] +ytr<-ionosphere$y[1:176] +xtst<-ionosphere$x[177:351,] +ytst<-ionosphere$y[177:351] + +``` + +The EK-NN classifier is implemented as three functions: `EkNNinit` for initialization, `EkNNfit` for training, and `EkNNval` for testing. Let us initialize the classifier and train it on the `ionosphere` data, with $K=5$ neighbors. (If the argument `param` is not passed to `EkNNfit`, the function `EkNNinit` is called inside `EkNNfit`; here, we make the call explicit for clarity). + +```{r} +param0<- EkNNinit(xtr,ytr) +options=list(maxiter=300,eta=0.1,gain_min=1e-5,disp=FALSE) +fit<-EkNNfit(xtr,ytr,param=param0,K=5,options=options) +``` + +The list `fit` contains the optimized parameters, the final value of the cost function, the leave-one-out (LOO) error rate, the LOO predicted class labels and the LOO predicted mass functions. Here the LOO error rate and confusion matrix are: + +```{r} +print(fit$err) +table(fit$ypred,ytr) +``` + +We can then evaluate the classifier on the test data: + +```{r} +val<-EkNNval(xtrain=xtr,ytrain=ytr,xtst=xtst,K=5,ytst=ytst,param=fit$param) +print(val$err) +table(val$ypred,ytst) +``` + +To determine the best value of $K$, we may compute the LOO error for different candidate value. Here, we will all values between 1 and 15 + +```{r} +err<-rep(0,15) +i<-0 +for(K in 1:15){ + fit<-EkNNfit(xtr,ytr,K,options=list(maxiter=100,eta=0.1,gain_min=1e-5,disp=FALSE)) + err[K]<-fit$err +} +plot(1:15,err,type="b",xlab='K',ylab='LOO error rate') +``` + +The minimum LOO error rate is obtained for $K=8$. The test error rate and confusion matrix for that value of $K$ are obtained as follows: + +```{r} +fit<-EkNNfit(xtr,ytr,K=8,options=list(maxiter=100,eta=0.1,gain_min=1e-5,disp=FALSE)) +val<-EkNNval(xtrain=xtr,ytrain=ytr,xtst=xtst,K=8,ytst=ytst,param=fit$param) +print(val$err) +table(val$ypred,ytst) +``` + + +## Evidential neural network classifier + +In the evidential neural network classifier, the output mass functions are based on distances to protypes, which allows for faster classification. The prototypes and their class-membership degrees are leanrnt by minimizing a cost function. This function is defined as the sum of an error term and, optionally, a regularization term. As for the EK-NN classifier, the evidential neural network classifier is implemented as three functions: `proDSinit` for initialization, `proDSfit` for training and `proDSval` for evaluation. + +Let us demonstrate this method on the `glass` dataset. This data set contains 185 instances, which can be split into 89 training instances and 96 test instances. + +```{r} +data(glass) +xtr<-glass$x[1:89,] +ytr<-glass$y[1:89] +xtst<-glass$x[90:185,] +ytst<-glass$y[90:185] +``` + +We then initialize a network with 7 prototypes: + +```{r} +param0<-proDSinit(xtr,ytr,nproto=7,nprotoPerClass=FALSE,crisp=FALSE) +``` + +and train this network without regularization: + +```{r} +options<-list(maxiter=500,eta=0.1,gain_min=1e-5,disp=20) +fit<-proDSfit(x=xtr,y=ytr,param=param0,options=options) +``` + +Finally, we evaluate the performance of the network on the test set: + +```{r} +val<-proDSval(xtst,fit$param,ytst) +print(val$err) +table(ytst,val$ypred) +``` + +If the training is done with regularization, the hyperparameter `mu` needs to be determined by cross-validation. + +## References + + diff --git a/vignettes/tdenoeux.bib b/vignettes/tdenoeux.bib new file mode 100644 index 0000000..7b2be41 --- /dev/null +++ b/vignettes/tdenoeux.bib @@ -0,0 +1,1548 @@ + @Manual{denoeux16c, + title = {evclust: Evidential Clustering}, + author = {Thierry Den{\oe}ux}, + year = {2016}, + note = {R package version 1.0.0}, + url={https://www.hds.utc.fr/~tdenoeux}, + doi={10.1016/j.knosys.2016.05.043} + } + +@article{xu15, +title = "Evidential calibration of binary {SVM} classifiers ", +journal = "International Journal of Approximate Reasoning (this issue) ", +year = "2015", +doi = "http://dx.doi.org/10.1016/j.ijar.2015.05.002", +author = "Philippe Xu and Franck Davoine and Hongbin Zha and Thierry Den{\oe}“ux" +} + +@inproceedings{denoeux16b, + Address = {Rome, Italy}, + Author = {T. Denoeux and O. Kanjanatarakul}, + Booktitle = {8th International Conference on Soft Methods in Probability and Statistics (SMPS 2016)}, + Title = {Beyond Fuzzy, Possibilistic and Rough: An Investigation of Belief Functions in Clustering}, + Month= {Sept.}, + Year = {2016}} + +@article{denoeux15, + Author = { T. Den{\oe}ux and O. Kanjanatarakul and S. Sriboonchitta}, + Journal = {Knowledge-based Systems}, + Title = {{E$K$-NNclus:} a clustering procedure based on the evidential $K$-nearest neighbor rule}, + volume="88", + pages="57--69", + Year = {2015}} + +@article{denoeux16a, + Author = { T. Den{\oe}ux and S. Sriboonchitta and O. Kanjanatarakul}, + Journal = {Knowledge-based Systems (accepted for publication)}, + Title = {Evidential clustering of large dissimilarity data}, + Year = {2016}} + + +@article{ann15, + Author = {O. Kanjanatarakul and S. Sriboonchitta and T. Den{\oe}ux}, + Journal = {International Journal of Approximate Reasoning}, + Title = {Statistical estimation and prediction using belief functions: principles and application to some econometric models}, + Year = {2015}} + +@article{lian15, + Author = {C. Lian and S. Ruan and T. Den{\oe}ux}, + Journal = {Pattern Recognition}, + Title = {An evidential classifier based on feature selection and two-step classification strategy}, + volume={48}, + pages={2318--2327}, + Year = {2015}} + +@Article{antoine14, +author="Antoine, V. and Quost, B. and Masson, M.-H. and Denoeux, T.", +title="{CEVCLUS}: evidential clustering with instance-level constraints for relational data", +journal="Soft Computing", +year="2014", +volume="18", +number="7", +pages="1321--1335"} + +@article{antoine12, +title = "{CECM}: Constrained evidential c-means algorithm ", +journal = "Computational Statistics \& Data Analysis ", +volume = "56", +number = "4", +pages = "894--914", +year = "2012", +author = "V. Antoine and B. Quost and M.-H. Masson and T. Denoe“ux" +} + + +@article{xu14, + Author = {Ph. Xu and F. Davoine and J.-B. Bordes and H. Zhao and T. Den{\oe}ux}, + Journal = {Machine Vision and Applications (to appear)}, + Title = {Multimodal information for urban scene understanding}, + Year = {2015}} + +@article{lelandais14b, +title = "Fusion of multi-tracer {PET} images for dose painting ", +journal = "Medical Image Analysis ", +volume = "18", +number = "7", +pages = "1247--1259", +year = "2014", +author = "Beno\^it Lelandais and Su Ruan and Thierry Den{\oe}ux and Pierre Vera and Isabelle Gardin"} + + +@article{denoeux14b, + Author = {T. Den{\oe}ux and N. El Zoghby and V. Cherfaoui and A. Jouglet}, + Journal = {IEEE Transactions on Cybernetics}, + Title = {Optimal object association in the {Dempster-Shafer} framework}, + Volume ="44", + Number= "22", + Pages ="2521--2531", + Year = {2014}} + + +@inproceedings{ann14b, + Address = {Oxford, UK}, + Author = {O. Kanjanatarakul and P. Lertpongpiroon and S. Singkharat and S. Sriboonchitta}, + Booktitle = {Belief functions: theory and applications 3}, + Editor = {F. Cuzzolin}, + Publisher = {Springer}, + Series = {Advances in Intelligent and Soft Computing}, + Title = {Econometric forecasting using linear regression and belief functions}, + Year = {2014}} + +@article{ann14a, + Author = {O. Kanjanatarakul and S. Sriboonchitta and T. Den{\oe}ux}, + Journal = {International Journal of Approximate Reasoning}, + Title = {Forecasting using belief functions: an application to marketing econometrics }, + Volume ="55", + Number= "5", + Pages ="1113--1128", + Year = {2014}} + +@phdthesis{ann13a, + Author = {O. Kanjanatarakul}, + School = {Faculty of Economics, Chiang Mai University}, + Title = {An Economic Analysis of the Royal Project Foundation: Sales Forecast of Feta Cheese and Impact on Thai Economy}, + Year = {2013}} + +@article{ann12, + Author = {O. Kanjanatarakul and K. Suriya}, + Journal = {The Empirical Econometrics and Quantitative Economics Letters}, + Number = {4}, + Pages = {89--106}, + Title = {Comparison of sales forecasting models for an innovative agro-industrial product: Bass model versus logistic function}, + Volume = {1}, + Year = {2012}} + +@article{ann13b, + Author = {O. Kanjanatarakul and K. Suriya}, + Journal = {International Journal of Intelligent Technologies and Applied Statistics}, + Number = {2}, + Pages = {121--134}, + Title = {Sufficient number of observations for sales forecasts with limited information: A case of an innovative agro-industrial product}, + Volume = {6}, + Year = {2013}} + +@article{denoeux13b, + Author = {T. Den{\oe}ux}, + Journal = {International Journal of Approximate Reasoning}, + Title = {Likelihood-based belief function: justification and some extensions to low-quality data }, + Volume = "55", + Number = "7", + Pages="1535--1547", + Year = {2014}} + +@article{denoeux14a, +title = "Rejoinder on ``€œLikelihood-based belief function: Justification and some extensions to low-quality data''€ ", +journal = "International Journal of Approximate Reasoning ", +volume = "55", +number = "7", +pages = "1614--1617", +year = "2014", +author = "Thierry Den{\oe}ux" +} + + +@article{quost11, + Author = {B. Quost and M.-H. Masson and T. Den{\oe}ux}, + Journal = {International Journal of Approximate Reasoning}, + Number = {3}, + Pages = {353--374}, + Title = {Ensemble clustering in the belief functions framework}, + Volume = {52}, + Year = {2011}} + +@article{denoeux12, + Author = {T. Den{\oe}ux and M.-H. Masson}, + Journal = {Annals of Operations Research}, + Number = {1}, + Pages = {135--161}, + Title = {Evidential reasoning in large partially ordered sets. Application to multi-label classification, ensemble clustering and preference aggregation}, + Volume = {195}, + Year = {2012}} + +@inproceedings{ben_abdallah12, + Address = {Compi\`egne, France}, + Author = {N. {Ben Abdallah} and N. {Mouhous Voyneau} and T. Den{\oe}ux}, + Booktitle = {Belief functions: theory and applications (Proc. of the 2nd Int. Conf. on Belief Functions)}, + Editor = {T. Denoeux and M.-H. Masson}, + Pages = {393--400}, + Publisher = {Springer}, + Series = {Advances in Intelligent and Soft Computing}, + Number= {AISC 164}, + Title = {Combining statistical and expert evidence within the {D-S} framework: Application to hydrological return level estimation}, + Year = {2012}} + +@article{ben_abdallah13, + Author = {N. {Ben Abdallah} and N. {Mouhous Voyneau} and T. Den{\oe}ux}, + Journal = {International Journal of Approximate Reasoning}, + Title = {Combining statistical and expert evidence using belief functions: Application to centennial sea level estimation taking into account climate change}, + volume = {55}, + pages = {341--354}, + Year = {2014}} + +@article{ramasso13a, + Author = {E. Ramasso and T. Den{\oe}ux}, + Journal = {IEEE Transactions on Fuzzy Systems}, + volume = "21", + number = "6", + pages = "1--11", + Title = {Making use of partial knowledge about hidden states in {HMMs}: an approach based on belief functions}, + note = "http://dx.doi.org/10.1109/TFUZZ.2013.2259496", + Year = {2013}} + +@article{cherfi12, + Author = {Z. L. Cherfi and L. Oukhellou and E. C\^ome and T. Den{\oe}ux and P. Aknin}, + Date-Added = {2012-07-16 10:32:40 +0200}, + Date-Modified = {2012-07-16 10:34:21 +0200}, + Journal = {Soft Computing}, + Number = {5}, + Pages = {741-754}, + Title = {Partially supervised Independent Factor Analysis using soft labels elicited from multiple experts: Application to railway track circuit diagnosis}, + Volume = {16}, + Year = {2012}} + +@article{denoeux13, + Author = {T. Den{\oe}ux}, + Date-Added = {2011-10-12 14:46:30 +0200}, + Date-Modified = {2011-11-30 18:36:54 +0100}, + Journal = {IEEE Transactions on Knowledge and Data Engineering}, + Title = {Maximum likelihood estimation from Uncertain Data in the Belief Function Framework}, + volume= {25}, + number={1}, + Pages={119--130}, + Year = {2013}} + +@inproceedings{dubois10, + Address = {Oviedo, Spain}, + Author = {D. Dubois and T. Den{\oe}ux}, + Booktitle = {Combining soft computing and statistical methods in data analysis (Proceedings of SMPS 2010)}, + Editor = {C. Borgelt and G. G. Rodr\'iguez and W. Trutschnig and M. A. Lubiano and M. Angeles Gil and P. Grzegorzewski and O. Hryniewicz }, + Pages = {217--225}, + Publisher = {Springer}, + Series = {Advances in Intelligent and Soft Computing}, + Title = {Statistical Inference with Belief Functions and Possibility Measures: a discussion of basic assumptions}, + Year = {2010}} + + +@article{pichon10, + Author = {F. Pichon and T. Den{\oe}ux}, + Journal = {Journal of Automated Reasoning}, + Title = {The unnormalized Dempster's rule of combination: a new justification from the Least Commitment Principle and some extensions}, + volume ="45", + number = "1", + pages = "61--87", + Year = {2010}} + +@article{pichon12, + Author = {F. Pichon and T. Den{\oe}ux and D. Dubois}, + Journal = {International Journal of Approximate Reasoning}, + Title = {Relevance and truthfulness in information correction and fusion}, + volume ="53", + number = "2", + pages = "159--175", + Year = {2012}} + +@article{denoeux11a, + Author = {T. Den{\oe}ux}, + Date-Modified = {2011-10-12 14:46:27 +0200}, + Journal = {Fuzzy Sets and Systems}, + Number = {1}, + Pages = {72--91}, + Title = {Maximum likelihood estimation from fuzzy data using the Fuzzy {EM} algorithm}, + Volume = {18}, + Year = {2011}} + +@article{nassreddine10, + Author = {G. Nassreddine and F. Abdallah and T. Den{\oe}ux}, + Journal = {IEEE Transactions on Systems, Man and Cybernetics B}, + Number = {5}, + Pages = {1205--1218}, + Title = {State estimation using interval analysis and belief function theory: Application to dynamic vehicle localization}, + Volume = {40}, + Year = {2010}} + +@article{masson09a, + Author = {M.-H. Masson and T. Den{\oe}ux}, + Journal = {Pattern Recognition Letters}, + Pages = {1015--1026}, + Title = {{RECM:} Relational Evidential c-means algorithm}, + Volume = {30}, + Year = {2009}} + +@inproceedings{quost10, + Address = {Toulouse, France}, + Author = {B. Quost and T. Den{\oe}ux}, + Booktitle = {Proceedings of the 4th International Conference on Scalable Uncertainty Management (SUM{\'\i}2010)}, + Editor = {A. Deshpande and A. Hunter}, + Month = {September}, + Number = {LNAI-6379}, + Pages = {333-346}, + Publisher = {Springer-Verlag}, + Title = {Clustering fuzzy data using the fuzzy {EM} algorithm}, + Year = {2010}} + +@inproceedings{denoeux10, + Address = {Oviedeo, Spain}, + Author = {T. Den{\oe}ux}, + Booktitle = {Combining soft computing and statistical methods in data analysis (Proceedings of SMPS 2010)}, + Editor = {C. Borgelt et al.}, + Pages = {181-188}, + Publisher = {Springer}, + Series = {Advances in Intelligent and Soft Computing}, + Title = {Maximum likelihood from evidential data: an extension of the {EM} algorithm}, + Year = {2010}} + +@inproceedings{younes10, + Address = {Dortmund, Germany}, + Author = {Z. Younes and F. Abdallah and T. Den{\oe}ux}, + Booktitle = {Proceedings of IPMU 2010}, + Month = {July}, + Title = {Evidential multi-label classification approach to learning from data with imprecise labels}, + Year = {2010}} + +@inproceedings{masson09b, + Address = {Verona, Italy}, + Author = {M.-H. Masson and T. Den{\oe}ux}, + Booktitle = {Proceedings of the 9th European Conference on Symbolic and Quantitative Approaches to Reasoning with Uncertainty (ECSQARU 2009)}, + Editor = {C. Sossai and G. Chemello}, + Pages = {323-334}, + Publisher = {Springer-Verlag}, + Title = {Belief Functions and Cluster Ensembles}, + Year = {2009}} + +@article{masson11, + Author = {M.-H. Masson and T. Den{\oe}ux}, + Journal = {International Journal of Approximate Reasoning}, + Number = {1}, + Pages = {92--109}, + Title = {Ensemble clustering in the belief functions framework}, + Volume = {52}, + Year = {2011}} + +@article{denoeux09b, + Author = {T. Den{\oe}ux}, + Journal = {Information Sciences}, + Pages = {1362-1376}, + Title = {Extending stochastic ordering to belief functions on the real line}, + Volume = {179}, + Year = {2009}} + +@article{denoeux09a, + Author = {T. Denoeux and Z. Younes and F. Abdallah}, + Journal = {Artificial Intelligence}, + Number = {7-8}, + Pages = {479-499}, + Title = {Representing uncertainty on set-valued variables using belief functions}, + Volume = {174}, + Year = {2010}} + +@inproceedings{younes09, + Address = {Washington, DC, USA}, + Author = {Z. Younes and F. Abdallah and T. Den{\oe}ux}, + Booktitle = {Proceedings of the 3rd International Conference on Scalable Uncertainty Management (SUM 2009)}, + Number = {5785}, + Pages = {297-308}, + Publisher = {Springer-Verlag}, + Series = {LNAI}, + Title = {An Evidence-Theoretic k-Nearest Neighbor Rule for Multi-Label Classification}, + Year = {2009}} + +@article{come09, + Author = {E. C\^ome and L. Oukhellou and T. Den{\oe}ux and P. Aknin}, + Journal = {Pattern Recognition}, + Number = {3}, + Pages = {334--348}, + Title = {Learning from partially supervised data using mixture models and belief functions}, + Volume = {42}, + Year = {2009}} + +@inproceedings{younes08, + Address = {Lausanne, Switzerland}, + Author = {Z. Younes and F. Abdallah and T. Den{\oe}ux}, + Booktitle = {6th European Signal Processing Conference (EUSIPCO '08)}, + Title = {Multi-label classification algorithm derived from k-nearest neighbor rule with label dependencies}, + Year = {2008}} + +@article{aregui08, + Author = {A. Aregui and T. Den{\oe}ux}, + Journal = {International Journal of Approximate Reasoning}, + Number = {3}, + Pages = {575--594}, + Title = {Constructing Consonant Belief Functions from Sample Data using Confidence Sets of Pignistic Probabilities}, + Volume = {49}, + Year = {2008}} + +@inproceedings{nassreddine08, + Address = {Cologne, Germany}, + Author = {G. Nassreddine and F. Abdallah and T. Den{\oe}ux}, + Booktitle = {Proceedings of the 11th Int. Conf. on Information Fusion (FUSION '08)}, + Pages = {995--1002}, + Title = {Map matching algorithm using belief function theory}, + Year = {2008}} + +@article{masson08, + Author = {M.-H. Masson and T. Denoeux}, + Journal = {Pattern Recognition}, + Number = {4}, + Pages = {1384--1397}, + Title = {{ECM:} An evidential version of the fuzzy c-means algorithm}, + Volume = {41}, + Year = {2008}} + +@article{denoeux08, + Author = {T. Den{\oe}ux}, + Journal = {Artificial Intelligence}, + Pages = {234--264}, + Title = {Conjunctive and Disjunctive Combination of Belief Functions Induced by Non Distinct Bodies of Evidence}, + Volume = {172}, + Year = {2008}} + +@article{mercier08, + Author = {D. Mercier and B. Quost and T. Den{\oe}ux}, + Journal = {Information Fusion}, + Number = {2}, + Pages = {246--258}, + Title = {Refined modeling of sensor reliability in the belief function framework using contextual discounting}, + Volume = {9}, + Year = {2008}} + +@inproceedings{ben_yaghlane06, + Author = {Ben Yaghlane, A. and Den{\oe}ux, T. and Mellouli, K.}, + Booktitle = {Proceedings of the 11th Int. Conf. on Information Processing and Management of Uncertainty in Knowledge-Based Systems (IPMU '6}, + Pages = {403--411}, + Title = {Elicitation of expert opinions for constructing belief functions}, + Volume = {I}, + Year = {2006}} + +@article{quost07, + Author = {B. Quost and T. Den{\oe}ux and M.-H. Masson}, + Journal = {Pattern Recognition Letters}, + Number = {5}, + Pages = {644--653}, + Title = {Pairwise classifier combination using belief functions}, + Volume = {28}, + Year = {2007}} + +@inproceedings{denoeux07, + Address = {Lisboa, Portugal}, + Author = {T. Denoeux and M.-H. Masson}, + Booktitle = {Bulletin of the International Statistical Institute LXII (Proceedings of the 56th session of the International Statistical Institute, ISI '07)}, + Pages = {627-634}, + Title = {Dimensionality reduction and visualization of interval and fuzzy data: a survey}, + Year = {2007}} + +@inproceedings{aregui07c, + Address = {Hammamet, Tunisia}, + Author = {A. Aregui and T. Den{\oe}ux}, + Booktitle = {Proceedings of the 9th European Conference on Symbolic and Quantitative Approaches to Reasoning with Uncertainty (ECSQARU 2007)}, + Editor = {K. Mellouli}, + Month = {October/November}, + Pages = {344--355}, + Publisher = {Springer-Verlag}, + Title = {Consonant Belief Function induced by a Confidence Set of Pignistic Probabilities}, + Year = {2007}} + +@inproceedings{aregui07b, + Address = {Quebec, Canada}, + Author = {A. Aregui and T. Den{\oe}ux}, + Booktitle = {Proceedings of the 10th Int. Conf. on Information Fusion}, + Month = {July}, + Title = {Fusion of one-class classifiers in the belief function framework}, + Year = {2007}} + +@inproceedings{aregui07a, + Address = {Prague, Czech Republic}, + Author = {A. Aregui and T. Den{\oe}ux}, + Booktitle = {Proceedings of the Fifth International Symposium on Imprecise Probability: Theories and Applications (ISIPTA '07)}, + Editor = {G. {De Cooman} and J. Vejnarov\'a and M. Zaffalon}, + Month = {July}, + Pages = {11-20}, + Title = {Constructing Predictive Belief Functions from Continuous Sample Data Using Confidence Bands}, + Year = {2007}} + +@inproceedings{aregui06, + Address = {Paris}, + Author = {A. Aregui and T. Den{\oe}ux}, + Booktitle = {Proceedings of IPMU '06}, + Month = {July}, + Pages = {412-419}, + Title = {Novelty detection in the belief functions framework}, + Volume = {1}, + Year = {2006}} + +@article{masson06, + Author = {M.-H. Masson and T. Den{\oe}ux}, + Journal = {Fuzzy Sets and Systems}, + Number = {3}, + Pages = {319--340}, + Title = {Inferring a possibility distribution from empirical data}, + Volume = {157}, + Year = {2006}} + +@article{denoeux06c, + Author = {T. Den{\oe}ux and P. Smets}, + Journal = {IEEE Transactions on Systems, Man and Cybernetics B}, + Number = {6}, + Pages = {1395--1406}, + Title = {Classification using Belief Functions: the Relationship between the Case-based and Model-based Approaches}, + Volume = {36}, + Year = {2006}} + +@article{denoeux06b, + Author = {T. Den{\oe}ux}, + Journal = {International Journal of Approximate Reasoning}, + Number = {3}, + Pages = {228--252}, + Title = {Constructing Belief Functions from Sample Data Using Multinomial Confidence Regions}, + Volume = {42}, + Year = {2006}} + +@article{hebert06, + Author = {P.-A. H\'ebert and M.-H. Masson and T. Den{\oe}ux}, + Journal = {Computational Statistics and Data Analysis}, + Number = {1}, + Pages = {335--359}, + Title = {Fuzzy multidimensional scaling}, + Volume = {51}, + Year = {2006}} + +@inproceedings{denoeux06a, + Address = {Florence, Italy}, + Author = {T. Den{\oe}ux}, + Booktitle = {Proceedings of the 9th International Conference on Information Fusion}, + Month = {July}, + Note = {Paper \#114}, + Title = {The cautious rule of combination for belief functions and some extensions}, + Year = {2006}} + +@inproceedings{debiolles06, + Address = {Florence, Italy}, + Author = {A. Debiolles and L. Oukhellou and T. Den{\oe}ux and P. Aknin}, + Booktitle = {Proceedings of the 9th International Conference on Information Fusion}, + Month = {July}, + Title = {Output coding of spatially dependent subclassifiers in evidential framework. Application to the diagnosis of railway track-vehicle transmission system}, + Year = {2006}} + +@article{denoeux05a, + Author = {T. Den{\oe}ux and M. Masson and P.-A. H\'ebert}, + Journal = {Fuzzy Sets and Systems}, + Pages = {1--28}, + Title = {Nonparametric rank-based statistics and significance tests for fuzzy data}, + Volume = {153}, + Year = {2005}} + + +@article{demotier06, + Author = {S. D\'emotier and W. Sch\"on and T. Den{\oe}ux}, + Journal = {IEEE Transactions on Systems, Man and Cybernetics C}, + Number = {3}, + Pages = {382--396}, + Title = {Risk assessment based on weak Information using belief functions: a case study in water treatment}, + Volume = {36}, + Year = {2006}} + +@article{denoeux05, + Author = {T. Den{\oe}ux}, + Journal = {International Journal of Approximate Reasoning (To appear)}, + Title = {Constructing Belief Functions from Sample Data Using Multinomial Confidence Regions}, + Year = {2006}} + +@inproceedings{mercier05a, + Address = {Barcelona, Spain}, + Author = {D. Mercier and B. Quost and T. Den{\oe}ux}, + Booktitle = {Proceedings of ECSQARU'2005}, + Editor = {L. Godo}, + Month = {July}, + Pages = {552-562}, + Publisher = {Springer-Verlag}, + Title = {Contextual discounting of belief functions}, + Year = {2005}} + +@inproceedings{mercier05b, + Address = {Philadelphia, PA, USA}, + Author = {D. Mercier and G. Cron and T. Den{\oe}ux and M.-H. Masson}, + Booktitle = {Proceedings of FUSION'2005}, + Month = {July}, + Title = {Fusion of multi-level decision systems using the Transferable Belief Model}, + Year = {2005}} + +@article{masson04, + Author = {M.-H. Masson and T. Den{\oe}ux}, + Journal = {Pattern Recognition Letters}, + Number = {2}, + Pages = {163--171}, + Title = {Clustering Interval-valued Data using Belief Functions}, + Volume = {25}, + Year = {2004}} + +@article{denoeux04a, + Author = {T. Den{\oe}ux and M.-H. Masson}, + Journal = {IEEE Transactions on Fuzzy Systems}, + Number = {3}, + Pages = {336--349}, + Title = {Principal component analysis of fuzzy data using autoassociative neural networks}, + Volume = {12}, + Year = {2004}} + +@inproceedings{vannoorenberghe01, + Author = {P. Vannoorenberghe and T. Den{\oe}ux}, + Booktitle = {The 10th IEEE International Conference on Fuzzy Systems}, + Month = {December}, + Organization = {IEEE}, + Pages = {320--323}, + Title = {Likelihood-based vs. distance-based evidential classifier}, + Volume = {1}, + Year = {2001}} + +@article{denoeux04b, + Author = {T. Den{\oe}ux and M.-H. Masson}, + Journal = {IEEE Trans. on Systems, Man and Cybernetics B}, + Number = {1}, + Pages = {95--109}, + Title = {{EVCLUS}: Evidential Clustering of Proximity Data}, + Volume = {34}, + Year = {2004}} + +@article{petit04, + Author = {S. Petit-Renaud and T. Den{\oe}ux}, + Journal = {International Journal of Approximate Reasoning}, + Number = {1}, + Pages = {1--28}, + Title = {Nonparametric regression analysis of uncertain and imprecise data using belief functions}, + Volume = {35}, + Year = {2004}} + +@inproceedings{demotier03b, + Address = {Aalborg, Denmark}, + Author = {S. D{\'e}motier and T. Den{\oe}ux and W. Sch\"on}, + Booktitle = {Proceedings of ECQSARU'2003}, + Editor = {T. D. Nielsen and N. L. Zhang}, + Month = {July}, + Pages = {319--331}, + Publisher = {Springer-Verlag}, + Title = {Risk assessment in drinking water production using belief functions}, + Year = {2003}} + +@inproceedings{demotier03c, + Address = {Washington D.C., USA}, + Author = {S. D{\'e}motier and T. Den{\oe}ux and W. Sch\"on and K. Odeh}, + Booktitle = {Proceedings of 2003 IEEE International Conference on Systems, Man \& Cybernetics}, + Month = {October}, + Organization = {IEEE}, + Title = {A New Approach to Assess Risk in Water Treatment using the Belief Function Framework}, + Year = {2003}} + +@inproceedings{masson02a, + Address = {Annecy, France}, + Author = {M.-H. Masson and T. Den{\oe}ux}, + Booktitle = {Proceedings of IPMU'2002}, + Month = {July}, + Title = {Clustering of proximity data using belief functions}, + Year = {2002}} + +@article{masson02b, + Author = {M.-H. Masson and T. Den{\oe}ux}, + Journal = {Fuzzy Sets and Systems}, + Number = {3}, + Pages = {339--352}, + Title = {Multidimensional scaling of fuzzy dissimilarity data}, + Volume = {128}, + Year = {2002}} + +@article{denoeux02, + Author = {T. Den{\oe}ux and A. Ben Yaghlane}, + Journal = {International Journal of Approximate Reasoning}, + Number = {1-2}, + Pages = {77--101}, + Title = {Approximating the Combination of Belief Functions using the Fast Moebius Transform in a coarsened frame}, + Volume = {31}, + Year = {2002}} + +@inproceedings{ambroise01, + Address = {Compi{\"E}gne, France}, + Author = {C. Ambroise and T. Den{\oe}ux and G. Govaert and P. Smets.}, + Booktitle = {Proceedings of ASMDA {\'\i}01}, + Pages = {100-105}, + Title = {Learning from an imprecise teacher: probabilistic and evidential approaches}, + Year = {2001}} + +@incollection{yaghlane01, + Address = {Toulouse}, + Author = {A. {Ben Yaghlane} and T. Den{\oe}ux and K. Mellouli}, + Booktitle = {Proc. of ECSQARU'2001}, + Month = {September}, + Publisher = {Springer-Verlag}, + Title = {Coarsening Approximations of Belief Functions}, + Year = {2001}} + +@article{denoeux01a, + Author = {T. Den{\oe}ux and L. M. Zouhal}, + Journal = {Fuzzy Sets and Systems}, + Number = {3}, + Pages = {47-62}, + Title = {Handling possibilistic labels in pattern classification using evidential reasoning}, + Volume = {122}, + Year = 2001} + +@article{denoeux01b, + Author = {T. Den{\oe}ux}, + Journal = {International Journal of Uncertainty, Fuzziness and Knowledge-Based Systems}, + Number = {4}, + Pages = {437-460}, + Title = {Inner and outer approximation of belief structures using a hierarchical clustering approach}, + Volume = {9}, + Year = 2001} + +@article{valentin01, + Author = {N. Valentin and T. Den{\oe}ux}, + Journal = {Intelligent Data Analysis}, + Pages = {23-39}, + Title = {A neural network-based software sensor for coagulation control in a water treatment plant}, + Volume = {5}, + Year = 2001} + +@incollection{denoeux00, + Address = {Toulouse}, + Author = {T. Den{\oe}ux}, + Booktitle = {Induction symbolique et num\'erique \`a partir de donn\'ees}, + Editor = {E. Diday and Y. Kodratoff and P. Brito and M. Moulet}, + Pages = {435--445}, + Publisher = {C\'epadu\`es-Editions}, + Title = {G\'en\'eration de r\`egles par apprentissage contraint d'un perceptron multicouche}, + Year = 2000} + +@article{denoeux00a, + Author = {T. Den{\oe}ux}, + Journal = {IEEE Trans. on Systems, Man and Cybernetics A}, + Number = 2, + Pages = {131--150}, + Title = {A neural network classifier based on {Dempster-Shafer} theory}, + Volume = 30, + Year = 2000} + +@inproceedings{denoeux00b, + Address = {Madrid}, + Author = {T. Den{\oe}ux}, + Booktitle = {Proceedings of IPMU'2000}, + Month = {July}, + Pages = {125--132}, + Title = {Inner and outer clustering approximations of belief structures}, + Volume = 1, + Year = 2000} + +@article{denoeux00c, + Author = {T. Den{\oe}ux}, + Journal = {Fuzzy Sets and Systems}, + Number = 2, + Pages = {167--199}, + Title = {Modeling vague beliefs using fuzzy-valued belief structures}, + Volume = 116, + Year = 2000} + +@inproceedings{denoeux00d, + Address = {Nashville, TN}, + Author = {T. Den{\oe}ux and M. Skarstein-Bjanger}, + Booktitle = {Proceedings of SMC'2000}, + Month = {October}, + Pages = {2923--2928}, + Publisher = {IEEE}, + Title = {Induction of decision trees for partially classified data}, + Year = 2000} + +@article{denoeux00e, + Author = {T. Den{\oe}ux and M.-H. Masson}, + Journal = {Pattern Recognition Letters}, + Pages = {83--92}, + Title = {Multidimensional scaling of interval-valued dissimilarity data}, + Volume = 21, + Year = 2000} + +@incollection{denoeux98b, + Address = {Boston}, + Author = {T. Den{\oe}ux}, + Booktitle = {Information, Uncertainty and Fusion}, + Editor = {B. Bouchon-Meunier and R. R. Yager and L. A. Zadeh}, + Pages = {269--281}, + Publisher = {Kluwer Academic Publishers}, + Title = {Allowing imprecision in belief representation using fuzzy-valued belief structures}, + Year = 2000} + +@inproceedings{fotoohi00a, + Address = {Paris}, + Author = {F. Fotoohi and T. Den{\oe}ux}, + Booktitle = {2\`eme Symposium International Qu\'ebec-Paris sur La R\'ehabilitation et L'am\'enagement Des Cours D'eau En Milieu Urbain}, + Month = {october}, + Organization = {AGHTM}, + Pages = {37--49}, + Title = {Outils de surveillance et de gestion de l'eau et de l'environnement}, + Year = 2000} + +@article{Fotoohi00b, + Author = {F. Fotoohi and T. Den{\oe}ux}, + Journal = {La Houille Blanche}, + Pages = {36-}, + Title = {Outils Num\'eriques de Ma\^{\i}trise Des Risques Vis-\`A-Vis de L{\'\i}environnement}, + Volume = {7/8}, + Year = 2000} + +@inproceedings{francois00, + Address = {Madrid}, + Author = {J. Fran{\c c}ois and Y. Grandvalet and T. Den{\oe}ux and J.-M. Roger}, + Booktitle = {Proceedings of IPMU'2000}, + Month = {July}, + Pages = {111--118}, + Title = {Bagging belief structures in {Dempster-Shafer K-NN} rule}, + Volume = 1, + Year = 2000} + +@inproceedings{schon00, + Address = {Montpellier}, + Author = {W. Sch{\"o}n and K. Odeh and T. Den{\oe}ux and F. Fotoohi}, + Booktitle = {12e Colloque National de S\^uret\'e de Fonctionnement}, + Month = {March}, + Pages = {695--701}, + Title = {Ma\^{\i}trise des risques dans le domaine de l'eau potable}, + Year = 2000} + +@inproceedings{valentin00, + Address = {Poitiers}, + Author = {N. Valentin and T. Den{\oe}ux}, + Booktitle = {14\`emes Journ\'ees Information Eaux}, + Month = {September}, + Pages = {23-(1-11)}, + Title = {Mod\'elisation du proc\'ed\'e de coagulation en traitement d'eau potable \`a l'aide de r\'eseaux de neurones artificiels}, + Volume = 1, + Year = 2000} + +@article{denoeux99, + Author = {T. Den{\oe}ux}, + Journal = {International Journal of Approximate Reasoning}, + Pages = {79--111}, + Title = {Reasoning with imprecise belief structures}, + Volume = 20, + Year = 1999} + +@inproceedings{denoeux99c, + Address = {Valenciennes}, + Author = {T. Den{\oe}ux}, + Booktitle = {Rencontres Francophones sur la Logique Floue et ses Applications}, + Month = {October}, + Pages = {13--20}, + Publisher = {C\'epadu\`es}, + Title = {Mod\'elisation de l'impr\'ecis et de l'incertain en apprentissage supervis\'e par la th\'eorie des fonctions de croyance (conf\'erence invit\'ee)}, + Year = 1999} + +@inproceedings{masson99, + Address = {Valenciennes}, + Author = {M. Masson and T. Den{\oe}ux}, + Booktitle = {Rencontres Francophones sur la Logique Floue et ses Applications}, + Month = {October}, + Pages = {39--45}, + Publisher = {C\'epadu\`es}, + Title = {Positionnement multidimensionnel de donn\'ees de dissimilarit\'e floues}, + Year = 1999} + +@inproceedings{petit99a, + Address = {London}, + Author = {S. Petit-Renaud and T. Den{\oe}ux}, + Booktitle = {Symbolic and quantitative approaches to reasoning and uncertainty (ECSQARU'99)}, + Editor = {A. Hunter and S. Pearsons}, + Month = {June}, + Pages = {340--351}, + Publisher = {Springer Verlag}, + Title = {Handling different forms of uncertainty in regression analysis: a fuzzy belief structure approach}, + Year = 1999} + +@inproceedings{petit99b, + Address = {Seoul}, + Author = {S. Petit-Renaud and T. Den{\oe}ux}, + Booktitle = {Proceedings of FUZZ-IEEE'99}, + Month = {August}, + Pages = {1229--1234}, + Title = {Regression analysis using fuzzy evidence theory}, + Volume = 3, + Year = 1999} + +@inproceedings{petit99c, + Address = {Valenciennes}, + Author = {S. Petit-Renaud and T. Den{\oe}ux}, + Booktitle = {Rencontres Francophones sur la Logique Floue et ses Applications}, + Month = {October}, + Pages = {169--176}, + Publisher = {C\'epadu\`es}, + Title = {Application de la th\'eorie des fonctions de croyance en r\'egression}, + Year = 1999} + +@inproceedings{rombaut99, + Address = {London}, + Author = {M. Rombaut and I. Jarkass and T. Den{\oe}ux}, + Booktitle = {Symbolic and quantitative approaches to reasoning and uncertainty (ECSQARU'99)}, + Editor = {A. Hunter and S. Pearsons}, + Month = {June}, + Pages = {352--361}, + Publisher = {Springer Verlag}, + Title = {State recognition in discrete dynamical systems using Petri nets and evidence theory}, + Year = 1999} + +@incollection{bohme99, + Address = {New-York}, + Author = {T. J. B{\"o}hme, N. Valentin, C. S. Cox and T. Den{\oe}ux}, + Booktitle = {Intelligent Engineering Systems through artificial neural networks 9}, + Editor = {C. H. Dagli et al.}, + Pages = {637--644}, + Publisher = {ASME Press}, + Title = {Comparison of autoassociative neural networks and {Kohonen} maps for signal failure detection and reconstruction}, + Year = 1999} + +@incollection{valentin99a, + Address = {Warsaw}, + Author = {N. Valentin and F. Fotoohi and T. Den{\oe}ux}, + Booktitle = {Proceedings of EANN'99}, + Month = {september}, + Pages = {165--170}, + Title = {Modeling of coagulant dosing in a water treatment plant}, + Year = 1999} + +@incollection{valentin99b, + Address = {Washington D.C.}, + Author = {N. Valentin and T. Den{\oe}ux and F. Fotoohi}, + Booktitle = {Proceedings of IJCNN'99}, + Month = {september}, + Publisher = {IEEE}, + Title = {A hybrid neural network based system for optimization of coagulant dosing in a water treatment plant}, + Year = 1999} + +@incollection{valentin99c, + Address = {Tampa, Florida}, + Author = {N. Valentin and T. Den{\oe}ux}, + Booktitle = {Water Quality Technology Conference}, + Month = {october}, + Organization = {AWWA}, + Title = {Prediction of optimal coagulant dosing rate in a water treatment plant using neural networks}, + Year = 1999} + +@article{denoeux97a, + Author = {T. Den{\oe}ux}, + Journal = {Traitement du Signal}, + Number = 5, + Pages = {443--451}, + Title = {Application du Mod\`ele des Croyances Transf\'erables en Reconnaissance de Formes}, + Volume = 14, + Year = 1998} + +@article{denoeux98a, + Author = {T. Den{\oe}ux and M. Masson and B. Dubuisson}, + Journal = {Journal Europ\'een des Syst\`emes Automatis\'es (RAIRO-APII-JESA)}, + Number = {9-10}, + Pages = {1509--1539}, + Title = {Advanced Pattern Recognition Techniques for System Monitoring and Diagnosis: A Survey}, + Volume = 31, + Year = 1998} + +@incollection{boisseau95a, + Adress = {Singapore}, + Author = {J.~M. Boisseau and B. Monier and O. Lef{\`e}vre and T.~Den{\oe}ux and X.~Ding}, + Booktitle = {Industrial Applications of Neural Networks}, + Editor = {F. Fogelman-Souli{\'e} and P. Gallinari}, + Pages = {223--231}, + Publisher = {World Scientific}, + Title = {Highway Traffic forecasting using Artificial Neural Networks}, + Year = 1998} + +@inproceedings{petit98a, + Address = {Munich}, + Author = {S. Petit-Renaud and T. Den{\oe}ux}, + Booktitle = {Proceedings of Fuzzy-Neuro Systems'98}, + Editor = {W. Brauer}, + Month = {March}, + Pages = {322--329}, + Publisher = {Infix}, + Title = {A Fuzzy-neuro system for reconstruction of multi-sensor information}, + Year = 1998} + +@inproceedings{petit98b, + Address = {Saint-Paul, USA}, + Author = {S. Petit-Renaud and T. Den{\oe}ux}, + Booktitle = {1998 IEEE Workshop on Emerging Technologies, Intelligent Measurement and Virtual systems for instrumentation and measurement}, + Month = {May}, + Pages = {78--84}, + Title = {A neuro-fuzzy system for missing data reconstruction}, + Year = 1998} + +@article{zouhal97b, + Author = {L. M. Zouhal and T. Den{\oe}ux}, + Journal = {IEEE Trans. on Systems, Man and Cybernetics C}, + Number = 2, + Pages = {263--271}, + Title = {An evidence-theoretic $k$-{NN} rule with parameter optimization}, + Volume = 28, + Year = 1998} + +@article{denoeux96b, + Author = {T. Den{\oe}ux}, + Journal = {Pattern Recognition}, + Number = 7, + Pages = {1095--1107}, + Title = {Analysis of evidence-theoretic decision rules for pattern classification}, + Volume = 30, + Year = 1997} + +@article{denoeux97b, + Author = {T. Den{\oe}ux and G. Govaert}, + Journal = {Comptes-Rendus de l'Acad\'emie des Sciences de Paris, S\'erie I}, + Pages = {673--678}, + Title = {Un algorithme de classification automatique non param\'etrique}, + Volume = 324, + Year = 1997} + +@inproceedings{denoeux97c, + Address = {Houston}, + Author = {T. Den{\oe}ux}, + Booktitle = {Proceedings of the 1997 International Conference on Neural Networks (ICNN'97)}, + Month = {June}, + Pages = {199--203}, + Publisher = {IEEE}, + Title = {Function approximation in the framework of evidence theory: A connectionist approach}, + Volume = 1, + Year = 1997} + +@inproceedings{zouhal97a, + Address = {Zurich}, + Author = {L. M. Zouhal and T. Den{\oe}ux}, + Booktitle = {Proceedings of the Second International Symposium on Fuzzy Logic and Applications ISFL'97}, + Month = {February}, + Pages = {294--300}, + Publisher = {ICSC Academic Press}, + Title = {Generalizing the evidence-theoretic $k$-{NN} rule to fuzzy pattern recognition}, + Year = 1997} + +@incollection{denoeux95d, + Author = {Den{\oe}ux, T.}, + Booktitle = {Handbook of Neural Computation}, + Editor = {E. Fiesler and R. Beale}, + Publisher = {Oxford University Press and Institute of Physics Publishing}, + Title = {Chapter {F1.1}: {Classification}}, + Year = 1996} + +@inproceedings{denoeux96c, + Address = {Lille}, + Author = {T. Den{\oe}ux and G. Govaert}, + Booktitle = {CESA'96 IMACS Multiconference. Symposium on Control, Optimization and Supervision}, + Editor = {P. Borne et al.}, + Month = {July}, + Pages = {104--109}, + Title = {Combined supervised and unsupervised learning for system diagnosis using {Dempster-Shafer} theory}, + Volume = 1, + Year = 1996} + +@incollection{ding95, + Address = {Chichester}, + Author = {X. Ding and S. Canu and T. Den{\oe}ux}, + Booktitle = {Neural networks and their application}, + Editor = {J. G. Taylor}, + Pages = {153--167}, + Publisher = {John Wiley and Sons}, + Title = {Neural Network based models for forecasting}, + Year = 1996} + +@article{gong95b, + Author = {N. Gong and T. Den{\oe}ux}, + Journal = {Journal of Systems Engineering}, + Pages = {137--147}, + Title = {Urban storm water pollution forecasting using recurrent neural networks}, + Volume = 6, + Year = 1996} + +@article{gong95c, + Author = {N. Gong and T. Den{\oe}ux and J.-L. Bertrand-Krajewski}, + Journal = {Water Science and Technology}, + Number = 9, + Title = {Neural networks for solid transport modeling in sewer systems during storm events}, + Volume = 33, + Year = 1996} + +@article{gong95d, + Author = {N. Gong and X. Ding and T. Den{\oe}ux and J.-L. Bertrand-Krajewski and M. Cl{\'e}ment}, + Journal = {Water Science and Technology}, + Number = 1, + Title = {Stormnet: A connectionist model for dynamic management of wastewater treatment plants during storm events}, + Volume = 33, + Year = 1996} + +@article{lengelle95, + Author = {R. Lengell{\'e} and T. Den{\oe}ux}, + Journal = {Neural Networks}, + Pages = {83--97}, + Title = {Training {MLPs} layer by layer using an objective function for internal representations.}, + Volume = 9, + Year = 1996} + +@inproceedings{gong96b, + Address = {Hannover}, + Author = {N. Gong and T.~Den{\oe}ux and J.-L. Bertrand-Krajewski}, + Booktitle = {7th International Conference on Urban Storm Drainage}, + Month = {September}, + Pages = {869--874}, + Title = {Assessment of neural networks for solid transport modeling in sewer systems}, + Volume = 2, + Year = 1996} + +@inproceedings{gong96a, + Address = {Quebec City, Canada}, + Author = {N. Gong and X. Ding and T. Den{\oe}ux and M. Cl{\'e}ment and J.-L. Bertrand-Krajewski}, + Booktitle = {Water Environment Federation Specialty Conference, Urban wet weather pollution~: controlling sewer overflows and stormwater runoff}, + Month = {June}, + Title = {Stormnet: A neural network model for flow and pollutant transport in sewer systems during wet weather}, + Year = 1996} + +@inproceedings{zouhal96, + Address = {Nancy}, + Author = {L. M. Zouhal and T. Den{\oe}ux}, + Booktitle = {Rencontres Francophones sur la Logique Floue et ses Applications}, + Month = {December}, + Pages = {3--8}, + Publisher = {C\'epadu\`es}, + Title = {Reconnaissance de formes floues par la th\'eorie de {Dempster} et {Shafer}}, + Year = 1996} + +@inproceedings{boisseau95b, + Address = {Montpellier}, + Author = {J. M. Boisseau and B. Monier and O. Lef{\`e}vre and T. Den{\oe}ux and X. Ding}, + Booktitle = {Les Syst\`emes Intelligents dans les Entreprises}, + Month = {June}, + Publisher = {{EC2}}, + Title = {Pr\'evision de trafic autoroutier par r\'eseaux de neurones artificiels}, + Year = 1995} + +@article{denoeux95a, + Author = {T. Den{\oe}ux}, + Journal = {IEEE Trans. on Systems, Man and Cybernetics}, + Number = 05, + Pages = {804--813}, + Title = {A $k$-nearest neighbor classification rule based on { Dempster-Shafer} Theory}, + Volume = 25, + Year = 1995} + +@article{denoeux95b, + Author = {T. Den{\oe}ux and P. Rizand}, + Journal = {Neural Computing and Applications}, + Pages = {50--61}, + Title = {Analysis of radar images for rainfall forecasting using neural networks}, + Volume = 3, + Year = 1995} + +@inproceedings{denoeux95e, + Address = {Vancouver}, + Author = {T. Den{\oe}ux}, + Booktitle = {IEEE International Conference on Systems, Man and Cybernetics}, + Month = {October}, + Pages = {712--717}, + Title = {An evidence-theoretic neural network classifier}, + Volume = 3, + Year = 1995} + +@inproceedings{gong95a, + Address = {Helsinski}, + Author = {N. Gong and X. Ding and T. Den{\oe}ux}, + Booktitle = {Engineering Applications of Artificial Neural Networks (proceedings of the International Conference EANN'95)}, + Editor = {A. B. Bulsari and S. Kallio}, + Month = {August}, + Organization = {Finnish Artificial Intelligence Society}, + Pages = {307--314}, + Title = {Urban storm water pollution forecasting using recurrent neural networks}, + Year = 1995} + +@article{jacquet95, + Author = {G. Jacquet and P. Rizand. and X. Ding and T. Den{\oe}ux}, + Journal = {Annales des Ponts et Chauss\'ees}, + Number = 74, + Pages = {15--29}, + Title = {Vers une am\'elioration de la pr\'evision quantitative des pr\'ecipitations par radar m\'et\'eorologique~: l'apport des r\'eseaux de neurones}, + Year = 1995} + +@inproceedings{karouia95a, + Address = {Brussels}, + Author = {M. Karouia and T. Den{\oe}ux and R. Lengell{\'e}}, + Booktitle = {Third European Symposium on Artificial Neural Networks}, + Month = {April}, + Pages = {347--352}, + Publisher = {D facto publications}, + Title = {Performance analysis of a {MLP} weight initialization algorithm}, + Year = 1995} + +@inproceedings{karouia95b, + Address = {Paris}, + Author = {M. Karouia and T. Den{\oe}ux and R. Lengell{\'e}}, + Booktitle = {International Conference of Artificial Neural Networks (ICANN'95)}, + Month = {October}, + Organization = {EC2}, + Pages = {33--38}, + Title = {Influence of weight initialization on multilayer perceptron performance}, + Volume = 1, + Year = 1995} + +@inproceedings{denoeux95c, + Address = {Aachen}, + Author = {T. Trautmann and M. Cl{\'e}ment and T. Den{\oe}ux and T. Wittig.}, + Booktitle = {Proceedings of EUFIT'95}, + Month = {August}, + Pages = {1603--1609}, + Title = {Application of intelligent techniques to river quality monitoring.}, + Volume = 3, + Year = 1995} + +@inproceedings{trautmann95, + Address = {Perth, Australia}, + Author = {T. Trautmann and T. Den{\oe}ux}, + Booktitle = {Proceedings of ICNN'95}, + Month = {November}, + Organization = {IEEE}, + Pages = {73--78}, + Title = {Comparison of dynamic feature map models for environmental monitoring}, + Volume = 1, + Year = 1995} + +@inproceedings{zouhal95a, + Address = {Prague}, + Author = {L. M. Zouhal and T. Den{\oe}ux}, + Booktitle = {Proc. of the 6th Int. Conf. on Computer Analysis of Images and Patterns (CAIP'95)}, + Month = {September}, + Pages = {310--317}, + Publisher = {Springer Verlag}, + Title = {An Adaptive $k$-{NN} rule based on {Dempster-Shafer} theory}, + Year = 1995} + +@inproceedings{zouhal95b, + Address = {Juan les Pins}, + Author = {L. M. Zouhal and T. Den{\oe}ux}, + Booktitle = {Actes du Quinzi\`eme Colloque GRETSI}, + Month = {Septembre}, + Pages = {689--692}, + Title = {Une m\'ethode de discrimination non param\'etrique bas\'ee sur la th\'eorie de {Dempster et Shafer}}, + Year = 1995} + +@inproceedings{zouhal95c, + Address = {Aachen}, + Author = {L. M. Zouhal and T. Den{\oe}ux}, + Booktitle = {Proceedings of EUFIT'95}, + Month = {August}, + Pages = {1319--1325}, + Title = {A comparison between fuzzy and evidence-theoretic $k$-{NN} rules for pattern recognition}, + Volume = 3, + Year = 1995} + +@incollection{denoeux94, + Address = {Amsterdam}, + Author = {T. Den{\oe}ux}, + Booktitle = {Pattern Recognition in Practice IV}, + Editor = {E. S. Gelsema and L. N. Kanal}, + Pages = {13--24}, + Publisher = {Elsevier}, + Title = {Application of evidence theory to $k$-{NN} pattern classification}, + Year = 1994} + +@inproceedings{karouia94, + Address = {Marseilles, France}, + Author = {M. Karouia and R. Lengell{\'e} and T. Den{\oe}ux}, + Booktitle = {Neural Networks and their Applications}, + Month = {December}, + Organization = {IUSM}, + Pages = {171--180}, + Title = {Weight initialization in {BP} networks using discriminant analysis techniques}, + Year = 1994} + +@incollection{trautmann94a, + Address = {New-York}, + Author = {T. Trautmann and T. Den{\oe}ux}, + Booktitle = {Intelligent Engineering Systems through artificial neural networks Vol. 4}, + Editor = {C. H. Dagli and B. R. Fern{\'a}ndez and J. Ghosh and R. T. S. Kumara}, + Pages = {17--22}, + Publisher = {ASME Press}, + Title = {A Constructive Algorithm for {S.O.M.} Applied to Water Quality Monitoring}, + Year = 1994} + +@inproceedings{trautmann94b, + Address = {Marseilles, France}, + Author = {T. Trautmann and T. Den{\oe}ux}, + Booktitle = {Neural Networks and their Applications}, + Month = {December}, + Organization = {IUSM}, + Pages = {445--452}, + Title = {{BungySOM: A} constructive algorithm for self-organizing maps}, + Year = 1994} + +@inproceedings{clement93, + Address = {Brussels}, + Author = {Cl{\'e}ment, M. and Den{\oe}ux, T. and Trautmann, T.}, + Booktitle = {Advanced Human Computer Interaction}, + Editor = {S. Pfleger and J. Goncalves and K. Varghese}, + Month = {November}, + Pages = {295--304}, + Publisher = {Springer-Verlag}, + Title = {A data fusion system for river monitoring}, + Year = 1993} + +@article{denoeux93a, + Author = {T. Den{\oe}ux and R. Lengell{\'e}}, + Journal = {Neural Networks}, + Pages = {351--363}, + Title = {Initializing back-propagation networks with prototypes}, + Volume = 6, + Year = 1993} + +@incollection{denoeux93b, + Address = {Toulouse}, + Author = {Den{\oe}ux, T.}, + Booktitle = {Apprentissage Symbolique: Une approche de l'Intelligence Artificielle}, + Editor = {R. S. Michalski and J. G. Carbonell and T. M. Mitchell and Y. Kodratoff}, + Pages = {471-533}, + Publisher = {Cepadu{\`e}s-Editions}, + Title = {Les proc{\'e}dures d'apprentissage connexionnistes (traduction et commentaire de l'article de {G.I. Hinton})}, + Year = 1993} + +@incollection{ding93, + Address = {London}, + Author = {X. Ding and T. Den{\oe}ux and F. Helloco}, + Booktitle = {Proceedings of ICANN'93}, + Editor = {S. Gielen and B. Kappen}, + Pages = {962--967}, + Publisher = {Springer-Verlag}, + Title = {Tracking rain cells in radar images using multilayer neural networks}, + Year = 1993} + +@incollection{karouia93, + Address = {New-York}, + Author = {M. Karouia and R. Lengell{\'e} and T. Den{\oe}ux}, + Booktitle = {Intelligent Engineering Systems through artificial neural networks Vol. 3}, + Editor = {C. H. Dagli and L. I. Burke and B. R. Fernandez and J. Ghosh}, + Pages = {221--226}, + Publisher = {ASME Press}, + Title = {Performance comparison of two constructive algorithms for multilayer perceptrons.}, + Year = 1993} + +@incollection{denoeux92b, + Address = {Amsterdam}, + Author = {Den{\oe}ux, T.}, + Booktitle = {Artificial Neural Networks II}, + Editor = {I. Aleksander and J. Taylor}, + Pages = {711--714}, + Publisher = {North-Holland}, + Title = {Generation of symbolic rules in back-propagation networks}, + Year = 1992} + +@incollection{denoeux92c, + Address = {New-York}, + Author = {T. Den{\oe}ux and R. Lengell{\'e}}, + Booktitle = {Intelligent Engineering Systems through artificial neural networks Vol. 2}, + Editor = {C. H. Dagli and L. I. Burke and Y. C. Shin}, + Pages = {253--258}, + Publisher = {ASME Press}, + Title = {Production rules generation and refinement in {BP} networks.}, + Year = 1992} + +@incollection{lengelle92, + Address = {Amsterdam}, + Author = {Lengell{\'e}, R. and Den{\oe}ux, T.}, + Booktitle = {Artificial Neural Networks II}, + Editor = {I. Aleksander and J. Taylor}, + Pages = {995--998}, + Publisher = {North-Holland}, + Title = {Optimizing Multilayer Networks Layer per Layer without Back-Propagation}, + Year = 1992} + +@incollection{wiklicky92, + Address = {Amsterdam}, + Author = {Wiklicky, H. and Den{\oe}ux, T. and Lafuente, A. and Olarte, J. and Rementeria, S. and Walravens, V.}, + Booktitle = {Artificial Neural Networks II}, + Editor = {I. Aleksander and J. Taylor}, + Pages = {1031--1034}, + Publisher = {North-Holland}, + Title = {A tripartite framework for artificial neural networks}, + Year = 1992} + +@inproceedings{denoeux91a, + Address = {New-York}, + Author = {Den{\oe}ux, T. and Einfalt, T. and Jacquet, G.}, + Booktitle = {Hydrological Applications of Weather Radar}, + Editor = {I. D. Cluckie and C. G. Collier}, + Pages = {349--358}, + Publisher = {Ellis Horwood}, + Title = {On the Evaluation of Radar Rainfall Forecasts}, + Year = 1991} + +@inproceedings{denoeux91b, + Address = {Paris}, + Author = {Den{\oe}ux, T. and Sobral, R. and Langlois, T. and Bruchet, A.}, + Booktitle = {Convention IA 91}, + Pages = {383--399}, + Publisher = {Herm\`es}, + Title = {Interpr\'etation de pyrochromatogrammes par r\'eseaux de neurones artificiels}, + Year = 1991} + +@inproceedings{denoeux91c, + Address = {Amsterdam}, + Author = {Den{\oe}ux, T. and Lengell{\'e}, R. and Canu, S.}, + Booktitle = {Artificial Neural Networks}, + Editor = {T. Kohonen and K. M{\"a}kisara and O. Simula and J. Kangas}, + Pages = {623--628}, + Publisher = {North-Holland}, + Title = {Initialization of weights in a feedforward neural network using prototypes}, + Year = 1991} + +@inproceedings{denoeux91d, + Address = {Strasbourg}, + Author = {Den{\oe}ux, T. and Sobral, R. and Depierre, J.-F.}, + Booktitle = {Colloque sur le rendement des r\'eseaux d'eau}, + Month = {Juin}, + Organization = {AGHTM}, + Pages = {191--200}, + Title = {D\'etection de fuites dans un r\'eseau de distribution d'eau potable par comparaison entre les consommations pr\'evues et mesur\'ees}, + Year = 1991} + +@article{denoeux91e, + Author = {T. Den{\oe}ux and T. Einfalt and G. Jacquet}, + Journal = {Journal of Hydrology}, + Pages = {353--371}, + Title = {Determination in real time of the reliability of radar rainfall forecasts.}, + Volume = 122, + Year = 1991} + +@inproceedings{einfalt91a, + Address = {New-York}, + Author = {Einfalt, T. and Den{\oe}ux, T.}, + Booktitle = {Hydrological Applications of Weather Radar}, + Editor = {I. D. Cluckie and C. G. Collier}, + Pages = {452--458}, + Publisher = {Ellis Horwood}, + Title = {Never Expect a Perfect Forecast}, + Year = 1991} + +@inproceedings{einfalt91b, + Address = {New-York}, + Author = {Einfalt, T. and Den{\oe}ux, T. and Jacquet, G.}, + Booktitle = {Hydrological Applications of Weather Radar}, + Editor = {I. D. Cluckie and C. G. Collier}, + Pages = {359--367}, + Publisher = {Ellis Horwood}, + Title = {The Development of the {SCOUT II.0} Rainfall Forecasting Method}, + Year = 1991} + +@inproceedings{lengelle91, + Address = {New-York}, + Author = {Lengell{\'e}, R. and Hao, Y. and Schaltenbrand, N. and Den{\oe}ux, T.}, + Booktitle = {Intelligent Engineering Systems Through Artificial Neural Networks}, + Editor = {C. H. Dagli and S. R. T. Kumara and Y. C. Shin}, + Pages = {299--304}, + Publisher = {ASME Press}, + Title = {Ambiguity and distance rejection in multilayer neural networks}, + Year = 1991} + +@inproceedings{andrieu90, + Address = {Dordrecht}, + Author = {Andrieu, H. and Creutin, J. D. and Delrieu, G. and Den{\oe}ux, T. and Jacquet, G.}, + Booktitle = {Weather Radar Networking. Seminar on COST Project 73}, + Editor = {C. G. Collier and M. Chapuis}, + Month = {September}, + Organization = {Commission of the European Communities}, + Pages = {492--496}, + Publisher = {Kluwer Academic Publishers}, + Title = {Evaluation of {French} National Weather Service Radar Network by Hydrologist Research}, + Year = 1990} + +@inproceedings{clement90, + Address = {Avignon}, + Author = {Cl{\'e}ment, M. and Den{\oe}ux, T.}, + Booktitle = {Actes des Dixi\`emes Journ\'ees Internationales sur les Syst\`emes Experts et leurs Applications, Conf\'erence sectorielle Intelligence Artificielle et G\'enie Electrique}, + Month = {Mai}, + Organization = {EC2}, + Pages = {235--249}, + Title = {L'apport Des Syst\`emes Experts \`A la Maintenance Des R\'eseaux {d'Infrastructure} . {Le} Cas Des R\'eseaux \'Electriques {MT} A\'eriens}, + Year = 1990} + +@article{einfalt90, + Author = {T. Einfalt and T. Den{\oe}ux and G. Jacquet}, + Journal = {Journal of Hydrology}, + Pages = {229--244}, + Title = {A radar rainfall forecasting method designed for hydrological purposes}, + Volume = 114, + Year = 1990} + +@inproceedings{denoeux89, + Address = {Strbsk\'e Pleso}, + Author = {Den{\oe}ux, T. and Einfalt, T. and Jacquet, G.}, + Booktitle = {Proceedings of the International Conference on Topical Problems in Urban Drainage and in Industrial Plant Systems}, + Month = {April}, + Organization = {Dom Techniky CSVTS}, + Pages = {73-75}, + Title = {Reliability of Radar Rainfall Forecasts}, + Year = 1989} + +@inproceedings{denoeux87, + Address = {Lausanne}, + Author = {Den{\oe}ux, T. and Jacquet, G. and Einfalt , T.}, + Booktitle = {Proceedings of the Fourth Conference on Urban Storm Drainage, Topics in Urban Storm Water Quality, Planning and Management}, + Month = {August}, + Organization = {IAHR}, + Pages = {289-290}, + Title = {Introduction of a Weather Radar as an Operational Tool}, + Year = 1987} + +@inproceedings{einfalt87a, + Address = {Lausanne}, + Author = {Einfalt, T and Den{\oe}ux, T.}, + Booktitle = {Proceedings of the Fourth Conference on Urban Storm Drainage, Topics in Urban Drainage Hydraulics and Hydrology}, + Month = {August}, + Organization = {IAHR}, + Pages = {47--48}, + Title = {Radar Rainfall Forecasting for Real Time Control of a Sewer System}, + Year = 1987} + +@inproceedings{einfalt87b, + Address = {Antibes}, + Author = {Einfalt, T. and Den{\oe}ux, T.}, + Booktitle = {Reconnaissance des Formes et Intelligence Artificielle}, + Month = {Novembre}, + Organization = {AFCET}, + Pages = {467-472}, + Publisher = {Dunod}, + Title = {Utilisation d'Images Radar en Pr\'evision de Pluie}, + Year = 1987} + +@inproceedings{jacquet87, + Address = {Lausanne}, + Author = {Jacquet, G. and Andrieu, H. and Den{\oe}ux, T.}, + Booktitle = {Proceedings of the Fourth Conference on Urban Storm Drainage, Topics in Urban Drainage Hydraulics and Hydrology}, + Month = {August}, + Organization = {IAHR}, + Pages = {25--30}, + Title = {About Radar Rainfall Measurement}, + Year = 1987} + +@inproceedings{jacquet86, + Address = {Paris}, + Author = {Jacquet, G. and Einfalt, T.and Den{\oe}ux, T. and Andrieu, H. and David, P.}, + Booktitle = {Eau et Informatique}, + Month = {Mai}, + Pages = {67--75}, + Publisher = {Presses de l'Ecole Nationale des Ponts et Chauss\'ees}, + Title = {Principes d'\'evaluation des m\'ethodes de mesure et de Pr\'evision de Pluie par Radar en Hydrologie Urbaine}, + Year = 1986}