4

我有一个机器学习算法,它涉及一系列步骤,例如清理数据、准备训练数据等。每个步骤都存储在 python 类的单独方法中。我想知道构造我的类的最佳实践方法是什么,以便在类实例化时自动执行这些步骤。

这是我所做的(代码是说明性的,但这种方法适用于真正的算法)。感觉有点笨拙。有没有更优雅的方式?

 class Kaggle():
    """
    An algorithm
    """

    def __init__( self ):
        self.bar = 1

    def step_one( self, some_text_data ):
        self.bar = 1 ** 2
        # Do some data cleaning
        # return processed data

    def step_two( self ):
        foo = step_one(baz)
        # do some more processing

    def step_three( self ):
        bar = step_two()
        # output results

    def run( self ):
        self.step_one()
        self.step_two()
        self.step_three()

if __name__ == "__main__":
    kaggle = Kaggle()
    kaggle.run()
4

2 回答 2

8

如果您的目标是让对象“在类实例化时自动执行”,只需self.run()放入init

def __init__(self):
    self.bar = 1
    self.run()
于 2015-05-30T03:42:35.437 回答
3

将所有调用放入您的__init__方法中。这不是你想要达到的吗?您可以添加一个带有默认值的标志,这样您就可以根据需要不运行测试。

def __init__( self, runtests=True ):
    self.bar = 1
    if runtests:
        self.step_one()
        self.step_two()
        self.step_three()
于 2015-05-30T03:41:31.753 回答