def to_matrix(self, values, selected_regions, default_value=0):
        """Creates a 2D multi-indexed matrix representation of the data.
            This representation allows the data to be sent to the machine learning algorithms.

        Args:
            :param values: The value or values that are going to fill the matrix.
            :param selected_regions: The index to one axis of the matrix.
            :param default_value: The default fill value of the matrix

        """
        if isinstance(values, list):
            for v in values:
                try:
                    self.data[v] = self.data[v].map(float)
                except:
                    print(self.data[v])
        else:
            self.data[values] = self.data[values].map(float)
        print("started pivoting")
        self.data = pd.pivot_table(self.data,
                                   values=values, columns=selected_regions, index=['sample'],
                                   fill_value=default_value)
        print("end of pivoting")
Creates a 2D multi-indexed matrix representation of the data.
            This representation allows the data to be sent to the machine learning algorithms.

        Args:
            :param values: The value or values that are going to fill the matrix.
            :param selected_regions: The index to one axis of the matrix.
            :param default_value: The default fill value of the matrix