# Macroscopic Rock Texture Image Classification Using a Hierarchical Neuro-Fuzzy Class Method

Authors: Laercio B. Gonçalves; Fabiana R. Leta
Journal: Mathematical Problems in Engineering
 (2010)

---

## Abstract

We used a Hierarchical Neuro-Fuzzy Class Method based on binary space partitioning (NFHB-Class Method) for macroscopic rock texture classification. The relevance of this study is in helping Geologists in the diagnosis and planning of oil reservoir exploration. The proposed method is capable of generating its own decision structure, with automatic extraction of fuzzy rules. These rules are linguistically interpretable, thus explaining the obtained data structure. The presented image classification for macroscopic rocks is based on texture descriptors, such as spatial variation coefficient, Hurst coefficient, entropy, and cooccurrence matrix. Four rock classes have been evaluated by the NFHB-Class Method: gneiss (two subclasses), basalt (four subclasses), diabase (five subclasses), and rhyolite (five subclasses). These four rock classes are of great interest in the evaluation of oil boreholes, which is considered a complex task by geologists. We present a computer method to solve this problem. In order to evaluate system performance, we used 50 RGB images for each rock classes and subclasses, thus producing a total of 800 images. For all rock classes, the NFHB-Class Method achieved a percentage of correct hits over 73%. The proposed method converged for all tests presented in the case study.


---

## Body

## 1. Introduction

Oil is an essential energy resource for industrial production. It can be found in a variety of geological environments. The exploitation of oil is a large-scale activity, in which the acquisition, distribution and use of expert knowledge are critical to decision making. Two sets of data are of fundamental importance in the exploitation of a new oilfield: the oil reservoir geometry and the description of the type of porous rock that holds the oil. When analyzing the oil reservoir geometry, it is possible to identify the amount of oil in the reservoir. The second set of data consists in describing the porous rock that holds the oil, that is, the reservoir rock. The quality of a reservoir is determined by the particular characteristics of its rocks, such as the minerals that form it, the volume and shape of pores (spaces that store fluids within the rock), the connections between the pores and the physical-chemical processes that may have modified these characteristics. The study of reservoir rocks is based on a systematic description of rock samples collected from oil exploration boreholes. Petrography is an activity performed in the laboratory, which incorporates the results of macroscopic and microscopic rock analyses. In macroscopic analysis, rock samples consist of cylindrical pieces cleaved by drill bit, extracting “witness” samples. Using these samples, slices are withdrawn and prepared in thin sections (0.03 mm), which are then, in turn, analyzed with the use of optical microscopes of polarized light. In macroscopic analyses, several physical characteristics, such as color, structure, texture, grain size, mineral orientation and fossil content, when available, are described. The existence of a large number of classes and subclasses makes the task of rock classification difficult, requiring extensive training, since it depends on the identification of features based on images.This paper introduces a Neuro-Fuzzy Hierarchical Class model based on binary space partitioning for rock texture image automatic classification, called NFHB-Class method. The system uses the following features: spatial variation coefficient, Hurst coefficient, entropy and cooccurrence matrix. Four rock types have been evaluated by the NFHB-Class method, namely: gneiss (two subclasses), basalt (four subclasses), diabase (five subclasses), and rhyolite (five subclasses). These four rock types are of great interest to evaluate oil boreholes, which is considered by geologists to be a complex task. In the present study, a computer method to solve this problem is presented.


## 2. NFHB-Class Method

The NFHB-Class [1] method is an extension of the NFHB Inverted method [2, 3] used in data classification. The main difference between the NFHB Inverted method and NFHB-Class method is the construction of system structure. In NFHB Inverted method, the neuro-fuzzy structure is created by NFHB method [4] and the pattern classification system is then formed. On the other hand, the NFHB-Class Method is capable of generating its own pattern classification structure, without the use of NFHB method.


### 2.1. Basic NFHB-Class Cell

A basic NFHB-Class cell is a mini neuro-fuzzy system that performs a fuzzy binary partitioning in a given area, according to the relevance of functions described by (2.1) and Figure 1(a). The NFHB-Class cell generates two precise outputs (crisp) after a defuzzification process. Figure 1(b) shows the basic NFHB-Class cell representation and Figure 1(c) illustrates it in detail
(2.1)μ=sig[a(xi-b)],ρ=1-μ.(a) Example of the pertinence functions of the NFHB-Class cell. (b) NFHB-Class cell schematic symbol. (c) NFHB-Class cell.
(a)(b)(c)The outputs (crisp) in an NFHB-Class cell are given by  (2.2)
(2.2)y1=β*ρ(x)ρ(x)+μ(x),y2=β*μ(x)ρ(x)+μ(x),
where β can be defined by one of the two scenarios below.(i)
The first cell input: in this caseβ = 1. The value “1” in the first cell input represents the entire input space, that is, the entire discussion universe of the variable xi that is being used as an input cell.(ii)
The output of a previous level: in this caseβ = yi, where yi represents one of two outputs of a generic cell “j”, whose value is also calculated by  (2.2).In NFHB-Class basic cell, the high-pertinence function (μ) is implemented by a sigmoid function and the low-pertinence function (ρ) is implemented as its complement [1-μ(x)]. The complement used leads to a simplification of the defuzzification procedure performed by  (2.2), because the sum given by (2.3) (below) is equal to 1 for any “x” value
(2.3)ρ(x)+μ(x)=1.Therefore, the output equations, given by (2.2), are simplified to:(2.4)y1=β*ρ(x),y2=β*μ(x),
or
(2.5)yi=β*αi(x),
where αi'sare the firing levels of each rule (partition) and are given by α1=ρandα2=μ.


### 2.2. NFHB-Class Architecture

Figure2(a) shows an example of NFHB-Class architecture, obtained in the training system and applied to a database that has three distinct classes; while its corresponding partition is illustrated in Figure 2(b). The structure has been created automatically without the need of using NFHB method in the training stage.(a) NFHB-Class Architecture. (b) Input space partitioning of NFHB-Class Model.
(a)(b)In NFHB-Class architecture, the system has several outputs which are connected to T-conorm cells that define the classes (Figure2(a)). The system output (class 1, class 2 or class 3) with the highest value defines the class to which the pattern belongs.The outputs of the leaf-cells are listed below:(2.6)y1=ρ0·ρ1,y2=ρ0·μ1·ρ12,y3=ρ0·μ1·μ12,y4=μ0·ρ2,y5=μ0·μ2.After calculating the output of each leaf cell, the connection between these cells to the T-conorm neurons is performed, and then the final output of the pattern classifier is obtained. Each T-conorm neuron is associated with a specific class, as can be seen in the example in Figure2(a), where there are three distinct classes, and consequently, three T-conorm neurons.The connections between the leaf-cells with the T-conorm neurons are made, initially, by connecting all the leaf-cells with all the T-conorm neurons, according to the number of classes in which the database is structured. After this connection, it is necessary to establish weights for these connections (arcs). For determining the weight allocation, we used the least squares method, applying Gauss-Seidel iterative method [5].Once we defined the strategy of how the leaf-cells were connected to T-conorm neurons and their corresponding weight links, it was necessary to define which T-conorm operators would be used to obtain the final output of the NFHB-Class. All the outputs of the leaf-cells were connected to all T-conorm neurons, as shown in Figure2(a). Each of these outputs is multiplied by the weight of its corresponding connection with T-conorm neurons. The next step is then to define how all of these T-conorm neurons input data derived from the leaf-cells should be treated.In the example of Figure2(a), the outputs of three T-conorm neurons are calculated according to  (2.7)(2.7)y1*w11⊕y2*w21⊕y3*w31⊕y4*w41⊕y5*w51,y1*w12⊕y2*w22⊕y3*w32⊕y4*w42⊕y5*w52,y1*w13⊕y2*w23⊕y3*w33⊕y4*w43⊕y5*w53,
where:(i)
y1, y2, y3, y4, andy5 are the outputs of the leaf-cells;(ii)
W11, W12,W13,W21, W22,W23,W31, W32,W33,W41, W42,W43,W51, W52, and W53 are the weights of the link between the leaf cell and the T-conorm neuron;(iii)
⊕ is the T-conorm operator used for processing the neuron output.In this paper, the limited-sum T-conorm operator [6] has been used. This operator is the most appropriate in this case, since it considers all inputs in the output calculation. It is worth noting that another T-conorm operator that is very popular in the literature, the max operator, only considers the maximum membership value, thus ignoring the membership values of the input data.The final output obtained in the NFHB-Class Method is determined by the highest output obtained among all the T-conorm neurons, thus indicating the class to which the input pattern belongs.


### 2.3. Learning Algorithm

In neuro-fuzzy literature, the learning process is generally divided in two spheres: (1) structure identification and (2) parameter adjustments. The NFHB-Class method follows the same process. However, the NFHB-Class method performs both learning tasks simultaneously. The learning algorithm of this method follows nine steps, as illustrated in Figure 3.Figure 3
Learning algorithm of NFHB-Class Model.Learning steps.(1)
An initial bipartition is created, dividing the input space into two fuzzy sets—high and low—for the input variable x. In this step, the first NFHB-Class cell is created, which is called a root cell.(2)
Theb parameter (the sigmoid inflexion point, Figure 1(a)) is initialized. The other sigmoid parameter a is heuristically initialized. Equation (2.8) illustrate the initialization process:
(2.8)a=2(LimS-LimI),b=(LimS+LimI)2,
where LimI and LimS are the lower and upper limits of the cell's input variable.(3)
In this step, the weights of the arcs that connect the cells to T-conorm neurons are adjusted by ordinary least squares method (as described in Section2.2). After calculating the weights, the value of each T-conorm output neuron of the NFHB-Class is computed.(4)
The total system error is then calculated for the entire training set, according to the following root-mean-square (rms) error expression, (2.9):
(2.9)ERMS=1L∑n=1L∑c=1#classes(ync-yncd)2,
where L = number of patterns in the training set; ync is the T-conorm neuron output, which represents the “c” class of the index “n”pattern; yncd is the desired T-conorm neuron output which represents the “c” class of the index “n” pattern. For example, we can consider a database with 3 different classes (Class 1, Class 2 and Class 3). There are also “j” and “k” database index belonging to Class 2 and 3, respectively. Thus, we have the following desired outputs to the pattern “j” given by: yj1d=0,yj2d=1,yj3d=0, for the pattern k, they are given by: yk1d=0;yk2d=0,yk3d=1. Thus, the system error considering these two patterns (index “j” and “k”) is given by (2.10):
(2.10)ERMS=12[(yj1-yj1d)2+(yj2-yj2d)2+(yj3-yj3d)2+(yk1-yk1d)2+(yk2-yk2d)2+(yk3-yk3d)2].
In order to calculate the total system error, we generalize the error for all patterns in the database, according to (2.9). If the error is below the minimum desired, then the learning process is finished. Otherwise, the learning process continues in step 5.(5)
In this step, the fuzzy weight adjustments can be computed with two different algorithms.
(a)
Maintaining the parameters “a” and “b” from the previous pertinence functions without any change. In this case, fixed partitioning is used.(b)
Using a “Descending Gradient” method to adjust the parameters “a” and “b”, which corresponds to the pertinence functions of the antecedent. In this case, an adaptive partitioning is conducted.(6)
Each bipartition is evaluated regarding its contribution to the totalrms error, and also in terms of the acceptable minimum error. Each bipartition with an unacceptable error is separated. The evaluation of the error generated for the data set that falls on the partitioning ij, for example, is calculated by (2.11)
(2.11)Ermsij=1L∑n=1Lαinαijn∑c=1#classes(ync-yncd)2,
where αin and αijn are the rules' firing levels for pattern “n”.(7)
In order to prevent the system's structure from growing indefinitely, a dimensionless parameter is created and named decomposition rate (δ). During the learning process, the decomposition rate is constantly compared with the population density of patterns that fall in a specific bipartition. When the population density of patterns (the rate between the number of patterns in a bipartition and the total number of patterns) falls below the decomposition rate, this bipartition cannot be further partitioned, thus limiting the structure. Therefore, a very low value for δ can result in a very big structure, thus compromising the generalization capability. On the other hand, if a large value is chosen, the structure might be too small to learn the patterns with the desired accuracy.(8)
This step performs the decomposition of the separate partitions. For each bipartition a detached decomposition process is performed, consisting of the following process: it allocates a new node (new cell) in the BSP structure for the separate BSP bipartition (it is divided into two). Thus, two new pertinence functions are generated; which will constitute the two newly created partitions. Figure4 presents a graphic representation of this process.(9)
Go back to step “3” to continue the learning process.Figure 4
BSP decomposition.


### 2.4. Strategies for Attributes Selection

In the area of pattern classification, it is important to define the goals and to select, from the available database, which characteristics will be used. These features are the attributes considered relevant in the pursuit of significant goals.In the case of rock classification, there is a large number of relevant variables available, such as the Hurst coefficient for grayscale and RGB channels, grayscale and RGB channels spatial variation coefficient, in addition to the descriptors used to define texture characteristics obtained in image cooccurrence matrices. In general, we choose the most representative collection of variables, the so-called features.The correct attribute selection strategy is that which avoids unnecessary partitioning, resulting in more compact BSP tree structures, consequently resulting in better generalization, fewer rules and greater interpretation degrees [2]. In this study, two methods for attribute selection have been tested: the Jang algorithm [7] which showed better performance, and the entropy method [8]. In addition to those methods, there are several studies using other techniques for feature selection, such as principal components analysis [9–12], machine learning [13, 14]; hierarchical clustering [15, 16] and genetic algorithms [17–19].Considering the Jang algorithm, two strategies for selection—fixed and adaptive—have been proposed to deal with the selection problem, that is, which input variables should be applied to partitioning inputs of each NFHB-Class cell.In the fixed selection sets strategy, where the order of the attributes is determined by Jang algorithm, during the NFHB-Class Method learning process and architecture construction, each of these features is chosen and used as input for each level of the BSP tree. The same input (attribute) is used for all nodes in the same level. This strategy generates unnecessary partitioning due to the fact that all nodes at the same level are forced to use the same fixed input, which is not always the best characteristic for this node. One of the advantages of this strategy is that the computational cost is very small, since the feature selection is performed only once, before the learning process. The result obtained is very competitive. In many cases it results in an interesting alternative, considering time and performance.In contrast to the methodology described above, the adaptive selection strategy chooses the best input feature (attribute) for each tree node, regardless of the level where the node is. For each node the best input is chosen using only the subset associated with this node. This strategy generates more compact neuro-fuzzy BSP structures according to the specialization of each node, resulting in better generalization performance. However, the computational cost is higher, since the selection algorithm must be run for each new node of NFHB-Class Model.


### 2.5. Fuzzy Rules Extraction

The NFHB-Class Method is capable of generating interpretable rules with the purpose of extracting information from a specific database. An example of the rules extracted in this model is: “Ifx is high and y is small and w is hot, then class is k”.Figure6 shows an example of NFHB-Class method. In this approach, each partition of the input space (leaf node) will have an associated rule. The elements of each partitioning are associated to all existing k classes, with different membership levels.As demonstrated by Gonçalves et al. [3], the rule extracting process consists of the following steps:(i)
routing on the NFHB-Class tree, calculating the firing level of each rule in each partitioning.(ii)
evaluation of the rules with the use of fuzzy accuracy and coverage.Fuzzy Accuracy
The accuracy of a rule is a measure of how well it applies to the data. In order to determine how suitable a particular fuzzy rule describes a specific classk, the fuzzy accuracy measurement is presented in (2.12)
(2.12)Fuzzy_Accuracyki=∑j=1Pkαk,ji∑j=1Piαji,
where Fuzzy_Accuracyki is the rule accuracy for class k in partition i; αk,ji is the membership level of pattern j for class k in partition i; αji is the membership level of pattern j in partition i (regardless of the class); Pk is the total number of class k patterns; Pi is the total number of patterns in partition i.If the database has different numbers of patterns per class, the correction factorWki must be applied in order to balance the nonuniform pattern distribution. Hence, the correct fuzzy accuracy Fuzzy*_Accuracyki is calculated by  (2.13)(2.13)Fuzzy*_Accuracyki=Fuzzy_Accuracyki·Wki,Wki=1Pk∑j=1Nc(Fuzzy_Accuracyji/Pj),
where is Wki is correction factor for accuracy of class k in partition i; Nc is total number of classes; Pj is number of patterns of class j; Pk is number of patterns of class k.The accuracy sum related to all classes in a specific partition is always equal to 1, since each node's membership function is complementary. Besides, each pattern's level of presence, in each partition, is calculated by the intersection of all firing levels in each node, using the product operator.Fuzzy Coverage
Fuzzy coverage provides a measure of how comprehensive a rule is in relation to the total number of patterns in the base rule, that is, it measures “how many” patterns are affected by the available rule. The fuzzy coverage definition is given by  (2.14)
(2.14)Fuzzyi_Coverage=∑j=1PiαjiP,
where Fuzzyi_Coverage=partitioni fuzzy coverage; P = total number of patterns in the database; αji is the membership level of the j pattern in the i partition; and Pi is the number of patterns in i partition.Due to the aforementioned features (complementary membership functions and product operator); all rule composition covers the total number of patterns. In other words, the fuzzy coverage sum of all partitions is equal to 1.


## 2.1. Basic NFHB-Class Cell

A basic NFHB-Class cell is a mini neuro-fuzzy system that performs a fuzzy binary partitioning in a given area, according to the relevance of functions described by (2.1) and Figure 1(a). The NFHB-Class cell generates two precise outputs (crisp) after a defuzzification process. Figure 1(b) shows the basic NFHB-Class cell representation and Figure 1(c) illustrates it in detail
(2.1)μ=sig[a(xi-b)],ρ=1-μ.(a) Example of the pertinence functions of the NFHB-Class cell. (b) NFHB-Class cell schematic symbol. (c) NFHB-Class cell.
(a)(b)(c)The outputs (crisp) in an NFHB-Class cell are given by  (2.2)
(2.2)y1=β*ρ(x)ρ(x)+μ(x),y2=β*μ(x)ρ(x)+μ(x),
where β can be defined by one of the two scenarios below.(i)
The first cell input: in this caseβ = 1. The value “1” in the first cell input represents the entire input space, that is, the entire discussion universe of the variable xi that is being used as an input cell.(ii)
The output of a previous level: in this caseβ = yi, where yi represents one of two outputs of a generic cell “j”, whose value is also calculated by  (2.2).In NFHB-Class basic cell, the high-pertinence function (μ) is implemented by a sigmoid function and the low-pertinence function (ρ) is implemented as its complement [1-μ(x)]. The complement used leads to a simplification of the defuzzification procedure performed by  (2.2), because the sum given by (2.3) (below) is equal to 1 for any “x” value
(2.3)ρ(x)+μ(x)=1.Therefore, the output equations, given by (2.2), are simplified to:(2.4)y1=β*ρ(x),y2=β*μ(x),
or
(2.5)yi=β*αi(x),
where αi'sare the firing levels of each rule (partition) and are given by α1=ρandα2=μ.


## 2.2. NFHB-Class Architecture

Figure2(a) shows an example of NFHB-Class architecture, obtained in the training system and applied to a database that has three distinct classes; while its corresponding partition is illustrated in Figure 2(b). The structure has been created automatically without the need of using NFHB method in the training stage.(a) NFHB-Class Architecture. (b) Input space partitioning of NFHB-Class Model.
(a)(b)In NFHB-Class architecture, the system has several outputs which are connected to T-conorm cells that define the classes (Figure2(a)). The system output (class 1, class 2 or class 3) with the highest value defines the class to which the pattern belongs.The outputs of the leaf-cells are listed below:(2.6)y1=ρ0·ρ1,y2=ρ0·μ1·ρ12,y3=ρ0·μ1·μ12,y4=μ0·ρ2,y5=μ0·μ2.After calculating the output of each leaf cell, the connection between these cells to the T-conorm neurons is performed, and then the final output of the pattern classifier is obtained. Each T-conorm neuron is associated with a specific class, as can be seen in the example in Figure2(a), where there are three distinct classes, and consequently, three T-conorm neurons.The connections between the leaf-cells with the T-conorm neurons are made, initially, by connecting all the leaf-cells with all the T-conorm neurons, according to the number of classes in which the database is structured. After this connection, it is necessary to establish weights for these connections (arcs). For determining the weight allocation, we used the least squares method, applying Gauss-Seidel iterative method [5].Once we defined the strategy of how the leaf-cells were connected to T-conorm neurons and their corresponding weight links, it was necessary to define which T-conorm operators would be used to obtain the final output of the NFHB-Class. All the outputs of the leaf-cells were connected to all T-conorm neurons, as shown in Figure2(a). Each of these outputs is multiplied by the weight of its corresponding connection with T-conorm neurons. The next step is then to define how all of these T-conorm neurons input data derived from the leaf-cells should be treated.In the example of Figure2(a), the outputs of three T-conorm neurons are calculated according to  (2.7)(2.7)y1*w11⊕y2*w21⊕y3*w31⊕y4*w41⊕y5*w51,y1*w12⊕y2*w22⊕y3*w32⊕y4*w42⊕y5*w52,y1*w13⊕y2*w23⊕y3*w33⊕y4*w43⊕y5*w53,
where:(i)
y1, y2, y3, y4, andy5 are the outputs of the leaf-cells;(ii)
W11, W12,W13,W21, W22,W23,W31, W32,W33,W41, W42,W43,W51, W52, and W53 are the weights of the link between the leaf cell and the T-conorm neuron;(iii)
⊕ is the T-conorm operator used for processing the neuron output.In this paper, the limited-sum T-conorm operator [6] has been used. This operator is the most appropriate in this case, since it considers all inputs in the output calculation. It is worth noting that another T-conorm operator that is very popular in the literature, the max operator, only considers the maximum membership value, thus ignoring the membership values of the input data.The final output obtained in the NFHB-Class Method is determined by the highest output obtained among all the T-conorm neurons, thus indicating the class to which the input pattern belongs.


## 2.3. Learning Algorithm

In neuro-fuzzy literature, the learning process is generally divided in two spheres: (1) structure identification and (2) parameter adjustments. The NFHB-Class method follows the same process. However, the NFHB-Class method performs both learning tasks simultaneously. The learning algorithm of this method follows nine steps, as illustrated in Figure 3.Figure 3
Learning algorithm of NFHB-Class Model.Learning steps.(1)
An initial bipartition is created, dividing the input space into two fuzzy sets—high and low—for the input variable x. In this step, the first NFHB-Class cell is created, which is called a root cell.(2)
Theb parameter (the sigmoid inflexion point, Figure 1(a)) is initialized. The other sigmoid parameter a is heuristically initialized. Equation (2.8) illustrate the initialization process:
(2.8)a=2(LimS-LimI),b=(LimS+LimI)2,
where LimI and LimS are the lower and upper limits of the cell's input variable.(3)
In this step, the weights of the arcs that connect the cells to T-conorm neurons are adjusted by ordinary least squares method (as described in Section2.2). After calculating the weights, the value of each T-conorm output neuron of the NFHB-Class is computed.(4)
The total system error is then calculated for the entire training set, according to the following root-mean-square (rms) error expression, (2.9):
(2.9)ERMS=1L∑n=1L∑c=1#classes(ync-yncd)2,
where L = number of patterns in the training set; ync is the T-conorm neuron output, which represents the “c” class of the index “n”pattern; yncd is the desired T-conorm neuron output which represents the “c” class of the index “n” pattern. For example, we can consider a database with 3 different classes (Class 1, Class 2 and Class 3). There are also “j” and “k” database index belonging to Class 2 and 3, respectively. Thus, we have the following desired outputs to the pattern “j” given by: yj1d=0,yj2d=1,yj3d=0, for the pattern k, they are given by: yk1d=0;yk2d=0,yk3d=1. Thus, the system error considering these two patterns (index “j” and “k”) is given by (2.10):
(2.10)ERMS=12[(yj1-yj1d)2+(yj2-yj2d)2+(yj3-yj3d)2+(yk1-yk1d)2+(yk2-yk2d)2+(yk3-yk3d)2].
In order to calculate the total system error, we generalize the error for all patterns in the database, according to (2.9). If the error is below the minimum desired, then the learning process is finished. Otherwise, the learning process continues in step 5.(5)
In this step, the fuzzy weight adjustments can be computed with two different algorithms.
(a)
Maintaining the parameters “a” and “b” from the previous pertinence functions without any change. In this case, fixed partitioning is used.(b)
Using a “Descending Gradient” method to adjust the parameters “a” and “b”, which corresponds to the pertinence functions of the antecedent. In this case, an adaptive partitioning is conducted.(6)
Each bipartition is evaluated regarding its contribution to the totalrms error, and also in terms of the acceptable minimum error. Each bipartition with an unacceptable error is separated. The evaluation of the error generated for the data set that falls on the partitioning ij, for example, is calculated by (2.11)
(2.11)Ermsij=1L∑n=1Lαinαijn∑c=1#classes(ync-yncd)2,
where αin and αijn are the rules' firing levels for pattern “n”.(7)
In order to prevent the system's structure from growing indefinitely, a dimensionless parameter is created and named decomposition rate (δ). During the learning process, the decomposition rate is constantly compared with the population density of patterns that fall in a specific bipartition. When the population density of patterns (the rate between the number of patterns in a bipartition and the total number of patterns) falls below the decomposition rate, this bipartition cannot be further partitioned, thus limiting the structure. Therefore, a very low value for δ can result in a very big structure, thus compromising the generalization capability. On the other hand, if a large value is chosen, the structure might be too small to learn the patterns with the desired accuracy.(8)
This step performs the decomposition of the separate partitions. For each bipartition a detached decomposition process is performed, consisting of the following process: it allocates a new node (new cell) in the BSP structure for the separate BSP bipartition (it is divided into two). Thus, two new pertinence functions are generated; which will constitute the two newly created partitions. Figure4 presents a graphic representation of this process.(9)
Go back to step “3” to continue the learning process.Figure 4
BSP decomposition.


## 2.4. Strategies for Attributes Selection

In the area of pattern classification, it is important to define the goals and to select, from the available database, which characteristics will be used. These features are the attributes considered relevant in the pursuit of significant goals.In the case of rock classification, there is a large number of relevant variables available, such as the Hurst coefficient for grayscale and RGB channels, grayscale and RGB channels spatial variation coefficient, in addition to the descriptors used to define texture characteristics obtained in image cooccurrence matrices. In general, we choose the most representative collection of variables, the so-called features.The correct attribute selection strategy is that which avoids unnecessary partitioning, resulting in more compact BSP tree structures, consequently resulting in better generalization, fewer rules and greater interpretation degrees [2]. In this study, two methods for attribute selection have been tested: the Jang algorithm [7] which showed better performance, and the entropy method [8]. In addition to those methods, there are several studies using other techniques for feature selection, such as principal components analysis [9–12], machine learning [13, 14]; hierarchical clustering [15, 16] and genetic algorithms [17–19].Considering the Jang algorithm, two strategies for selection—fixed and adaptive—have been proposed to deal with the selection problem, that is, which input variables should be applied to partitioning inputs of each NFHB-Class cell.In the fixed selection sets strategy, where the order of the attributes is determined by Jang algorithm, during the NFHB-Class Method learning process and architecture construction, each of these features is chosen and used as input for each level of the BSP tree. The same input (attribute) is used for all nodes in the same level. This strategy generates unnecessary partitioning due to the fact that all nodes at the same level are forced to use the same fixed input, which is not always the best characteristic for this node. One of the advantages of this strategy is that the computational cost is very small, since the feature selection is performed only once, before the learning process. The result obtained is very competitive. In many cases it results in an interesting alternative, considering time and performance.In contrast to the methodology described above, the adaptive selection strategy chooses the best input feature (attribute) for each tree node, regardless of the level where the node is. For each node the best input is chosen using only the subset associated with this node. This strategy generates more compact neuro-fuzzy BSP structures according to the specialization of each node, resulting in better generalization performance. However, the computational cost is higher, since the selection algorithm must be run for each new node of NFHB-Class Model.


## 2.5. Fuzzy Rules Extraction

The NFHB-Class Method is capable of generating interpretable rules with the purpose of extracting information from a specific database. An example of the rules extracted in this model is: “Ifx is high and y is small and w is hot, then class is k”.Figure6 shows an example of NFHB-Class method. In this approach, each partition of the input space (leaf node) will have an associated rule. The elements of each partitioning are associated to all existing k classes, with different membership levels.As demonstrated by Gonçalves et al. [3], the rule extracting process consists of the following steps:(i)
routing on the NFHB-Class tree, calculating the firing level of each rule in each partitioning.(ii)
evaluation of the rules with the use of fuzzy accuracy and coverage.Fuzzy Accuracy
The accuracy of a rule is a measure of how well it applies to the data. In order to determine how suitable a particular fuzzy rule describes a specific classk, the fuzzy accuracy measurement is presented in (2.12)
(2.12)Fuzzy_Accuracyki=∑j=1Pkαk,ji∑j=1Piαji,
where Fuzzy_Accuracyki is the rule accuracy for class k in partition i; αk,ji is the membership level of pattern j for class k in partition i; αji is the membership level of pattern j in partition i (regardless of the class); Pk is the total number of class k patterns; Pi is the total number of patterns in partition i.If the database has different numbers of patterns per class, the correction factorWki must be applied in order to balance the nonuniform pattern distribution. Hence, the correct fuzzy accuracy Fuzzy*_Accuracyki is calculated by  (2.13)(2.13)Fuzzy*_Accuracyki=Fuzzy_Accuracyki·Wki,Wki=1Pk∑j=1Nc(Fuzzy_Accuracyji/Pj),
where is Wki is correction factor for accuracy of class k in partition i; Nc is total number of classes; Pj is number of patterns of class j; Pk is number of patterns of class k.The accuracy sum related to all classes in a specific partition is always equal to 1, since each node's membership function is complementary. Besides, each pattern's level of presence, in each partition, is calculated by the intersection of all firing levels in each node, using the product operator.Fuzzy Coverage
Fuzzy coverage provides a measure of how comprehensive a rule is in relation to the total number of patterns in the base rule, that is, it measures “how many” patterns are affected by the available rule. The fuzzy coverage definition is given by  (2.14)
(2.14)Fuzzyi_Coverage=∑j=1PiαjiP,
where Fuzzyi_Coverage=partitioni fuzzy coverage; P = total number of patterns in the database; αji is the membership level of the j pattern in the i partition; and Pi is the number of patterns in i partition.Due to the aforementioned features (complementary membership functions and product operator); all rule composition covers the total number of patterns. In other words, the fuzzy coverage sum of all partitions is equal to 1.


## 3. Texture

According to Turceyan and Jain [20], image texture is a combination of similar patterns with a regular frequency. It is an attribute that represents a spatial pixel arrangement in a region [21]. Jain [22] defines texture as a basic pattern repetition in space. Conci et al. [23] refer to the texture as a visual pattern that has some homogeneity properties that does not result simply in a color or intensity; it can be defined as the visual appearance of a surface. Although there is no precise definition for texture, it is easily perceived by human vision due to its range of visual patterns composed by subpatterns, which have underlining properties, such as uniformity, density, roughness, regularity, intensity [24].


### 3.1. Rock Texture—Related Works

Lepistö et al. [25] have shown a classification method based on structural and spectral characteristics of rocks. In order to extract features that could identify the texture, a spectral feature of a set of color parameters was used, and in order to define the structural aspect they used cooccurrence matrices [26]. For rock classification, the nonhomogeneous textures were divided into blocks. Lepistö et al. [27] applied Gabor filters in rock color images for classification. Autio et al. [28] used cooccurrence matrices with Hough transform for rock classification. Starkey and Samantary [29] used morphology and color parameters to distinguish rock images. Genetic programming techniques with edge detectors were also used by Ross et al. [30] and by Starkey and Samantary [29] in petrography. Genetic programming with decision trees was used for grain segmentation by Ross et al. [31]. Thompson et al. [32] used neural networks for mineral classification. Fueten and Manson [33] used neural networks for detecting edges in petrography color images in order to discriminate the grains.In this work, the following has been used as descriptors of texture: Spatial Variation Coefficient—SVC—[23], Hurst coefficient [34], entropy [35] and cooccurrence matrices [24, 36].


## 3.1. Rock Texture—Related Works

Lepistö et al. [25] have shown a classification method based on structural and spectral characteristics of rocks. In order to extract features that could identify the texture, a spectral feature of a set of color parameters was used, and in order to define the structural aspect they used cooccurrence matrices [26]. For rock classification, the nonhomogeneous textures were divided into blocks. Lepistö et al. [27] applied Gabor filters in rock color images for classification. Autio et al. [28] used cooccurrence matrices with Hough transform for rock classification. Starkey and Samantary [29] used morphology and color parameters to distinguish rock images. Genetic programming techniques with edge detectors were also used by Ross et al. [30] and by Starkey and Samantary [29] in petrography. Genetic programming with decision trees was used for grain segmentation by Ross et al. [31]. Thompson et al. [32] used neural networks for mineral classification. Fueten and Manson [33] used neural networks for detecting edges in petrography color images in order to discriminate the grains.In this work, the following has been used as descriptors of texture: Spatial Variation Coefficient—SVC—[23], Hurst coefficient [34], entropy [35] and cooccurrence matrices [24, 36].


## 4. Case Study

To evaluate the system performance we used 50 RGB images (401×401) for each rock class and subclass, thus producing a total of 800 images. The rock classes and subclasses which compose the image database are: gneiss (two subclasses), basalt (four subclasses), diabase (five subclasses) and rhyolite (five subclasses). The images which have been analysed were of natural rocks, without any kind of treatment (polishing). Figure 5 shows this classification.Figure 5
Rocks samples.Figure 6
NFHB-Class complete tree structure with adaptive selection strategy for the test performed with gneiss rock.From each image we extracted the following: Hurst coefficient for gray and color images (a coefficient for each RGB channel); spatial variation coefficient (gray and color); entropy and cooccurrence matrix. From the 160 cooccurrence matrices, we calculated the average matrices in the 0°, 45°, 90°, and 135° directions for each distance, resulting in 40 matrices for the 40 distances. For the analysis of these 40 matrices, we used the following descriptors: contrast, homogeneity, energy, entropy and correlation. We then generated five curves for each image, and both the highest value and the area were used as attributes to determine the texture of the images. Table1 shows all the attributes.Table 1
Attributes used to determine the image texture.
Attribute NumberDescription1Hurst coefficient forgray scale2Red channel3Green channel4Blue channel5SVC forgray scale6Red channel7Green channel8Blue channel9Entropy of the image forgray scale10Red Channel11Green Channel12Blue channel13Highest value of the contrastDescriptor found in the cooccurrence matrix14Area of the contrast15Highest value of the correlation16Area of the correlation17Highest value of the energy18Area of the energy19Highest value of the entropy20Value of the distance where was found the highest value of the entropy21Area of the entropy22Highest value of the homogeneity23Area of the homogeneityThe training models stage is performed in accordance with the following steps.(1)
Initially, only the subclass classification of gneiss, basalt, diabase, and rhyolite rocks is made. With this, the following databases are created:
(a)
a database with just 2 gneiss rock subclasses: granite gneiss and leucocratic gneiss,(b)
a database with just 4 basalt rock subclasses: aphanitic aphyric basalt, oxidized aphanitic aphyric basalt, porfiritic basalt and amygdaloid porfiritic basalt,(c)
a database with just 5 diabase rock subclasses: altered amygdaloid diabase, equigranular diabase, porfiritic diabase, altered porfiritic diabase and amygdaloid porfiritic diabase,(d)
a database with just 5 rhyolite rock subclasses: altered rhyolite, amygdaloid rhyolite, porfiritic rhyolite, amygdaloid porfiritic rhyolite and venulated amygdaloid porfiritic rhyolite.(2)
Then the HNFB-Class Method is tested for the rock macro classification. In this process, we create:
(a)
a database with just 2 rock macro classes: gneiss and basalt, without considering subclasses,(b)
a database with just 2 rock macro classes: diabase and rhyolite, without considering subclasses,(c)
a database with just 3 rock macro classes: basalt, diabase and rhyolite, without considering subclasses,(d)
a database with just 3 rock macro classes: gneiss, basalt, diabase, and rhyolite, without considering subclasses.In all tests, we use 50% of the database to train the HNFB-Class Method and 50% to validate it. Tables2 and 6 summarize the performance of HNFB-Class Method with selection strategies: fixed (NFHB-Class1) and adaptive (NFHB-Class2), for subclass classification and macro classification, respectively.Table 2
Classification results obtained with the NFHB-Class1 (fixed selection strategy) and NFHB-Class2 (adaptive selection strategy) methods, for subclass classification of gneiss, basalt, diabase, and rhyolite rocks.
ModelDatabase testTraining set correct percentageValidation set correct percentageRules generated (number)Decomposition RateAttributes used orderNFHB-Class1Gneiss198%96%320.035, 9, 1NFHB-Class298%96%170.08NFHB-Class1Gneiss2100%98%520.018, 12, 7, 6, 10, 11, 3, 2, 4NFHB-Class296%94%120.1NFHB-Class1Gneiss394%96%520.018, 12, 7, 5, 6, 10, 9, 11, 3NFHB-Class2100%98%540.008NFHB-Class1Gneiss4100%98%810.0113, 23, 19, 22, 21, 14, 17, 18, 15, 20, 16NFHB-Class298%96%90.1NFHB-Class1Basalt179%59%730.0061, 5, 9NFHB-Class290%65%1180.0009NFHB-Class1Basalt295%87%810.00610, 12, 11, 2, 8, 4, 3, 7, 6NFHB-Class288%84%250.003NFHB-Class1Basalt379%83%960.0042, 8, 9, 12, 11, 6, 5, 3, 1, 10, 7, 4NFHB-Class298%81%610.009NFHB-Class1Basalt487%74%810.0114, 15, 13, 16, 17, 18, 19, 20, 22, 21, 23NFHB-Class291%75%410.006NFHB-Class1Diabase165.6%56%260.031, 5, 9NFHB-Class290.4%56.8%870.009NFHB-Class1Diabase281.6%71.2%1100.0064, 7, 6, 3, 8, 2, 12, 10, 11NFHB-Class292%73.6%830.002NFHB-Class1Diabase389.6%70.4%620.0034, 7, 6, 5, 3, 1, 8, 2, 9, 10, 11, 12NFHB-Class285.6%69.6%630.0003NFHB-Class1Diabase470.4%67.2%640.00819, 21, 16, 17, 22, 14, 15, 23, 18, 20, 13NFHB-Class275.2%67.2%350.009NFHB-Class1Rhyolite168.8%58.4%970.0085, 9, 1NFHB-Class288%60.8%1330.005NFHB-Class1Rhyolite288%75.2%680.0087, 8, 6, 11, 10, 4, 12, 2, 3NFHB-Class296%78.4%560.007NFHB-Class1Rhyolite393.6%78.4%2250.0027, 8, 5, 6, 11, 10, 4, 9, 12, 2, 3, 1NFHB-Class2100%76.8%1080.007NFHB-Class1Rhyolite476%67.2%850.0097, 8, 5, 6, 11, 10, 4, 9, 12, 2, 3, 1NFHB-Class264.8%69.6%170.01For subclass classification, the databases are organized as follows:(i)
index 1 (Gneiss1, Basalt1, Diabase1, Rhyolite1): a database with only gray scale coefficients,(ii)
index 2 (Gneiss2, Basalt2, Diabase2, Rhyolite2): a database with only RGB channels coefficients,(iii)
index 3 (Gneiss3, Basalt3, Diabase3, Rhyolite3): a database including RGB and grayscale coefficients,(iv)
index 4 (Gneiss4, Basalt4, Diabase4, Rhyolite4): a database with the attributes extracted from cooccurrence matrices.For macro classification, the databases are organized as follows:(i)
gneiss and basalt1; diabase and rhyolite1; basalt, diabase and rhyolite1; gneiss, basalt, diabase, and rhyolite1: database containing only gray scale coefficients,(ii)
gneiss and basalt2; diabase and rhyolite2; basalt, diabase, and rhyolite2; gneiss, basalt, diabase, and rhyolite2: database containing only RGB channels coefficients,(iii)
gneiss and basalt3: diabase and rhyolite3; basalt, diabase, and rhyolite3; gneiss, basalt, diabase, and rhyolite3: database including RGB and grayscale coefficients.When using the attributes extracted from the cooccurrence matrix, poorer results are obtained than with the use of other attributes. Therefore, they have not been used in tests of macro classification of rocks.With the intent of comparing with NFHB-Class Method, some backpropagation neural networks have been used. Tables3 and 7 show the configurations used for subclass classification and macro classification, respectively. Tables 4 and 8 present the performance of neural networks for subclass classification and macro classification respectively.Table 3
Neural network Configurations used to classify the following rock subclasses: gneiss, basalt, diabase, and rhyolite.
RockDatabase testNumber of layersNumber of neurons in input layerNumber of neurons in first hidden layerNumber of neurons in second hidden layerNumber of neurons in output layerGneissGneiss1335—2Gneiss299Gneiss3129Gneiss4119BasaltBasalt14310104Basalt2910Basalt31210Basalt41110DiabaseDiabase14320155Diabase292015Diabase3122025Diabase4112015RhyoliteRhyolite14320155Rhyolite2920Rhyolite31220Rhyolite41120Table 4
Neural networks performance in the classification of the following rock subclassess: gneiss, basalt, diabase, and rhyolite.
RockDatabase testCorrect percentage of training setCorrect percentage of validation setGneissGneiss196%92%Gneiss2100%96%Gneiss3100%96%Gneiss4100%96%BasaltBasalt181%55%Basalt2100%86%Basalt3100%85%Basalt496%67%DiabaseDiabase173.6%51.2%Diabase293.6%69.6%Diabase397.6%68%Diabase492%54.4%RhyoliteRhyolite176%49.6%Rhyolite297.6%75.2%Rhyolite398.4%64%Rhyolite488%59.2%Tables5 and 9 summarize the performance of NFHB-Class Method with selection strategies: fixed (NFHB-Class1) and adaptive (NFHB-Class2), for subclass classification and macro classification, respectively. These tables are based on the largest percentage of the overall set validation for each method.Table 5
Best performance obtained by methods: NFHB-Class1 (fixed selection strategy), NFHB-Class2 (adaptive selection strategy) and neural networks. Rock subclasses: gneiss, basalt, diabase, and rhyolite.
RockModelBest performance for the training setBest performance for the validation setNumber of generated rulesGneissNFHB-Class1100%98%52NFHB-Class2100%98%12Neural network100%96%—BasaltNFHB-Class195%87%81NFHB-Class288%84%25Neural network100%86%—DiabaseNFHB-Class181.6%71.2%110NFHB-Class292%73.6%83Neural network93.6%69.6%—RhyoliteNFHB-Class193.6%78.4%225NFHB-Class296%78.4%56Neural network97.6%75.2%—Table 6
Classification results obtained with NFHB-Class1 (fixed selection strategy) and NFHB-Class2 (adaptive selection strategy) methods, for macro rock classification of gneiss and basalt; diabase, and rhyolite; basalt, diabase, and rhyolite; and gneiss, basalt, diabase, and rhyolite.
ModelDatabase testCorrect percentage of training setCorrect percentage of validation setNumber of rules generatedDecomposition RateOrder of the attributes usedNFHB-Class1Gneiss and basalt190.67%88%370.021, 5, 9NFHB-Class292%86%460.01NFHB-Class1Gneiss and basalt296%96%530.0074, 7, 10, 3, 2, 11, 8, 6, 12NFHB-Class292.67%95.33%220.02NFHB-Class1Gneiss and basalt394.67%90%680.0094, 7, 10, 2, 11, 5, 3, 1, 9, 8, 6, 12NFHB-Class298.67%96.67%680.008NFHB-Class1Diabase and rhyolite170%68.4%290.025, 9, 1NFHB-Class279.6%70.4%830.008NFHB-Class1Diabase and rhyolite281.6%86%220.026, 7, 8, 10, 11, 12, 2, 3,4NFHB-Class287.2%86%330.01NFHB-Class1Diabase and rhyolite387.2%85.2%590.0095, 7, 6, 8, 10, 9, 11, 12, 2, 1, 3, 4NFHB-Class286%85.2%250.03NFHB-Class1Basalt, diabase, and rhyolite164.86%61.43%340.0065, 9, 1NFHB-Class270.29%60.86%670.009NFHB-Class1Basalt, diabase, and rhyolite284%80.57%770.0086, 10, 7, 8, 2, 11, 3, 12, 4NFHB-Class284.29%80.29%330.005NFHB-Class1Basalt, diabase, and rhyolite384.86%80.57%980.0066, 10, 5, 7, 8, 9, 2, 11, 1, 3, 12, 4NFHB-Class283.14%78.86%500.006NFHB-Class1Gneiss, basalt, diabase, and rhyolite154%52.25%550.0045, 9, 1NFHB-Class257.25%56.75%510.003NFHB-Class1Gneiss, basalt, diabase, and rhyolite277%75.75%1050.0076, 10, 7, 11, 12, 8, 2, 3, 4NFHB-Class283.75%77.75%790.006NFHB-Class1Gneiss, basalt, diabase, and rhyolite375.75%74.25%920.0086, 10, 5, 7, 8, 9, 2, 11, 1, 3, 12, 4NFHB-Class279.5%74.5%800.006Table 7
Configurations of neural networks used in the macro classification of gneiss and basalt; diabase, and rhyolite; basalt, diabase, and rhyolite; gneiss, basalt, diabase, and rhyolite
RockDatabase testNumber of layersNumber of neurons in input layerNumber of neurons in first hidden layerNumber of neurons in second hidden layerNumber of neurons in output layerGneiss and basaltGneiss and basalt136Gneiss and basalt23910—2Gneiss and basalt31210Diabase and rhyoliteDiabase and rhyolite132025Diabase and rhyolite24925202Diabase and rhyolite3122025Basalt, diabase and rhyoliteBasalt, diabase, and rhyolite13Basalt, diabase, and rhyolite24940303Basalt, diabase, and rhyolite312Gneiss, basalt, diabase, and rhyoliteGneiss, basalt, diabase, and rhyolite13Gneiss, basalt, diabase, and rhyolite24940404Gneiss, basalt, diabase, and rhyolite312Table 8
Performance of neural networks for macro classes of gneiss and basalt; diabase, and rhyolite; basalt, diabase, and rhyolite; gneiss, basalt, diabase, and rhyolite.
RockDatabase testCorrect percentage of training setCorrect percentage of validation setGneiss and basaltGneiss and basalt192.67%80%Gneiss and basalt2100%94%Gneiss and basalt3100%94%Diلbase and rhyoliteDiabase and rhyolite182.4%72%Diabase and rhyolite299.2%85.2%Diabase and rhyolite395.2%84.4%Basalt, diabase, and rhyoliteBasalt, diabase, and rhyolite175.14%60.85%Basalt, diabase, and rhyolite297.42%77.42%Basalt, diabase, and rhyolite399.42%77.14%Gneiss, basalt, diabase, and rhyoliteGneiss, basalt, diabase, and rhyolite165.5%53.75%Gneiss, basalt, diabase, and rhyolite297%77%Gneiss, basalt, diabase, and rhyolite399.75%68.75%Table 9
Best performance obtained by NFHB-Class1 (fixed selection strategy), NFHB-Class2 (adaptive selection strategy) and neural networks, for rock classes: gneiss and basalt; diabase, and rhyolite; basalt, diabase, and rhyolite; gneiss, basalt, diabase, and rhyolite.
RockModelCorrect percentage of training setCorrect percentage of validation setNumber of generated rulesGneiss and basaltNFHB-Class196%96%53NFHB-Class298.67%96.67%68Neural network100%94%—Diabase and rhyoliteNFHB-Class181.6%86%22NFHB-Class287.2%86%33Neural network99.2%85.2%—Basalt, diabase, and rhyoliteNFHB-Class184%80.57%77NFHB-Class284.29%80.29%33Neural network97.42%77.42%—Gneiss, basalt, diabase, and rhyoliteNFHB-Class177%75.75%105NFHB-Class283.75%77.75%79Neural network97%77%—As observed in Table5, the best results in rock classification have been obtained with the NFHB-Class Methods. It is also noted that NFHB-Class2 obtained a lower number of rules than NFHB-Class1 models.As exposed in Table9, the best results in macro rock classification have been observed in the NFHB-Class Methods. The higher the number of patterns and classes, the higher the size of the NFHB-Class become, that is, it is necessary that the model “learns” greater diversities of patterns.


### 4.1. Fuzzy Rule Extractions

In order to illustrate the tree structure obtained by the NFHB-Class Method, we have selected the test performed with gneiss rock class. We used the database containing only the RGB channels' coefficients as attributes (Gneiss2), using the adaptive feature selection strategy and decomposition rate ofδ = 0.1. In this case, the success in the training set was 96% and the validation set was 94%. Figure 6 shows the complete structure presented by the HNFB-Class Method for the gneiss rock. The illustrated Class1 and Class2 represent the subclasses granite gneiss and leucocratic gneiss, respectively.In Figure6, the attributes are encoded by: X2—Hurst coefficient for Red channel, X3—Hurst coefficient for Green channel, X4—Hurst coefficient for Blue channel, X6—SVC for Red channel, X7—SVC for Green channel, X8—SVC for Blue channel, X10—Entropy for Red Channel, X11—Entropy for Green Channel, X12—Entropy for Blue channel.Following the path in the tree, it is possible to extract rules that describe the database of gneiss rock. Table10 lists the fuzzy rules extracted from the tree structure in Figure 6.Table 10
Fuzzy rules.
RulesAccuracyCoverageRule1If X8 is low and X12 is low and X6 is low then Class = 10.68130.1105Rule2If X8 is low and X12 is low and X6 is high and X3 is low then Class = 10.5480.06137Rule3If X8 is low and X12 is low and X6 is high and X3 is high then Class = 10.51520.05707Rule4If X8 is low and X12 is high and X10 is low and X2 is low then Class = 10.50130.03149Rule5If X8 is low and X12 is high and X10 is low and X2 is high then Class = 20.51590.02537Rule6If X8 is low and X12 is high and X10 is high and X4 is low then Class = 10.58010.01211Rule7If X8 is low and X12 is high and X10 is high and X4 is high then Class = 20.56480.01475Rule8If X8 is high and X7 is low then Class = 10.56010.09951Rule9If X8 is high and X7 is high and X11 is low and X8 is low then Class = 10.53880.02845Rule10If X8 is high and X7 is high and X11 is low and X8 is high then Class = 20.66140.03755Rule11If X8 is high and X7 is high and X11 is low and X12 is low then Class = 20.59310.01464Rule12If X8 is high and X7 is high and X11 is low and X12 is high then Class = 20.56760.01653


## 4.1. Fuzzy Rule Extractions

In order to illustrate the tree structure obtained by the NFHB-Class Method, we have selected the test performed with gneiss rock class. We used the database containing only the RGB channels' coefficients as attributes (Gneiss2), using the adaptive feature selection strategy and decomposition rate ofδ = 0.1. In this case, the success in the training set was 96% and the validation set was 94%. Figure 6 shows the complete structure presented by the HNFB-Class Method for the gneiss rock. The illustrated Class1 and Class2 represent the subclasses granite gneiss and leucocratic gneiss, respectively.In Figure6, the attributes are encoded by: X2—Hurst coefficient for Red channel, X3—Hurst coefficient for Green channel, X4—Hurst coefficient for Blue channel, X6—SVC for Red channel, X7—SVC for Green channel, X8—SVC for Blue channel, X10—Entropy for Red Channel, X11—Entropy for Green Channel, X12—Entropy for Blue channel.Following the path in the tree, it is possible to extract rules that describe the database of gneiss rock. Table10 lists the fuzzy rules extracted from the tree structure in Figure 6.Table 10
Fuzzy rules.
RulesAccuracyCoverageRule1If X8 is low and X12 is low and X6 is low then Class = 10.68130.1105Rule2If X8 is low and X12 is low and X6 is high and X3 is low then Class = 10.5480.06137Rule3If X8 is low and X12 is low and X6 is high and X3 is high then Class = 10.51520.05707Rule4If X8 is low and X12 is high and X10 is low and X2 is low then Class = 10.50130.03149Rule5If X8 is low and X12 is high and X10 is low and X2 is high then Class = 20.51590.02537Rule6If X8 is low and X12 is high and X10 is high and X4 is low then Class = 10.58010.01211Rule7If X8 is low and X12 is high and X10 is high and X4 is high then Class = 20.56480.01475Rule8If X8 is high and X7 is low then Class = 10.56010.09951Rule9If X8 is high and X7 is high and X11 is low and X8 is low then Class = 10.53880.02845Rule10If X8 is high and X7 is high and X11 is low and X8 is high then Class = 20.66140.03755Rule11If X8 is high and X7 is high and X11 is low and X12 is low then Class = 20.59310.01464Rule12If X8 is high and X7 is high and X11 is low and X12 is high then Class = 20.56760.01653


## 5. Conclusions

This paper presents an NFHB-Class Method for the classification of rocks, constituting an approach which creates its own architecture. Two strategies for feature selection in the database have been adopted; fixed and adaptive. Using the algorithm embedded in the model of Jang, it is not necessary to use principal component analysis to determine the best combination of attributes which is more representative for the rock textures.The results obtained with the NFHB-Class Method, in terms of the classification task, achieved more than 73% accuracy in the validation set for all classes of rocks, which indicates its great potential in performing this task.For the gneiss rock class, the best result in the four databases tested was 98% in the validation set. For the basalt rock class, the result was 87%. For the diabase rock class, the best result for all databases tested was 73.6% in the validation set. For the rhyolite rock class we obtained 78.4%.One of the advantages of NFHB-Class Method is the fact that it generates fuzzy rules that explain the extraction of knowledge, that is, it is possible to have a very satisfactory rating. Therefore, it presents a explanation for the classification, which does not happen if a neural network or a committee of neural networks are employed in a classification task.Moreover, another advantage of NFHB-Class Method is the fact that it avoids the task of testing multiple structures in the search of a good performance to the problem. In the case of neural networks, this means empirically determining the best number of hidden layers and processing elements (neurons) for each layer. In the case of fuzzy systems, it means finding the best number of partitions in the universe of discourse for each input variable. In addition, it is important to consider the minimization of problems generated by over and under dimensioning of these structures (overfitting and no-convergence).As a disadvantage, it is important to point to the fact that the learning algorithm of the NFHB-Class Method requires more complex programming than the training algorithm of the neural networks. This is due to the fact that there is no fixed structure or a constant number of adjustable parameters.Tests with the NFHB-Class Method, converged to optimum solution for the classification taking into account the fuzzy rules extraction, revealed good performance.One of the proposals for future work is to hybridize the HNFB-Class Method so that it is capable of performing the macro classification, with the subclassification done automatically. Furthermore, executing applications of this model in other areas, such as in the classification of metals, is also intended.



---

*Source: 163635-2010-08-02.xml*