在 Python 中安排培训和测试脚本
Schedule Training and Testing Script in Python
我有这个简单的随机森林回归模型,它进行训练和测试,然后打印预测和模型准确性。我想编写一个 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
如何编写代码来安排在所述时间范围内进行训练和测试?
使用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)
我有这个简单的随机森林回归模型,它进行训练和测试,然后打印预测和模型准确性。我想编写一个 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
如何编写代码来安排在所述时间范围内进行训练和测试?
使用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)