Fuzzy Subtractive Clustering
Fuzzy Subtractive Clustering
the system modeled using the subtractive clustering method, we normalize data vectors of both input and output to be into a cube of the range [0 1]. As long as we have to input vectors, we shall combine them to form a matrix. Both inputs shall affect the output simultaneously. Using the default parameter values in Matlab [1] for the (cluster radius, squash factor, accept ratio and reject ratio) would give 18 rules. However, it is required to have 8-clusters to group data elements which would give 8-Fuzzy inference rules that best represent the system behaviour. In order to have the optimal 8-clusters, we set the parameters to "i" and "j" in which specifies a range of influences for the first and second data dimensions respectively. The range of squash factor is set to "k", where we want to only find clusters that are far from each other, the range of accept ratio is set to "l", and want only to accept data points that have very strong potential of being cluster centers, the reject ratio is set to "m", where the desired value should indicate all rejected data points without a strong potential. We get the best 8-rules by the use of the following parameters: Radii of Input1 = 0.4, Input 2 = 0.3, Output = 0.5 ; Accept Ratio = 1, Squash factor = 1, Reject Ratio = 0.7 Found cluster 1, potential = 1 Found cluster 2, potential = 0.930775 Found cluster 3, potential = 0.852398 Found cluster 4, potential = 0.832527 Found cluster 5, potential = 0.805842 Found cluster 6, potential = 0.800411 Found cluster 7, potential = 0.782423 Found cluster 8, potential = 0.71071 Centers are: 0.8125 0.8125 0.1875 0.5938 0.8125 0.5938 0 0.1875 0.4000 0.8000 0.2000 0.6000 1.0000 0.2000 0.4000 0.6000 0.3521 0.1549 0.3662 0.3662 0.3803 0.6620 0.4648 0.6479
Fig. 1
Fuzzy membership functions are shown in Fig. (2) and FIS rules shown in Fig. (3)
Fig(3)
If (in1 is in1 cluster1) and (in2 is in2clster1) then (out1 is out1 cluster1) If (in1 is in1 cluster2) and (in2 is in2clster2) then (out1 is out1 cluster2) If (in1 is in1 cluster3) and (in2 is in2clster3) then (out1 is out1 cluster3) If (in1 is in1 cluster4) and (in2 is in2clster4) then (out1 is out1 cluster4) If (in1 is in1 cluster5) and (in2 is in2clster5) then (out1 is out1 cluster5) If (in1 is in1 cluster6) and (in2 is in2clster6) then (out1 is out1 cluster6) If (in1 is in1 cluster7) and (in2 is in2clster7) then (out1 is out1 cluster7) If (in1 is in1 cluster8) and (in2 is in2clster8) then (out1 is out1 cluster8) 0.0929
Y1(X1,X2) = 0.0690157180 X1 - 41.8327817641428 X2 + 9.33103308955827 Y2(X1,X2) = -0.938856828703515 X1- 49724.896665724 X2 + 29266.9970854780 Y3(X1,X2) = -1.85689992078380 X1 - 0.7766201363583 X2 + 0.820251194716423 Y4(X1,X2) = 3.52417109391148 X1 - 1.38897077385939 X2 - 1.03378080959155 Y5(X1,X2) = 0.366839966622065X1 - 293746.743247493 X2 + 297204.630164670 Y6(X1,X2) = -3.76474037162062X1 - 1.06500620966171 X2 + 3.04093019944625 Y7 (X1,X2) = 2.28581727748513 X1 + 4.84890180807385 X2 - 1.36638232328503 Y8 (X1,X2) = 2.51504930138581 X1 + 1.52136370150582 X2 - 1.00119410244872
We can see input (1) has a higher influence on the system behaviour
Fig(5)
References: [1]: Matlab [2]: Fuzzy logic with engineering applications, 3rd edition, by Timothy J. Ross. Other References: 1- Fuzzy Subtractive Clustering Based Indexing Approach for Software Components Classification paper. 2- Data Mining for extraction of fuzzy IF-THEN rules using Mamdani and Takagi-Sugeno-Kang FIS 3- Lectures.