【问题标题】:Schedule Training and Testing Script in Python在 Python 中安排训练和测试脚本
【发布时间】:2020-03-18 13:30:39
【问题描述】:

我有一个简单的 RandomForest 回归模型,它进行训练和测试,然后打印预测和模型准确性。我想编写一个 python 自动化脚本来安排这个代码,它将每月训练一次,每周自动测试一次。

型号代码:

from sklearn.ensemble import RandomForestRegressor
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
import numpy as np

import pandas as pd
from main import data as df


class Model():
    def __init__(self):
        self.df = df
        self.linear_reg = LinearRegression()
        self.random_forest = RandomForestRegressor()
    def split(self, test_size):
        X = np.array(self.df[['age','experience','education','certificates']])
        y = np.array(self.df['salary'])
        self.X_train, self.X_test, self.y_train, self.y_test = train_test_split(X, y, test_size = test_size, random_state = 42)

    def fit(self):
        self.model = self.random_forest.fit(self.X_train, self.y_train)

    def predict(self):

        self.result = self.random_forest.predict(self.X_test)
        return self.result


if __name__ == '__main__':
    model_instance = Model()
    model_instance.split(0.2)
    model_instance.fit()
    model_instance.predict()
    print(model_instance.result)
    print("Accuracy: ", model_instance.model.score(model_instance.X_test, model_instance.y_test))

这是我想每月安排一次的训练部分

    def fit(self):
        self.model = self.random_forest.fit(self.X_train, self.y_train)

这是我想每周安排一次的测试部分

     def predict(self):

        self.result = self.random_forest.predict(self.X_test)
        return self.result

如何编写代码以在所述时间范围内安排训练和测试?

【问题讨论】:

  • 你有什么问题?
  • 我想编写一个 python 脚本,用于每月和每周自动安排训练和测试。
  • Brian 的问题是:您需要有关日程安排或培训+测试的帮助吗?您想要解决的实际问题是什么?不过,你发帖的目的是什么?如果您每月训练一次,每 3 周的测试结果将保持不变。
  • @LeonidGlanz 是的,我需要帮助安排培训+测试。测试数据每周都会不断变化。请你帮忙。
  • 我添加了一个使用模块计划执行所需任务的答案。

标签: python scheduled-tasks


【解决方案1】:

使用schedule可以实现以下解决方案:

import schedule
import time
from sklearn.ensemble import RandomForestRegressor
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
import numpy as np

import pandas as pd
from main import data as df

class Model():
    def __init__(self):
        self.df = df
        self.linear_reg = LinearRegression()
        self.random_forest = RandomForestRegressor()
    def split(self, test_size):
        X = np.array(self.df[['age','experience','education','certificates']])
        y = np.array(self.df['salary'])
        self.X_train, self.X_test, self.y_train, self.y_test = train_test_split(X, y, test_size = test_size, random_state = 42)

    def fit(self):
        self.model = self.random_forest.fit(self.X_train, self.y_train)

    def predict(self):

        self.result = self.random_forest.predict(self.X_test)
        print(self.result)
        print("Accuracy: ", self.model.score(self.X_test, self.y_test))


if __name__ == '__main__':
    model_instance = Model()
    model_instance.split(0.2)
    schedule.every(28).day.at("07:00").do(model_instance.fit())
    schedule.every(7).day.at("07:00").do(model_instance.predict())
    while 1:
        schedule.run_pending()
        time.sleep(1)

【讨论】:

  • 非常感谢。另外,如何在云上实现自动化?
  • 云上的自动化取决于云提供商,但这将是另一个问题。
猜你喜欢
  • 2020-07-01
  • 1970-01-01
  • 2017-10-01
  • 2018-12-21
  • 1970-01-01
  • 1970-01-01
  • 2023-02-12
  • 2021-02-03
  • 2020-07-07
相关资源
最近更新 更多