跳到内容

算术转换器

此文件是 TPOT 库的一部分。

TPOT 的当前版本由 Cedars-Sinai 计算生物医学系的以下人员开发: - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) - Anil Saini (anil.saini@cshs.org) - Jose Hernandez (jgh9094@gmail.com) - Jay Moran (jay.moran@cshs.org) - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) - Hyunjun Choi (hyunjun.choi@cshs.org) - Gabriel Ketron (gabriel.ketron@cshs.org) - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) - Jason Moore (moorejh28@gmail.com)

TPOT 的原始版本主要由宾夕法尼亚大学的以下人员开发: - Randal S. Olson (rso@randalolson.com) - Weixuan Fu (weixuanf@upenn.edu) - Daniel Angell (dpa34@drexel.edu) - Jason Moore (moorejh28@gmail.com) - 以及许多慷慨的开源贡献者

TPOT 是免费软件:您可以根据自由软件基金会发布的 GNU 宽通用公共许可证的条款,重新分发和/或修改它,许可证的版本为第 3 版,或(由您选择)任何更高版本。

分发 TPOT 是希望它会有用,但没有任何担保;甚至不包括对适销性或特定用途适用性的默示担保。有关详细信息,请参阅 GNU 宽通用公共许可证。

您应该已经收到 GNU 宽通用公共许可证的副本以及 TPOT。如果没有,请访问 https://gnu.ac.cn/licenses/

AddTransformer

基类: BaseEstimator, TransformerMixin

源代码位于 tpot/builtin_modules/arithmetictransformer.py
class AddTransformer(BaseEstimator,TransformerMixin):
    def __init__(self):
          """
          A transformer that adds all elements along axis 1.
          """
          pass

    def fit(self, X, y=None):
        return self

    def transform(self, X):
        transformed_X = np.array(self.transform_helper(np.array(X)))
        if transformed_X.dtype != float:
            transformed_X = transformed_X.astype(float)

        return transformed_X

    def transform_helper(self, X):
        X = np.array(X)
        if len(X.shape) == 1:
            X = np.expand_dims(X,0)
        return np.expand_dims(np.sum(X,1),1)

__init__()

一个沿着轴 1 将所有元素相加的转换器。

源代码位于 tpot/builtin_modules/arithmetictransformer.py
def __init__(self):
      """
      A transformer that adds all elements along axis 1.
      """
      pass

ArithmeticTransformer

基类: BaseEstimator, TransformerMixin

源代码位于 tpot/builtin_modules/arithmetictransformer.py
class ArithmeticTransformer(BaseEstimator,TransformerMixin):

    #functions = ["add", "mul_neg_1", "mul", "safe_reciprocal", "eq","ne","ge","gt","le","lt", "min","max","0","1"]
    def __init__(self, function,):
        """
        A transformer that applies a function to the input array along axis 1.
        Parameters
        ----------

        function : str
            The function to apply to the input array. The following functions are supported:
            - 'add' : Add all elements along axis 1
            - 'mul_neg_1' : Multiply all elements along axis 1 by -1
            - 'mul' : Multiply all elements along axis 1
            - 'safe_reciprocal' : Take the reciprocal of all elements along axis 1, with a safe division by zero
            - 'eq' : Check if all elements along axis 1 are equal
            - 'ne' : Check if all elements along axis 1 are not equal
            - 'ge' : Check if all elements along axis 1 are greater than or equal to 0
            - 'gt' : Check if all elements along axis 1 are greater than 0
            - 'le' : Check if all elements along axis 1 are less than or equal to 0
            - 'lt' : Check if all elements along axis 1 are less than 0
            - 'min' : Take the minimum of all elements along axis 1
            - 'max' : Take the maximum of all elements along axis 1
            - '0' : Return an array of zeros
            - '1' : Return an array of ones
        """
        self.function = function

    def fit(self, X, y=None):
        return self

    def transform(self, X):
        transformed_X = np.array(self.transform_helper(np.array(X)))
        if transformed_X.dtype != float:
            transformed_X = transformed_X.astype(float)

        return transformed_X

    def transform_helper(self, X):
        X = np.array(X)
        if len(X.shape) == 1:
            X = np.expand_dims(X,0)
        if self.function == "add":
                return np.expand_dims(np.sum(X,1),1)
        elif self.function == "mul_neg_1":
                return X*-1
        elif self.function == "mul":
                return np.expand_dims(np.prod(X,1),1)

        elif self.function == "safe_reciprocal":
                results = np.divide(1.0, X.astype(float), out=np.zeros_like(X).astype(float), where=X!=0) #TODO remove astypefloat?
                return results

        elif self.function == "eq":
                return np.expand_dims(np.all(X == X[0,:], axis = 1),1).astype(float)

        elif self.function == "ne":
                return 1- np.expand_dims(np.all(X == X[0,:], axis = 1),1).astype(float)

        #TODO these could be "sorted order"
        elif self.function == "ge":
                result = X >= 0
                return  result.astype(float)

        elif self.function == "gt":
                result = X > 0
                return  result.astype(float)
        elif self.function ==  "le":
                result = X <= 0
                return  result.astype(float)
        elif self.function ==  "lt":
                result = X < 0
                return  result.astype(float)


        elif self.function ==   "min":
                return np.expand_dims(np.amin(X,1),1)
        elif self.function ==  "max":
                return np.expand_dims(np.amax(X,1),1)

        elif self.function ==  "0":
                return np.zeros((X.shape[0],1))
        elif self.function ==  "1":
                return np.ones((X.shape[0],1))

__init__(function)

一个沿着轴 1 对输入数组应用函数的转换器。

参数

名称 类型 描述 默认值
function str

应用于输入数组的函数。支持以下函数: - 'add' : 沿着轴 1 将所有元素相加 - 'mul_neg_1' : 沿着轴 1 将所有元素乘以 -1 - 'mul' : 沿着轴 1 将所有元素相乘 - 'safe_reciprocal' : 对沿着轴 1 的所有元素取倒数,并进行安全的零除法 - 'eq' : 检查沿着轴 1 的所有元素是否相等 - 'ne' : 检查沿着轴 1 的所有元素是否不相等 - 'ge' : 检查沿着轴 1 的所有元素是否大于或等于 0 - 'gt' : 检查沿着轴 1 的所有元素是否大于 0 - 'le' : 检查沿着轴 1 的所有元素是否小于或等于 0 - 'lt' : 检查沿着轴 1 的所有元素是否小于 0 - 'min' : 获取沿着轴 1 的所有元素的最小值 - 'max' : 获取沿着轴 1 的所有元素的最大值 - '0' : 返回一个零数组 - '1' : 返回一个一数组

必需
源代码位于 tpot/builtin_modules/arithmetictransformer.py
def __init__(self, function,):
    """
    A transformer that applies a function to the input array along axis 1.
    Parameters
    ----------

    function : str
        The function to apply to the input array. The following functions are supported:
        - 'add' : Add all elements along axis 1
        - 'mul_neg_1' : Multiply all elements along axis 1 by -1
        - 'mul' : Multiply all elements along axis 1
        - 'safe_reciprocal' : Take the reciprocal of all elements along axis 1, with a safe division by zero
        - 'eq' : Check if all elements along axis 1 are equal
        - 'ne' : Check if all elements along axis 1 are not equal
        - 'ge' : Check if all elements along axis 1 are greater than or equal to 0
        - 'gt' : Check if all elements along axis 1 are greater than 0
        - 'le' : Check if all elements along axis 1 are less than or equal to 0
        - 'lt' : Check if all elements along axis 1 are less than 0
        - 'min' : Take the minimum of all elements along axis 1
        - 'max' : Take the maximum of all elements along axis 1
        - '0' : Return an array of zeros
        - '1' : Return an array of ones
    """
    self.function = function

EQTransformer

基类: BaseEstimator, TransformerMixin

源代码位于 tpot/builtin_modules/arithmetictransformer.py
class EQTransformer(BaseEstimator,TransformerMixin):

    def __init__(self):
        """
        A transformer that takes checks if all elements in a row are equal.
        """
        pass

    def fit(self, X, y=None):
        return self

    def transform(self, X):
        transformed_X = np.array(self.transform_helper(np.array(X)))
        if transformed_X.dtype != float:
            transformed_X = transformed_X.astype(float)

        return transformed_X

    def transform_helper(self, X):
        X = np.array(X)
        if len(X.shape) == 1:
            X = np.expand_dims(X,0)
        return np.expand_dims(np.all(X == X[0,:], axis = 1),1).astype(float)

__init__()

一个检查一行中所有元素是否相等的转换器。

源代码位于 tpot/builtin_modules/arithmetictransformer.py
def __init__(self):
    """
    A transformer that takes checks if all elements in a row are equal.
    """
    pass

GETransformer

基类: BaseEstimator, TransformerMixin

源代码位于 tpot/builtin_modules/arithmetictransformer.py
class GETransformer(BaseEstimator,TransformerMixin):

    def __init__(self):
        """
        A transformer that takes checks if all elements in a row are greater than or equal to 0.
        """
        pass

    def fit(self, X, y=None):
        return self

    def transform(self, X):
        transformed_X = np.array(self.transform_helper(np.array(X)))
        if transformed_X.dtype != float:
            transformed_X = transformed_X.astype(float)

        return transformed_X

    def transform_helper(self, X):
        X = np.array(X)
        if len(X.shape) == 1:
            X = np.expand_dims(X,0)
        result = X >= 0
        return  result.astype(float)

__init__()

一个检查一行中所有元素是否大于或等于 0 的转换器。

源代码位于 tpot/builtin_modules/arithmetictransformer.py
def __init__(self):
    """
    A transformer that takes checks if all elements in a row are greater than or equal to 0.
    """
    pass

GTTransformer

基类: BaseEstimator, TransformerMixin

源代码位于 tpot/builtin_modules/arithmetictransformer.py
class GTTransformer(BaseEstimator,TransformerMixin):
    def __init__(self):
          """
          A transformer that takes checks if all elements in a row are greater than 0.
          """
          pass

    def fit(self, X, y=None):
        return self

    def transform(self, X):
        transformed_X = np.array(self.transform_helper(np.array(X)))
        if transformed_X.dtype != float:
            transformed_X = transformed_X.astype(float)

        return transformed_X

    def transform_helper(self, X):
        X = np.array(X)
        if len(X.shape) == 1:
            X = np.expand_dims(X,0)
        result = X > 0
        return  result.astype(float)

__init__()

一个检查一行中所有元素是否大于 0 的转换器。

源代码位于 tpot/builtin_modules/arithmetictransformer.py
def __init__(self):
      """
      A transformer that takes checks if all elements in a row are greater than 0.
      """
      pass

LETransformer

基类: BaseEstimator, TransformerMixin

源代码位于 tpot/builtin_modules/arithmetictransformer.py
class LETransformer(BaseEstimator,TransformerMixin):
    def __init__(self):
        """
        A transformer that takes checks if all elements in a row are less than or equal to 0.
        """
        pass

    def fit(self, X, y=None):
        return self

    def transform(self, X):
        transformed_X = np.array(self.transform_helper(np.array(X)))
        if transformed_X.dtype != float:
            transformed_X = transformed_X.astype(float)

        return transformed_X

    def transform_helper(self, X):
        X = np.array(X)
        if len(X.shape) == 1:
            X = np.expand_dims(X,0)
        result = X <= 0
        return  result.astype(float)

__init__()

一个检查一行中所有元素是否小于或等于 0 的转换器。

源代码位于 tpot/builtin_modules/arithmetictransformer.py
def __init__(self):
    """
    A transformer that takes checks if all elements in a row are less than or equal to 0.
    """
    pass

LTTransformer

基类: BaseEstimator, TransformerMixin

源代码位于 tpot/builtin_modules/arithmetictransformer.py
class LTTransformer(BaseEstimator,TransformerMixin):
    def __init__(self):
        """
        A transformer that takes checks if all elements in a row are less than 0.
        """
        pass

    def fit(self, X, y=None):
        return self

    def transform(self, X):
        transformed_X = np.array(self.transform_helper(np.array(X)))
        if transformed_X.dtype != float:
            transformed_X = transformed_X.astype(float)

        return transformed_X

    def transform_helper(self, X):
        X = np.array(X)
        if len(X.shape) == 1:
            X = np.expand_dims(X,0)
        result = X < 0
        return  result.astype(float)

__init__()

一个检查一行中所有元素是否小于 0 的转换器。

源代码位于 tpot/builtin_modules/arithmetictransformer.py
def __init__(self):
    """
    A transformer that takes checks if all elements in a row are less than 0.
    """
    pass

MaxTransformer

基类: BaseEstimator, TransformerMixin

源代码位于 tpot/builtin_modules/arithmetictransformer.py
class MaxTransformer(BaseEstimator,TransformerMixin):

    def __init__(self):
          """
          A transformer that takes the maximum of all elements in a row.
          """
          pass

    def fit(self, X, y=None):
        return self

    def transform(self, X):
        transformed_X = np.array(self.transform_helper(np.array(X)))
        if transformed_X.dtype != float:
            transformed_X = transformed_X.astype(float)

        return transformed_X

    def transform_helper(self, X):
        X = np.array(X)
        if len(X.shape) == 1:
            X = np.expand_dims(X,0)
        return np.expand_dims(np.amax(X,1),1)

__init__()

一个获取一行中所有元素最大值的转换器。

源代码位于 tpot/builtin_modules/arithmetictransformer.py
def __init__(self):
      """
      A transformer that takes the maximum of all elements in a row.
      """
      pass

MinTransformer

基类: BaseEstimator, TransformerMixin

源代码位于 tpot/builtin_modules/arithmetictransformer.py
class MinTransformer(BaseEstimator,TransformerMixin):
    def __init__(self):
        """
        A transformer that takes the minimum of all elements in a row.
        """
        pass

    def fit(self, X, y=None):
        return self

    def transform(self, X):
        transformed_X = np.array(self.transform_helper(np.array(X)))
        if transformed_X.dtype != float:
            transformed_X = transformed_X.astype(float)

        return transformed_X

    def transform_helper(self, X):
        X = np.array(X)
        if len(X.shape) == 1:
            X = np.expand_dims(X,0)
        return np.expand_dims(np.amin(X,1),1)

__init__()

一个获取一行中所有元素最小值的转换器。

源代码位于 tpot/builtin_modules/arithmetictransformer.py
def __init__(self):
    """
    A transformer that takes the minimum of all elements in a row.
    """
    pass

MulTransformer

基类: BaseEstimator, TransformerMixin

源代码位于 tpot/builtin_modules/arithmetictransformer.py
class MulTransformer(BaseEstimator,TransformerMixin):

    def __init__(self):
        """
        A transformer that multiplies all elements along axis 1.
        """
        pass

    def fit(self, X, y=None):
        return self

    def transform(self, X):
        transformed_X = np.array(self.transform_helper(np.array(X)))
        if transformed_X.dtype != float:
            transformed_X = transformed_X.astype(float)

        return transformed_X

    def transform_helper(self, X):
        X = np.array(X)
        if len(X.shape) == 1:
            X = np.expand_dims(X,0)
        return np.expand_dims(np.prod(X,1),1)

__init__()

一个沿着轴 1 将所有元素相乘的转换器。

源代码位于 tpot/builtin_modules/arithmetictransformer.py
def __init__(self):
    """
    A transformer that multiplies all elements along axis 1.
    """
    pass

NETransformer

基类: BaseEstimator, TransformerMixin

源代码位于 tpot/builtin_modules/arithmetictransformer.py
class NETransformer(BaseEstimator,TransformerMixin):

    def __init__(self):
        """
        A transformer that takes checks if all elements in a row are not equal.
        """  
        pass

    def fit(self, X, y=None):
        return self

    def transform(self, X):
        transformed_X = np.array(self.transform_helper(np.array(X)))
        if transformed_X.dtype != float:
            transformed_X = transformed_X.astype(float)

        return transformed_X

    def transform_helper(self, X):
        X = np.array(X)
        if len(X.shape) == 1:
            X = np.expand_dims(X,0)
        return 1- np.expand_dims(np.all(X == X[0,:], axis = 1),1).astype(float)

__init__()

一个检查一行中所有元素是否不相等的转换器。

源代码位于 tpot/builtin_modules/arithmetictransformer.py
def __init__(self):
    """
    A transformer that takes checks if all elements in a row are not equal.
    """  
    pass

NTransformer

基类: BaseEstimator, TransformerMixin

源代码位于 tpot/builtin_modules/arithmetictransformer.py
class NTransformer(BaseEstimator,TransformerMixin):

    def __init__(self, n):
        """
        A transformer that returns an array of n.
        """
        self.n = n

    def fit(self, X, y=None):
        return self

    def transform(self, X):
        transformed_X = np.array(self.transform_helper(np.array(X)))
        if transformed_X.dtype != float:
            transformed_X = transformed_X.astype(float)

        return transformed_X

    def transform_helper(self, X):
        X = np.array(X)
        if len(X.shape) == 1:
            X = np.expand_dims(X,0)
        return np.ones((X.shape[0],1))*self.n

__init__(n)

一个返回 n 数组的转换器。

源代码位于 tpot/builtin_modules/arithmetictransformer.py
def __init__(self, n):
    """
    A transformer that returns an array of n.
    """
    self.n = n

OneTransformer

基类: BaseEstimator, TransformerMixin

源代码位于 tpot/builtin_modules/arithmetictransformer.py
class OneTransformer(BaseEstimator,TransformerMixin):
    def __init__(self):
          """
          A transformer that returns an array of ones.
          """
          pass

    def fit(self, X, y=None):
        return self

    def transform(self, X):
        transformed_X = np.array(self.transform_helper(np.array(X)))
        if transformed_X.dtype != float:
            transformed_X = transformed_X.astype(float)

        return transformed_X

    def transform_helper(self, X):
        X = np.array(X)
        if len(X.shape) == 1:
            X = np.expand_dims(X,0)
        return np.ones((X.shape[0],1))

__init__()

一个返回全一数组的转换器。

源代码位于 tpot/builtin_modules/arithmetictransformer.py
def __init__(self):
      """
      A transformer that returns an array of ones.
      """
      pass

SafeReciprocalTransformer

基类: BaseEstimator, TransformerMixin

源代码位于 tpot/builtin_modules/arithmetictransformer.py
class SafeReciprocalTransformer(BaseEstimator,TransformerMixin):

    def __init__(self):
        """
        A transformer that takes the reciprocal of all elements, with a safe division by zero.
        """
        pass

    def fit(self, X, y=None):
        return self

    def transform(self, X):
        transformed_X = np.array(self.transform_helper(np.array(X)))
        if transformed_X.dtype != float:
            transformed_X = transformed_X.astype(float)

        return transformed_X

    def transform_helper(self, X):
        X = np.array(X)
        if len(X.shape) == 1:
            X = np.expand_dims(X,0)
        return np.divide(1.0, X.astype(float), out=np.zeros_like(X).astype(float), where=X!=0) #TODO remove astypefloat?

__init__()

一个对所有元素取倒数,并进行安全零除法的转换器。

源代码位于 tpot/builtin_modules/arithmetictransformer.py
def __init__(self):
    """
    A transformer that takes the reciprocal of all elements, with a safe division by zero.
    """
    pass

ZeroTransformer

基类: BaseEstimator, TransformerMixin

源代码位于 tpot/builtin_modules/arithmetictransformer.py
class ZeroTransformer(BaseEstimator,TransformerMixin):

    def __init__(self):
          """
        A transformer that returns an array of zeros.
          """
          pass

    def fit(self, X, y=None):
        return self

    def transform(self, X):
        transformed_X = np.array(self.transform_helper(np.array(X)))
        if transformed_X.dtype != float:
            transformed_X = transformed_X.astype(float)

        return transformed_X

    def transform_helper(self, X):
        X = np.array(X)
        if len(X.shape) == 1:
            X = np.expand_dims(X,0)
        return np.zeros((X.shape[0],1))

__init__()

一个返回全零数组的转换器。

源代码位于 tpot/builtin_modules/arithmetictransformer.py
def __init__(self):
      """
    A transformer that returns an array of zeros.
      """
      pass

mul_neg_1_Transformer

基类: BaseEstimator, TransformerMixin

源代码位于 tpot/builtin_modules/arithmetictransformer.py
class mul_neg_1_Transformer(BaseEstimator,TransformerMixin):
    def __init__(self):
        """
        A transformer that multiplies all elements by -1.
        """
        pass

    def fit(self, X, y=None):
        return self

    def transform(self, X):
        transformed_X = np.array(self.transform_helper(np.array(X)))
        if transformed_X.dtype != float:
            transformed_X = transformed_X.astype(float)

        return transformed_X

    def transform_helper(self, X):
        X = np.array(X)
        if len(X.shape) == 1:
            X = np.expand_dims(X,0)
        return X*-1

__init__()

一个将所有元素乘以 -1 的转换器。

源代码位于 tpot/builtin_modules/arithmetictransformer.py
def __init__(self):
    """
    A transformer that multiplies all elements by -1.
    """
    pass