R: The positive region based fuzzy-rough nearest neighbor...

C.POSNN.FRST {RoughSets} | R Documentation

## The positive region based fuzzy-rough nearest neighbor algorithm

### Description

It is a function used to implement the positive region based fuzzy-rough nearest neighbor algorithm (POSNN) which was proposed by (Verbiest et al, 2012) for predicting classes of new data.

### Usage

    C.POSNN.FRST(decision.table, newdata, control = list())

### Arguments

`decision.table` | a `"DecisionTable"` class representing the decision table. See `SF.asDecisionTable`. It should be noted that the data must be numeric values instead of string/char.
`newdata` | a `"DecisionTable"` class representing data for the test process. See `SF.asDecisionTable`.
`control` | a list of other parameters which is the same as `C.FRNN.FRST`.

### Details

This method is aimed to improve the fuzzy-rough nearest neighbor algorithm (`C.FRNN.FRST`) algorithm by considering the fuzzy positive region. Basically the following steps are used to classify an instance t:

- determine the set of k-nearest neighbor of t, NN.

- assign t to the class C for which

  \frac{\displaystyle∑\limits_{x \in NN} R(x,t)C(x)POS(x)}{\displaystyle∑\limits_{x \in NN} R(x,t)}

  is maximal.

### Value

A matrix of predicted classes of newdata.

### Author(s)

Lala Septem Riza

### References

N. Verbiest, C. Cornelis and R. Jensen, "Fuzzy-rough Positive Region Based Nearest Neighbour Classification", In Proceedings of the 20th International Conference on Fuzzy Systems (FUZZ-IEEE 2012), p. 1961 - 1967 (2012).

### See Also

`C.FRNN.FRST`, `C.FRNN.O.FRST`

### Examples

    #############################################################
    ## In this example, we are using Iris dataset.
    ## It should be noted that since the values of the decision attribute are strings,
    ## they should be transformed into numeric values using unclass()
    #############################################################
    data(iris)
    ## shuffle the data
    set.seed(2)
    irisShuffled <- iris[sample(nrow(iris)),]

    ## transform values of the decision attribute into numerics
    irisShuffled[,5] <- unclass(irisShuffled[,5])

    ## split the data into training and testing data
    iris.training <- irisShuffled[1:105,]
    iris.testing <- irisShuffled[106:nrow(irisShuffled),1:4]

    colnames(iris.training) <- c("Sepal.Length", "Sepal.Width", "Petal.Length",
                           "Petal.Width", "Species")

    ## convert into the standard decision table
    decision.table <- SF.asDecisionTable(dataset = iris.training, decision.attr = 5,
                                         indx.nominal = c(5))
    tst.iris <- SF.asDecisionTable(dataset = iris.testing)

    ## FRNN algorithm using lower/upper approximation: Implicator/tnorm based approach
    control <- list(type.LU = "implicator.tnorm", k = 20, t.tnorm = "lukasiewicz",
                    type.relation = c("tolerance", "eq.1"), t.implicator = "lukasiewicz")

    ## Not run: res.test.POSNN <- C.POSNN.FRST(decision.table = decision.table,
                                  newdata = tst.iris, control = control)
    ## End(Not run)

[Package RoughSets version 1.3-7 Index]