【问题标题】:can someone explain me this python pipeline syntax [closed]有人可以解释一下这个python管道语法[关闭]
【发布时间】:2021-09-02 19:43:38
【问题描述】:
  1. 我对这个管道中的每个函数到底做了什么有点困惑。有人可以解释这个管道是如何工作的吗?我大致知道怎么做,但澄清一下会非常有帮助。

  2. 为什么在 def transform(self, X) 中使用大写“X”?

  3. get_feature_names__init__ 具体有什么意义?

代码:

class custom_fico(BaseEstimator,TransformerMixin):
    
        def __init__(self):
            self.feature_names = ['fico']
    
        def fit(self,x,y=None):
            return self
    
        def transform(self,X):
            k = X['FICO.Range'].str.split('-',expand = True).astype(float)
            fico = 0.5 * (k[0] + k[1])
            return pd.DataFrame({'fico':fico})
    
        def get_feature_names(self):
            return self.feature_names

【问题讨论】:

  • Check this for init。此外,它可以是任何字符,除非它是无效字符
  • X 用于训练数据矩阵,该名称在机器学习中按惯例使用,但在其他任何地方都没有。 get_feature_names() 可能被使用此 custom_fico 对象的任何代码使用。
  • 但是为什么我们在 def transform(self,X) 中使用 'capital X' 而在 def fit(self,x,y=None) 中使用 'small x'。 'init' 是构造函数,对吗?
  • xX 不一致,我不知道 fit() 方法的目的是什么,因为它实际上不适合数据并且参数未使用。代码似乎不完整,但同样取决于此对象的实际使用位置。
  • 1.实际上,这段代码是整个数据预处理大管道的一部分,我们使用这个子管道来分隔列“FICO.Range”的值,该列的值在范围内,即 700-710、720-726。我们对这些值所做的是将它们拆分为“-”,然后取它们的平均值,并创建一个新的列名称“fico”并将单个平均值,即 705、723 放入“fico”列中。

标签: python pandas numpy scikit-learn data-science


【解决方案1】:

1- 试试这个链接。对理解一切非常有帮助,它使一切变得清晰。 https://medium.com/@shivangisareen/pipelining-in-python-7edd2382f67d

2- 我认为没有必要使用大写 X。我认为您可以使用其他任何东西并且仍然可以工作,但是在这种情况下,代码编写者只是选择了大写 x。

3- 最后,init 方法类似于 C++ 和 Java 中的构造函数。构造函数用于初始化对象的状态。构造函数的任务是在创建类对象时对类的数据成员进行初始化(赋值)。

如果您需要任何进一步的帮助,社区随时为您服务!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多