Skip to content

Framework for developing fuzzy and fuzzy-rough classification models for multiple instance data

License

Notifications You must be signed in to change notification settings

dstarrago/fuzzy_rough_classifiers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fuzzy-Rough Classifiers

Framework for developing fuzzy and fuzzy-rough classification models for multiple-instance data

The framework facilitates the design of multiple-instance classification models that are based on fuzzy-sets and rough-sets. In contrasts to regular classification problems, in which each example has a unique description, in multiple-instance classification (MIC) problems, each example has many descriptions. In MIC, each example is called bag, and each description of a bag is an instance. In fuzzy multi-instance classifiers, each class is regarded as a fuzzy set to which every bag has a degree of membership. When classifying a new bag, the classifiers calculate its membership degree to each class and assign it to the class for which this value is largest. In the framework we define java classes for each mathematical concept involved in the calculus of class memberships:

  • similarity and distance functions between instances
  • similarity and distance functions between bags
  • numeric operators for two or more operands (ex., addition, multiplication, maximun, average)
  • fuzzy operators (implicators, TNorms)
  • aggregators that iterate over, for example, all instances in a bag, or a set of bags, applying a numerical operation on them
  • weighting schemes for weighted average aggregation
  • bag membership and class membership functions
  • literal variables representing a cardinal number, an instance, a bag or a set of bags

Usage example:

Lets consider the membership function M of a sample bag X to the class C:

Membership Function

T is the set of all training bags; and CT is the set of training bags belonging to class C.

Using the framework, you first need to declare the variables involve in the mathematical expression. Then, you define the membership function relying on the framework's classes:


  Var  C = new Var();    // target class label  
  Var  X = new Var();    // bag with unknown label 
  Var  B = new Var();    // a bag  
  Var  x = new Var();    // an instance 
  Var  y = new Var();    // another instance 
  Var  T = new Var();    // the training samples
  
  setMembership(new MembershipToClass(X, T, C, 
            new Max(new InstancesFromBag(x, X), 
            new Average(new BagsFromClass(B, T, C),
            new Max(new InstancesFromBag(y, B),
            new CosineSimilarity(x, y))))));

Usage cases:

  • Vluymans, S., Sanchez Tarrago, D., Saeys, Y., Cornelis, C., Herrera, F.: Fuzzy Multi-Instance Classifiers. IEEE Transactions on Fuzzy Systems. 24, 1395–1409 (2016). (link)
  • Vluymans, S., Sanchez Tarrago, D., Saeys, Y., Cornelis, C., Herrera, F.: Fuzzy rough classifiers for class imbalanced multi-instance data. Pattern Recognition. 53, 36–45 (2016). (link)

Developed with:

  • Java 1.8
  • NetBeans IDE 8.2

Dependencies:

  • Weka 3.7

About

Framework for developing fuzzy and fuzzy-rough classification models for multiple instance data

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages