ENG: Editing with Neighbor Graphs

Description Usage Arguments Details Value References Examples

Description

Similarity-based filter for removing label noise from a dataset as a preprocessing step of classification. For more information, see 'Details' and 'References' sections.

Usage

1
2
3
4
5
## S3 method for class 'formula'
ENG(formula, data, ...)

## Default S3 method:
ENG(x, graph = "RNG", classColumn = ncol(x), ...)

Arguments

formula

A formula describing the classification variable and the attributes to be used.

data, x

Data frame containing the tranining dataset to be filtered.

...

Optional parameters to be passed to other methods.

graph

Character indicating the type of graph to be constructed. It can be chosen between 'GG' (Gabriel Graph) and 'RNG' (Relative Neighborhood Graph). See 'References' for more details on both graphs.

classColumn

positive integer indicating the column which contains the (factor of) classes. By default, the last column is considered.

Details

ENG builds a neighborhood graph which can be either Gabriel Graph (GG) or Relative Neighborhood Graph (RNG) [S\'anchez et al., 1997]. Then, an instance is considered as 'potentially noisy' if most of its neighbors have a different class. To decide whether such an instance 'X' is removed, let S be the subset given by 'X' together with its neighbors from the same class. Compute the majority class 'C' among the neighbors of examples in S, and remove 'X' if its class is not 'C'.

Value

An object of class filter, which is a list with seven components:

References

S\'anchez J. S., Pla F., Ferri F. J. (1997): Prototype selection for the nearest neighbour rule through proximity graphs. Pattern Recognition Letters, 18(6), 507-513.

Examples

1
2
3
4
5
6
7
8
9
# The example is not run because the graph construction is quite time-consuming.
## Not run: 
   data(iris)
   trainData <- iris[c(1:20,51:70,101:120),]
   out <- ENG(Species~Petal.Length + Petal.Width, data = trainData, graph = "RNG")
   print(out)
   identical(out$cleanData,trainData[setdiff(1:nrow(trainData),out$remIdx),])

## End(Not run)

NoiseFiltersR documentation built on May 2, 2019, 2:03 a.m.