Расписание обучения и тестирования скрипта в Python - PullRequest
0 голосов
/ 18 марта 2020

У меня есть эта простая регрессионная модель 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

Как написать код, который Графики обучения и тестирования в описанные сроки?

1 Ответ

0 голосов
/ 18 марта 2020

Следующее решение может быть достигнуто с использованием графика :

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...