Python调度脚本到docker容器



我已经用python脚本构建了一个RandomForest回归模型。它接受两个csv文件的训练和测试,执行训练和测试。然后,它打印预测和准确性,并最终将预测保存为csv文件。我已经将代码文件保存为RandomForest.py。之后,我为RandomForest.py创建了一个批处理执行(.bat(文件。此后,我使用Windows任务计划程序安排我的Python脚本(RandomForest.py(每周运行一次。之后,我将计划任务导出为".xml"文件。我的问题:我想把这个.xml文件放在一个docker容器中,这样它每周运行一次。

RandomForest.py代码:

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

class Modelrf():
def __init__(self, train = "train.csv", test = "test.csv"):
self.X_train = pd.read_csv(train)
self.X_test = pd.read_csv(test)
self.linear_reg = LinearRegression()
self.random_forest = RandomForestRegressor()
def split(self):
self.X_train.dropna(axis=0, subset=['final_hourly_fee'], inplace=True)
self.X_test.dropna(axis=0, subset=['final_hourly_fee'], inplace=True)
self.y_train = self.X_train.final_hourly_fee
self.y_test = self.X_test.final_hourly_fee
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

model_instance = Modelrf()
model_instance.split()
model_instance.fit()
model_instance.predict()
print(model_instance.result)
print("Accuracy: ", model_instance.model.score(model_instance.X_test, model_instance.y_test))
output = pd.DataFrame({'Id': model_instance.X_test.index,'Y Original': model_instance.y_test, 'Y predicted':model_instance.result})
output.to_csv('outputTest.csv', index=False)

.bat文件:

python C:PythonHeadstrtgitlab_pricingmyproject.gitRandomForest.py
pause

您可以在docker容器中运行cron作业。

这个cron字符串将每周运行一次0 0 * * 0。从这里得到的。

最新更新