def createInputVector(self, instance: Instance): """ The createInputVector method takes an Instance as an input. It converts given Instance to the Vector and insert 1.0 to the first element. PARAMETERS ---------- instance : Instance Instance to insert 1.0. """ self.x = instance.toVector() self.x.insert(0, 1.0)
def distance(self, instance1: Instance, instance2: Instance) -> float: """ Calculates Mahalanobis distance between two instances. (x^(1) - x^(2)) S (x^(1) - x^(2))^T PARAMETERS ---------- instance1 : Instance First instance. instance2 : Instance Second instance. RETURNS ------- float Mahalanobis distance between two instances. """ v1 = instance1.toVector() v2 = instance2.toVector() v1.subtract(v2) v3 = self.__covarianceInverse.multiplyWithVectorFromLeft(v1) return v3.dotProduct(v1)
def calculateMetric(self, instance: Instance, Ci: str) -> float: """ The calculateMetric method takes an Instance and a String as inputs. It returns the dot product of given Instance and wi plus w0i. PARAMETERS ---------- instance : Instance Instance input. Ci : str String input. RETURNS ------- float The dot product of given Instance and wi plus w0i. """ xi = instance.toVector() wi = self.w[Ci] w0i = self.w0[Ci] return wi.dotProduct(xi) + w0i
def calculateMetric(self, instance: Instance, Ci: str) -> float: """ The calculateMetric method takes an Instance and a String as inputs. It multiplies Matrix Wi with Vector xi then calculates the dot product of it with xi. Then, again it finds the dot product of wi and xi and returns the summation with w0i. PARAMETERS ---------- instance : Instance Instance input. Ci : str String input. RETURNS ------- float The result of Wi.multiplyWithVectorFromLeft(xi).dotProduct(xi) + wi.dotProduct(xi) + w0i. """ xi = instance.toVector() Wi = self.__W[Ci] wi = self.w[Ci] w0i = self.w0[Ci] return Wi.multiplyWithVectorFromLeft(xi).dotProduct( xi) + wi.dotProduct(xi) + w0i