Last update: 14-02-2024
The classification predicament involves assigning labels or
categories to data instances based on observed features. Consider, for
instance, the task of discriminating between “spam” and “non-spam”
emails. This constitutes a classification task, where the algorithm must
acquire the ability to discern patterns that distinguish the two email
types based on their keywords, structure, or other attributes.
Classification algorithms employ a training dataset containing
pre-labeled examples to learn these patterns. When faced with
unclassified data, the algorithm applies the acquired patterns to
predict the class to which they belong, enabling efficient and precise
automation in the categorization of new cases. Algorithms like those in
FuzzyClass
address this task by leveraging data
probabilities and characteristics, thus becoming valuable tools for
addressing intricate and ambiguous classification problems.
A package manual that showcases the existing classifiers and demonstrates how to use it can be found at the following link: https://cran.r-project.org/package=FuzzyClass/FuzzyClass.pdf
Below is the list of packages on which FuzzyClass
depends. However, during its installation, FuzzyClass
automatically installs the dependencies:
# Installation
install.packages("devtools")
::install_github("leapigufpb/FuzzyClass") devtools
Once installed, you can load the FuzzyClass
package into
your R session:
# Package import
library(FuzzyClass)
To demonstrate the usage of FuzzyClass
, let’s look at
reading and preparing data:
library(FuzzyClass)
#' ---------------------------------------------
#' The following shows how the functions are used:
#' --------------
#' Reading a database:
#'
#' Actual training data:
data(VirtualRealityData)
<- as.data.frame(VirtualRealityData)
VirtualRealityData
# Splitting into Training and Testing
<- caTools::sample.split(t(VirtualRealityData[,1]), SplitRatio = 0.7)
split <- subset(VirtualRealityData, split == "TRUE")
Train <- subset(VirtualRealityData, split == "FALSE")
Test # ----------------
= Test[,-4] test
Let’s delve into the example of using the
Fuzzy Gaussian Naive Bayes
algorithm with fuzzy
parameters:
# --------------------------------------------------
# Fuzzy Gaussian Naive Bayes with Fuzzy Parameters
<- GauNBFuzzyParam(train = Train[,-4],
fit_FGNB cl = Train[,4], metd = 2, cores = 1)
print(fit_FGNB)
#>
#> Fuzzy Gaussian Naive Bayes Classifier for Discrete Predictors
#>
#> Variables:
#> [1] "V1" "V2" "V3"
#> Class:
#> [1] "1" "2" "3"
<- predict(fit_FGNB, test)
saida <- table(factor(Test[,4]), saida)
Table
Table#> saida
#> 1 2 3
#> 1 50 5 2
#> 2 6 42 15
#> 3 0 11 49
#Accuracy:
sum(diag(Table))/sum(Table)
#> [1] 0.7833333
<- predict(fit_FGNB, test, type = "matrix") saidaMatrix
Additionally, you can visualize the results:
# --------------------------------------------------
# head view
|> head()
saida #> [1] 1 1 1 1 1 1
#> Levels: 1 2 3
|> head()
saidaMatrix #> 1 2 3
#> [1,] 0.9989435 0.001056437 9.262171e-08
#> [2,] 0.9939728 0.006011989 1.523144e-05
#> [3,] 0.8213097 0.116368282 6.232206e-02
#> [4,] 0.9946096 0.005386036 4.371040e-06
#> [5,] 0.8684685 0.069905455 6.162602e-02
#> [6,] 0.8015720 0.145765858 5.266218e-02
This code appears to be related to the application of a classification algorithm called “Fuzzy Gaussian Naive Bayes with Fuzzy Parameters.” An analysis of the steps present in the code:
fit_FGNB
):
Train[,-4]
)
and classes (Train[,4]
), where the categorical response
variable or label is in column 4.predict
function is used to make predictions based
on the fitted model using the test set (test
).Table
) is created using the
table
function. The confusion matrix compares the actual
(expected) classes with the classes predicted by the model.Overall, this code performs the training of a Fuzzy Gaussian Naive Bayes model with fuzzy parameters, makes predictions using the test set, creates a confusion matrix to evaluate the model’s performance, and calculates its accuracy.
This enhanced documentation provides a comprehensive guide to using the FuzzyClass package for probabilistic classification tasks. It covers installation, package usage, data preparation, and examples of applying the Fuzzy Gaussian Naive Bayes algorithm with fuzzy parameters. Feel free to explore the package further to leverage its capabilities for your classification tasks.
If you would like to contribute to FuzzyClass, please follow these steps:
FuzzyClass
repository on GitHub.FuzzyClass
repository.FuzzyClass
maintainers will review your pull
request and may ask you to make some changes before it is merged. Once
your pull request is merged, your contribution will be available to all
FuzzyClass
users.FuzzyClass
repository first to
discuss your plans with the maintainers.If you find a bug in FuzzyClass
, please report it by
creating an issue on the FuzzyClass
repository on GitHub at
the link: https://github.com/leapigufpb/FuzzyClass/issues. When
reporting an issue, please include the following information:
FuzzyClass
that you are using.The FuzzyClass
maintainers will review your issue and
may ask you for more information before they can fix the bug. Once the
bug is fixed, a new release of FuzzyClass
will be made
available.
Here are some additional tips for reporting issues to FuzzyClass:
I hope this helps! Let me know if you have any other questions.