# SPL Features Quantification and Selection Based on Multiple Multi-Level Objectives
## 3 Features Quantification
### Quantification of Numeric Properties  
Numeric properties can be quantified based on the operators presented in Table 4. \begin{table}
\begin{tabular}{c c c c} \hline \hline \multirow{2}{*}{**Operator**} & \multirow{2}{*}{**Type**} & \multicolumn{2}{c}{**Result**} \\ \cline{3-4}  & & **If Keywords [Array] =** & **Else** \\ \hline Include Strings & Fuzzy & 100\% & Strings found/total number of strings looking for * 100 \\ \hline Exclude Strings & Fuzzy & 0\% & 100\% to 1\% \\ \hline Include AND Exclude & Fuzzy & 100\% for Inclusion and 0\% for Exclusion & 1\% to 99\% based on average \\  & & Return average & Return average \\ \hline Must Include & Boolean & If all strings are matched, 100\% & Else 0\% \\ \hline Must Not Include & Boolean & 0\% & 100\% \\ \hline Must Include AND Must & Boolean & 100\% and 0\% & 0\% and 100\% \\ Exclude & & Return average & Return average \\ \hline Must Include AND Exclude & Fuzzy & 100\% and 0\% & 0\%–99\% and 100–1\% \\  & & Return average & Return average \\ \hline \hline \end{tabular}
\end{table} 
Table 3: Operators used for finding Strings/Text for the selection of Features. Boolean operators represented in Table 4 return either 0% or 100% based on the condition. For the fuzzy operators, the output varies between 0% and 100% based on certain elements. For each property P, the minimum and maximum values are represented as \(min_{P}\) and \(max_{P}\). The operations provided maps the input property value from the dataset, \(v_{i}\), of P to the output value, \(v^{\prime}_{i}\). The target value for the given property P is \(t_{p}\). In certain scenarios like between, there are two target values that indicates the top and bottom range values, represented as \(t^{1}_{p}\) and \(t^{2}_{p}\). The similarities present in the fuzzy operators are grouped into a procedure called \"Proximity Calculation\", which is invoked with suitable parameters. The label \"Lower-Better\" indicates that properties with values close to the lower limit will be given higher scores. For example, in case of Upto (Lower-Better), while values up to the target value will be accepted with a score, the lower the property value, the higher the score would be. The label \"Higher-Better\" works in a similar way but higher property value will result to higher score. For proximity calculation, we use the following inputs and formulas. The direction is represented as forward or backward. The faraway value used in the algorithm represents the minimum or maximum value of the property in the dataset. When the maximum property value is used, the backward direction is considered; for minimum property value, the forward direction is considered. Tget value: \(t_{p}\)  
Property value: \(v_{i}\)  
Faraway value: \(F_{v}\in\left\{min_{P},max_{P}\right\}\)  
Better (High or Low): \(B\in\left\{\left.h\right|l\right\}\)  
Direction (Forward or Backward): \(D\in\left\{f\right|b\right\}\)  
Input parameters in order: (Faraway value, Target value, Property value, Better, Direction)  
1. Calculate the range value: \(r=\left|F_{v}\right|+\left|t_{p}\right|\)
2. With Higher-Better and Backward:  
\[v^{\prime}_{i}=100-\left(\frac{\left|F_{v}\right|-\left|v_{i}\right|}{\left|F _{v}\right|-\left|t_{p}\right|}\ast 100\right)if\ (B=h)\cup(D=b)\]
3. With Higher-Better and Forward:  
\[v^{\prime}_{i}=\frac{\left|v_{i}\right|+\left|F_{v}\right|}{r}\ast 100\ if\ (B=h)\cup(D=f)\]
4. With Lower-Better and Backward:  
\[v^{\prime}_{i}=\frac{\left|F_{v}\right|-\left|v_{i}\right|}{\left|F_{v} \right|-\left|t_{p}\right|}\ast 100\ if\ (B=l)\cup(D=b)\]