library(readxl)
cmcData <- read_excel(path = "datakanker.xlsx")
diagnosis <- as.numeric(cmcData$diagnosis == "M")
cmcData$diagnosis <- diagnosis
cmcData
## # A tibble: 569 × 32
##          id diagnosis radius_m…¹ textu…² perim…³ area_…⁴ smoot…⁵ compa…⁶ conca…⁷
##       <dbl>     <dbl>      <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>
##  1   842302         1       18.0    10.4   123.    1001   0.118   0.278   0.300 
##  2   842517         1       20.6    17.8   133.    1326   0.0847  0.0786  0.0869
##  3 84300903         1       19.7    21.2   130     1203   0.110   0.160   0.197 
##  4 84348301         1       11.4    20.4    77.6    386.  0.142   0.284   0.241 
##  5 84358402         1       20.3    14.3   135.    1297   0.100   0.133   0.198 
##  6   843786         1       12.4    15.7    82.6    477.  0.128   0.17    0.158 
##  7   844359         1       18.2    20.0   120.    1040   0.0946  0.109   0.113 
##  8 84458202         1       13.7    20.8    90.2    578.  0.119   0.164   0.0937
##  9   844981         1       13      21.8    87.5    520.  0.127   0.193   0.186 
## 10 84501001         1       12.5    24.0    84.0    476.  0.119   0.240   0.227 
## # … with 559 more rows, 23 more variables: concave_points_mean <dbl>,
## #   symmetry_mean <dbl>, fractal_dimension_mean <dbl>, radius_se <dbl>,
## #   texture_se <dbl>, perimeter_se <dbl>, area_se <dbl>, smoothness_se <dbl>,
## #   compactness_se <dbl>, concavity_se <dbl>, `concave points_se` <dbl>,
## #   symmetry_se <dbl>, fractal_dimension_se <dbl>, radius_worst <dbl>,
## #   texture_worst <dbl>, perimeter_worst <dbl>, area_worst <dbl>,
## #   smoothness_worst <dbl>, compactness_worst <dbl>, concavity_worst <dbl>, …
#data training diambil dari data index ke-100 sampai ke-250 dengan kolom ke-1 sampai ke-5
training <- cmcData[100:250,1:5]
#untuk testing kolom yang dipakai adalah kolom ke-1 sampai ke-4
testing <- cmcData[251:nrow(cmcData),1:4]
#untuk validasi kolom yang dipakai adalah kolom ke-5
validasi <- cmcData[251:nrow(cmcData),5]
#data_research yang digunakan adalah kolom 1(id) dan 5(perimeter_mean)
data_research <- cmcData[251:nrow(cmcData),c(1,5)]
training 
## # A tibble: 151 × 5
##        id diagnosis radius_mean texture_mean perimeter_mean
##     <dbl>     <dbl>       <dbl>        <dbl>          <dbl>
##  1 862548         1       14.4          19.8           94.5
##  2 862717         1       13.6          25.0           88.0
##  3 862722         0        6.98         13.4           43.8
##  4 862965         0       12.2          20.5           77.2
##  5 862980         0        9.88         19.4           64.0
##  6 862989         0       10.5          19.3           67.4
##  7 863030         1       13.1          15.6           87.2
##  8 863031         0       11.6          18.3           75.2
##  9 863270         0       12.4          18.5           79.0
## 10  86355         1       22.3          19.7          153. 
## # … with 141 more rows
testing
## # A tibble: 319 × 4
##          id diagnosis radius_mean texture_mean
##       <dbl>     <dbl>       <dbl>        <dbl>
##  1   884948         1        20.9         23.6
##  2 88518501         0        11.5         18.4
##  3   885429         1        19.7         19.8
##  4  8860702         1        17.3         17.1
##  5   886226         1        19.4         19.3
##  6   886452         1        14.0         17.0
##  7 88649001         1        19.6         28.8
##  8   886776         1        15.3         17.3
##  9   887181         1        15.7         23.2
## 10 88725602         1        15.5         33.6
## # … with 309 more rows
validasi
## # A tibble: 319 × 1
##    perimeter_mean
##             <dbl>
##  1          139. 
##  2           73.3
##  3          131. 
##  4          113  
##  5          126. 
##  6           91.4
##  7          134. 
##  8          103. 
##  9          110. 
## 10          104. 
## # … with 309 more rows
data_research
## # A tibble: 319 × 2
##          id perimeter_mean
##       <dbl>          <dbl>
##  1   884948          139. 
##  2 88518501           73.3
##  3   885429          131. 
##  4  8860702          113  
##  5   886226          126. 
##  6   886452           91.4
##  7 88649001          134. 
##  8   886776          103. 
##  9   887181          110. 
## 10 88725602          104. 
## # … with 309 more rows
## Define interval of data
range.data <-apply(training, 2, range)
range.data
##             id diagnosis radius_mean texture_mean perimeter_mean
## [1,]      8670         0       6.981         9.71          43.79
## [2,] 881094802         1      28.110        39.28         188.50
## Set the method and its parameters,
## for example, we use Wang and Mendel's algorithm
method.type <- "WM"
control <- list(num.labels = 15, type.mf = "GAUSSIAN", type.defuz = "COG",
type.tnorm = "MIN", type.snorm = "MAX", type.implication.func = "LUKASIEWICZ",
name = "fourhill")
library(frbs)
## Learning step: Generate an FRBS model
object.reg <- frbs.learn(training, range.data, method.type, control)
## Predicting step: Predict for newdata
res.test <- predict(object.reg, testing)
## [1] "note: Some of your new data are out of the previously specified range"
## Display the FRBS model
summary(object.reg)
## The name of model:  fourhill 
## Model was trained using:  WM 
## The names of attributes:  id diagnosis radius_mean texture_mean perimeter_mean 
## The interval of training data:  
##            id diagnosis radius_mean texture_mean perimeter_mean
## min      8670         0       6.981         9.71          43.79
## max 881094802         1      28.110        39.28         188.50
## Type of FRBS model: 
## [1] "MAMDANI"
## Type of membership functions: 
## [1] "GAUSSIAN"
## Type of t-norm method: 
## [1] "Standard t-norm (min)"
## Type of s-norm method: 
## [1] "Standard s-norm"
## Type of defuzzification technique: 
## [1] "modified COG"
## Type of implication function: 
## [1] "LUKASIEWICZ"
## The names of linguistic terms on the input variables:  
##  [1] "v.1_a.1"  "v.1_a.2"  "v.1_a.3"  "v.1_a.4"  "v.1_a.5"  "v.1_a.6" 
##  [7] "v.1_a.7"  "v.1_a.8"  "v.1_a.9"  "v.1_a.10" "v.1_a.11" "v.1_a.12"
## [13] "v.1_a.13" "v.1_a.14" "v.1_a.15" "v.2_a.1"  "v.2_a.2"  "v.2_a.3" 
## [19] "v.2_a.4"  "v.2_a.5"  "v.2_a.6"  "v.2_a.7"  "v.2_a.8"  "v.2_a.9" 
## [25] "v.2_a.10" "v.2_a.11" "v.2_a.12" "v.2_a.13" "v.2_a.14" "v.2_a.15"
## [31] "v.3_a.1"  "v.3_a.2"  "v.3_a.3"  "v.3_a.4"  "v.3_a.5"  "v.3_a.6" 
## [37] "v.3_a.7"  "v.3_a.8"  "v.3_a.9"  "v.3_a.10" "v.3_a.11" "v.3_a.12"
## [43] "v.3_a.13" "v.3_a.14" "v.3_a.15" "v.4_a.1"  "v.4_a.2"  "v.4_a.3" 
## [49] "v.4_a.4"  "v.4_a.5"  "v.4_a.6"  "v.4_a.7"  "v.4_a.8"  "v.4_a.9" 
## [55] "v.4_a.10" "v.4_a.11" "v.4_a.12" "v.4_a.13" "v.4_a.14" "v.4_a.15"
## The parameter values of membership function on the input variable (normalized):  
##      v.1_a.1    v.1_a.2   v.1_a.3   v.1_a.4   v.1_a.5   v.1_a.6   v.1_a.7
## [1,]   5.000 5.00000000 5.0000000 5.0000000 5.0000000 5.0000000 5.0000000
## [2,]   0.000 0.07142857 0.1428571 0.2142857 0.2857143 0.3571429 0.4285714
## [3,]   0.025 0.02500000 0.0250000 0.0250000 0.0250000 0.0250000 0.0250000
## [4,]      NA         NA        NA        NA        NA        NA        NA
## [5,]      NA         NA        NA        NA        NA        NA        NA
##      v.1_a.8   v.1_a.9  v.1_a.10  v.1_a.11  v.1_a.12  v.1_a.13  v.1_a.14
## [1,]   5.000 5.0000000 5.0000000 5.0000000 5.0000000 5.0000000 5.0000000
## [2,]   0.500 0.5714286 0.6428571 0.7142857 0.7857143 0.8571429 0.9285714
## [3,]   0.025 0.0250000 0.0250000 0.0250000 0.0250000 0.0250000 0.0250000
## [4,]      NA        NA        NA        NA        NA        NA        NA
## [5,]      NA        NA        NA        NA        NA        NA        NA
##      v.1_a.15 v.2_a.1    v.2_a.2   v.2_a.3   v.2_a.4   v.2_a.5   v.2_a.6
## [1,]    5.000   5.000 5.00000000 5.0000000 5.0000000 5.0000000 5.0000000
## [2,]    1.000   0.000 0.07142857 0.1428571 0.2142857 0.2857143 0.3571429
## [3,]    0.025   0.025 0.02500000 0.0250000 0.0250000 0.0250000 0.0250000
## [4,]       NA      NA         NA        NA        NA        NA        NA
## [5,]       NA      NA         NA        NA        NA        NA        NA
##        v.2_a.7 v.2_a.8   v.2_a.9  v.2_a.10  v.2_a.11  v.2_a.12  v.2_a.13
## [1,] 5.0000000   5.000 5.0000000 5.0000000 5.0000000 5.0000000 5.0000000
## [2,] 0.4285714   0.500 0.5714286 0.6428571 0.7142857 0.7857143 0.8571429
## [3,] 0.0250000   0.025 0.0250000 0.0250000 0.0250000 0.0250000 0.0250000
## [4,]        NA      NA        NA        NA        NA        NA        NA
## [5,]        NA      NA        NA        NA        NA        NA        NA
##       v.2_a.14 v.2_a.15 v.3_a.1    v.3_a.2   v.3_a.3   v.3_a.4   v.3_a.5
## [1,] 5.0000000    5.000   5.000 5.00000000 5.0000000 5.0000000 5.0000000
## [2,] 0.9285714    1.000   0.000 0.07142857 0.1428571 0.2142857 0.2857143
## [3,] 0.0250000    0.025   0.025 0.02500000 0.0250000 0.0250000 0.0250000
## [4,]        NA       NA      NA         NA        NA        NA        NA
## [5,]        NA       NA      NA         NA        NA        NA        NA
##        v.3_a.6   v.3_a.7 v.3_a.8   v.3_a.9  v.3_a.10  v.3_a.11  v.3_a.12
## [1,] 5.0000000 5.0000000   5.000 5.0000000 5.0000000 5.0000000 5.0000000
## [2,] 0.3571429 0.4285714   0.500 0.5714286 0.6428571 0.7142857 0.7857143
## [3,] 0.0250000 0.0250000   0.025 0.0250000 0.0250000 0.0250000 0.0250000
## [4,]        NA        NA      NA        NA        NA        NA        NA
## [5,]        NA        NA      NA        NA        NA        NA        NA
##       v.3_a.13  v.3_a.14 v.3_a.15 v.4_a.1    v.4_a.2   v.4_a.3   v.4_a.4
## [1,] 5.0000000 5.0000000    5.000   5.000 5.00000000 5.0000000 5.0000000
## [2,] 0.8571429 0.9285714    1.000   0.000 0.07142857 0.1428571 0.2142857
## [3,] 0.0250000 0.0250000    0.025   0.025 0.02500000 0.0250000 0.0250000
## [4,]        NA        NA       NA      NA         NA        NA        NA
## [5,]        NA        NA       NA      NA         NA        NA        NA
##        v.4_a.5   v.4_a.6   v.4_a.7 v.4_a.8   v.4_a.9  v.4_a.10  v.4_a.11
## [1,] 5.0000000 5.0000000 5.0000000   5.000 5.0000000 5.0000000 5.0000000
## [2,] 0.2857143 0.3571429 0.4285714   0.500 0.5714286 0.6428571 0.7142857
## [3,] 0.0250000 0.0250000 0.0250000   0.025 0.0250000 0.0250000 0.0250000
## [4,]        NA        NA        NA      NA        NA        NA        NA
## [5,]        NA        NA        NA      NA        NA        NA        NA
##       v.4_a.12  v.4_a.13  v.4_a.14 v.4_a.15
## [1,] 5.0000000 5.0000000 5.0000000    5.000
## [2,] 0.7857143 0.8571429 0.9285714    1.000
## [3,] 0.0250000 0.0250000 0.0250000    0.025
## [4,]        NA        NA        NA       NA
## [5,]        NA        NA        NA       NA
## The names of linguistic terms on the output variable:  
##  [1] "c.1"  "c.2"  "c.3"  "c.4"  "c.5"  "c.6"  "c.7"  "c.8"  "c.9"  "c.10"
## [11] "c.11" "c.12" "c.13" "c.14" "c.15"
## The parameter values of membership function on the output variable (normalized):  
##        c.1        c.2       c.3       c.4       c.5       c.6       c.7   c.8
## [1,] 5.000 5.00000000 5.0000000 5.0000000 5.0000000 5.0000000 5.0000000 5.000
## [2,] 0.000 0.07142857 0.1428571 0.2142857 0.2857143 0.3571429 0.4285714 0.500
## [3,] 0.025 0.02500000 0.0250000 0.0250000 0.0250000 0.0250000 0.0250000 0.025
## [4,]    NA         NA        NA        NA        NA        NA        NA    NA
## [5,]    NA         NA        NA        NA        NA        NA        NA    NA
##            c.9      c.10      c.11      c.12      c.13      c.14  c.15
## [1,] 5.0000000 5.0000000 5.0000000 5.0000000 5.0000000 5.0000000 5.000
## [2,] 0.5714286 0.6428571 0.7142857 0.7857143 0.8571429 0.9285714 1.000
## [3,] 0.0250000 0.0250000 0.0250000 0.0250000 0.0250000 0.0250000 0.025
## [4,]        NA        NA        NA        NA        NA        NA    NA
## [5,]        NA        NA        NA        NA        NA        NA    NA
## The number of linguistic terms on each variables 
##      id diagnosis radius_mean texture_mean perimeter_mean
## [1,] 15        15          15           15             15
## The fuzzy IF-THEN rules:  
##    V1 V2 V3       V4  V5        V6 V7       V8  V9         V10 V11      V12 V13
## 1  IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.6 and
## 2  IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.5 and
## 3  IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.1 and
## 4  IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.4 and
## 5  IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.3 and
## 6  IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.5 and
## 7  IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.4 and
## 8  IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.5 and
## 9  IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.3 and
## 10 IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.6 and
## 11 IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.4 and
## 12 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.7 and
## 13 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.8 and
## 14 IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.4 and
## 15 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.9 and
## 16 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is v.3_a.12 and
## 17 IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.6 and
## 18 IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.5 and
## 19 IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.6 and
## 20 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.9 and
## 21 IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.4 and
## 22 IF id is  v.1_a.2 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.7 and
## 23 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.9 and
## 24 IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.4 and
## 25 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.6 and
## 26 IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.3 and
## 27 IF id is  v.1_a.2 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.6 and
## 28 IF id is  v.1_a.2 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.6 and
## 29 IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.5 and
## 30 IF id is v.1_a.15 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.5 and
## 31 IF id is v.1_a.15 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.2 and
## 32 IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.8 and
## 33 IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.4 and
## 34 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.9 and
## 35 IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.4 and
## 36 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.7 and
## 37 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.8 and
## 38 IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.6 and
## 39 IF id is  v.1_a.2 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.5 and
## 40 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.5 and
## 41 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.7 and
## 42 IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.2 and
## 43 IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.3 and
## 44 IF id is  v.1_a.2 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.7 and
## 45 IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.5 and
## 46 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is v.3_a.14 and
## 47 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.6 and
## 48 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.9 and
## 49 IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.5 and
## 50 IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.5 and
## 51 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.5 and
## 52 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.5 and
## 53 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.8 and
## 54 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is v.3_a.12 and
## 55 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.6 and
## 56 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.6 and
## 57 IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.6 and
## 58 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is v.3_a.15 and
## 59 IF id is v.1_a.15 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.8 and
## 60 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.9 and
## 61 IF id is  v.1_a.2 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.9 and
## 62 IF id is  v.1_a.2 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.6 and
## 63 IF id is  v.1_a.2 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.3 and
## 64 IF id is  v.1_a.2 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.5 and
## 65 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.5 and
## 66 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.8 and
## 67 IF id is  v.1_a.2 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.4 and
## 68 IF id is  v.1_a.2 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.4 and
## 69 IF id is  v.1_a.2 and diagnosis is v.2_a.15 and radius_mean  is v.3_a.10 and
## 70 IF id is  v.1_a.2 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.6 and
## 71 IF id is  v.1_a.2 and diagnosis is v.2_a.15 and radius_mean  is v.3_a.12 and
## 72 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is v.3_a.10 and
## 73 IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.6 and
## 74 IF id is  v.1_a.2 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.8 and
## 75 IF id is  v.1_a.2 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.5 and
## 76 IF id is  v.1_a.2 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.3 and
## 77 IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.2 and
## 78 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.7 and
## 79 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.8 and
## 80 IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.5 and
## 81 IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.5 and
## 82 IF id is v.1_a.15 and diagnosis is v.2_a.15 and radius_mean  is v.3_a.10 and
## 83 IF id is  v.1_a.2 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.6 and
## 84 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is v.3_a.10 and
## 85 IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.3 and
## 86 IF id is  v.1_a.1 and diagnosis is  v.2_a.1 and radius_mean  is  v.3_a.7 and
## 87 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is  v.3_a.4 and
## 88 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is v.3_a.11 and
## 89 IF id is  v.1_a.1 and diagnosis is v.2_a.15 and radius_mean  is v.3_a.12 and
##             V14 V15      V16  V17            V18 V19  V20
## 1  texture_mean  is  v.4_a.6 THEN perimeter_mean  is  c.6
## 2  texture_mean  is  v.4_a.8 THEN perimeter_mean  is  c.5
## 3  texture_mean  is  v.4_a.3 THEN perimeter_mean  is  c.1
## 4  texture_mean  is  v.4_a.6 THEN perimeter_mean  is  c.4
## 5  texture_mean  is  v.4_a.6 THEN perimeter_mean  is  c.3
## 6  texture_mean  is  v.4_a.4 THEN perimeter_mean  is  c.5
## 7  texture_mean  is  v.4_a.5 THEN perimeter_mean  is  c.4
## 8  texture_mean  is  v.4_a.5 THEN perimeter_mean  is  c.4
## 9  texture_mean  is  v.4_a.4 THEN perimeter_mean  is  c.3
## 10 texture_mean  is  v.4_a.6 THEN perimeter_mean  is  c.6
## 11 texture_mean  is  v.4_a.7 THEN perimeter_mean  is  c.4
## 12 texture_mean  is  v.4_a.7 THEN perimeter_mean  is  c.7
## 13 texture_mean  is  v.4_a.6 THEN perimeter_mean  is  c.8
## 14 texture_mean  is  v.4_a.2 THEN perimeter_mean  is  c.4
## 15 texture_mean  is  v.4_a.5 THEN perimeter_mean  is  c.9
## 16 texture_mean  is  v.4_a.6 THEN perimeter_mean  is c.13
## 17 texture_mean  is  v.4_a.2 THEN perimeter_mean  is  c.6
## 18 texture_mean  is  v.4_a.4 THEN perimeter_mean  is  c.5
## 19 texture_mean  is  v.4_a.5 THEN perimeter_mean  is  c.5
## 20 texture_mean  is  v.4_a.8 THEN perimeter_mean  is  c.9
## 21 texture_mean  is  v.4_a.3 THEN perimeter_mean  is  c.4
## 22 texture_mean  is  v.4_a.7 THEN perimeter_mean  is  c.7
## 23 texture_mean  is  v.4_a.7 THEN perimeter_mean  is  c.8
## 24 texture_mean  is  v.4_a.4 THEN perimeter_mean  is  c.4
## 25 texture_mean  is  v.4_a.5 THEN perimeter_mean  is  c.6
## 26 texture_mean  is  v.4_a.3 THEN perimeter_mean  is  c.3
## 27 texture_mean  is  v.4_a.5 THEN perimeter_mean  is  c.6
## 28 texture_mean  is  v.4_a.4 THEN perimeter_mean  is  c.6
## 29 texture_mean  is  v.4_a.5 THEN perimeter_mean  is  c.5
## 30 texture_mean  is  v.4_a.6 THEN perimeter_mean  is  c.5
## 31 texture_mean  is  v.4_a.6 THEN perimeter_mean  is  c.2
## 32 texture_mean  is  v.4_a.6 THEN perimeter_mean  is  c.7
## 33 texture_mean  is  v.4_a.3 THEN perimeter_mean  is  c.3
## 34 texture_mean  is  v.4_a.4 THEN perimeter_mean  is  c.9
## 35 texture_mean  is  v.4_a.1 THEN perimeter_mean  is  c.3
## 36 texture_mean  is  v.4_a.5 THEN perimeter_mean  is  c.7
## 37 texture_mean  is  v.4_a.8 THEN perimeter_mean  is  c.8
## 38 texture_mean  is  v.4_a.4 THEN perimeter_mean  is  c.6
## 39 texture_mean  is  v.4_a.2 THEN perimeter_mean  is  c.4
## 40 texture_mean  is  v.4_a.6 THEN perimeter_mean  is  c.5
## 41 texture_mean  is  v.4_a.2 THEN perimeter_mean  is  c.7
## 42 texture_mean  is  v.4_a.3 THEN perimeter_mean  is  c.2
## 43 texture_mean  is  v.4_a.5 THEN perimeter_mean  is  c.3
## 44 texture_mean  is  v.4_a.6 THEN perimeter_mean  is  c.7
## 45 texture_mean  is  v.4_a.3 THEN perimeter_mean  is  c.5
## 46 texture_mean  is  v.4_a.7 THEN perimeter_mean  is c.14
## 47 texture_mean  is  v.4_a.7 THEN perimeter_mean  is  c.6
## 48 texture_mean  is  v.4_a.5 THEN perimeter_mean  is  c.8
## 49 texture_mean  is  v.4_a.4 THEN perimeter_mean  is  c.4
## 50 texture_mean  is  v.4_a.7 THEN perimeter_mean  is  c.5
## 51 texture_mean  is  v.4_a.9 THEN perimeter_mean  is  c.5
## 52 texture_mean  is  v.4_a.7 THEN perimeter_mean  is  c.6
## 53 texture_mean  is  v.4_a.7 THEN perimeter_mean  is  c.8
## 54 texture_mean  is  v.4_a.9 THEN perimeter_mean  is c.12
## 55 texture_mean  is  v.4_a.8 THEN perimeter_mean  is  c.6
## 56 texture_mean  is  v.4_a.4 THEN perimeter_mean  is  c.6
## 57 texture_mean  is  v.4_a.3 THEN perimeter_mean  is  c.6
## 58 texture_mean  is  v.4_a.5 THEN perimeter_mean  is c.15
## 59 texture_mean  is  v.4_a.9 THEN perimeter_mean  is  c.8
## 60 texture_mean  is  v.4_a.7 THEN perimeter_mean  is  c.9
## 61 texture_mean  is v.4_a.12 THEN perimeter_mean  is  c.9
## 62 texture_mean  is  v.4_a.3 THEN perimeter_mean  is  c.6
## 63 texture_mean  is  v.4_a.4 THEN perimeter_mean  is  c.3
## 64 texture_mean  is  v.4_a.8 THEN perimeter_mean  is  c.5
## 65 texture_mean  is  v.4_a.7 THEN perimeter_mean  is  c.5
## 66 texture_mean  is  v.4_a.5 THEN perimeter_mean  is  c.8
## 67 texture_mean  is  v.4_a.9 THEN perimeter_mean  is  c.4
## 68 texture_mean  is v.4_a.12 THEN perimeter_mean  is  c.4
## 69 texture_mean  is v.4_a.10 THEN perimeter_mean  is c.10
## 70 texture_mean  is  v.4_a.6 THEN perimeter_mean  is  c.5
## 71 texture_mean  is  v.4_a.9 THEN perimeter_mean  is c.12
## 72 texture_mean  is  v.4_a.7 THEN perimeter_mean  is c.10
## 73 texture_mean  is v.4_a.10 THEN perimeter_mean  is  c.6
## 74 texture_mean  is v.4_a.15 THEN perimeter_mean  is  c.8
## 75 texture_mean  is  v.4_a.4 THEN perimeter_mean  is  c.5
## 76 texture_mean  is  v.4_a.8 THEN perimeter_mean  is  c.3
## 77 texture_mean  is  v.4_a.4 THEN perimeter_mean  is  c.2
## 78 texture_mean  is  v.4_a.6 THEN perimeter_mean  is  c.7
## 79 texture_mean  is  v.4_a.6 THEN perimeter_mean  is  c.7
## 80 texture_mean  is  v.4_a.6 THEN perimeter_mean  is  c.5
## 81 texture_mean  is  v.4_a.7 THEN perimeter_mean  is  c.4
## 82 texture_mean  is  v.4_a.7 THEN perimeter_mean  is c.10
## 83 texture_mean  is  v.4_a.7 THEN perimeter_mean  is  c.6
## 84 texture_mean  is  v.4_a.9 THEN perimeter_mean  is c.11
## 85 texture_mean  is  v.4_a.2 THEN perimeter_mean  is  c.3
## 86 texture_mean  is  v.4_a.3 THEN perimeter_mean  is  c.7
## 87 texture_mean  is  v.4_a.4 THEN perimeter_mean  is  c.4
## 88 texture_mean  is  v.4_a.6 THEN perimeter_mean  is c.12
## 89 texture_mean  is  v.4_a.7 THEN perimeter_mean  is c.11
## Plot the membership functions
plotMF(object.reg)

pred <- predict(object.reg, testing)
## [1] "note: Some of your new data are out of the previously specified range"
str(pred)
##  num [1:319, 1] 137 74 122 115 122 ...
str(data_research)
## tibble [319 × 2] (S3: tbl_df/tbl/data.frame)
##  $ id            : num [1:319] 884948 88518501 885429 8860702 886226 ...
##  $ perimeter_mean: num [1:319] 138.9 73.3 130.7 113 126.5 ...
data_research$predict <- pred
data_research
## # A tibble: 319 × 3
##          id perimeter_mean predict[,1]
##       <dbl>          <dbl>       <dbl>
##  1   884948          139.        137. 
##  2 88518501           73.3        74.0
##  3   885429          131.        122. 
##  4  8860702          113         115. 
##  5   886226          126.        122. 
##  6   886452           91.4        92.2
##  7 88649001          134.        137. 
##  8   886776          103.        101. 
##  9   887181          110.        104. 
## 10 88725602          104.        126. 
## # … with 309 more rows
data_research$residual <- (data_research$perimeter_mean - data_research$predict)
data_research
## # A tibble: 319 × 4
##          id perimeter_mean predict[,1] residual[,1]
##       <dbl>          <dbl>       <dbl>        <dbl>
##  1   884948          139.        137.         2.23 
##  2 88518501           73.3        74.0       -0.743
##  3   885429          131.        122.         8.97 
##  4  8860702          113         115.        -1.88 
##  5   886226          126.        122.         4.99 
##  6   886452           91.4        92.2       -0.748
##  7 88649001          134.        137.        -3.24 
##  8   886776          103.        101.         1.80 
##  9   887181          110.        104.         5.86 
## 10 88725602          104.        126.       -22.8  
## # … with 309 more rows
mean(data_research$predict != data_research$perimeter_mean)
## [1] 1
accuracy <- table(data_research$predict, data_research$perimeter_mean)
sum(diag(accuracy))/sum(accuracy)
## [1] 0.03134796