|
|
|
|
@ -29,6 +29,7 @@ from service.service import PointService
|
|
|
|
|
|
|
|
|
|
@shared_task()
|
|
|
|
|
def raschet(table_name='service_placementpoint'):
|
|
|
|
|
print('start raschet')
|
|
|
|
|
status, _ = models.TaskStatus.objects.get_or_create(task_name=STATUS_TASK_NAME)
|
|
|
|
|
raschet_objs = models.RaschetObjects.objects.all()
|
|
|
|
|
if raschet_objs:
|
|
|
|
|
@ -118,6 +119,9 @@ def raschet(table_name='service_placementpoint'):
|
|
|
|
|
X_trn = pts_trn[feats].drop(columns=['id'])
|
|
|
|
|
Y_trn = pts_trn[['fact']]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
status.status = 'Записи для инференса'
|
|
|
|
|
status.save()
|
|
|
|
|
# Записи для инференса
|
|
|
|
|
if table_name == 'service_placementpoint':
|
|
|
|
|
pts_inf = pts.loc[(pts.status == 'Pending') |
|
|
|
|
|
@ -166,8 +170,11 @@ def raschet(table_name='service_placementpoint'):
|
|
|
|
|
r2_scores = []
|
|
|
|
|
mapes = []
|
|
|
|
|
y_infers = []
|
|
|
|
|
|
|
|
|
|
status.status = 'Обучение inference 0%'
|
|
|
|
|
status.save()
|
|
|
|
|
for i in seeds:
|
|
|
|
|
status.status = 'Обучение inference: ' + str(int((seeds.index(i) + 1) / len(seeds) * 100)) + '%'
|
|
|
|
|
status.save()
|
|
|
|
|
x_trn, x_test, y_trn, y_test = ms.train_test_split(X_trn, Y_trn, test_size=0.2, random_state=i)
|
|
|
|
|
model = catboost.CatBoostRegressor(cat_features=['property_era'], random_state=i)
|
|
|
|
|
model.fit(x_trn, y_trn, verbose=False)
|
|
|
|
|
@ -177,7 +184,7 @@ def raschet(table_name='service_placementpoint'):
|
|
|
|
|
r2_scores.append(r2_score)
|
|
|
|
|
mapes.append(mape)
|
|
|
|
|
y_infers.append(model.predict(X_inf.drop(columns=['id'])))
|
|
|
|
|
|
|
|
|
|
status.status = 'Обучение inference 100%'
|
|
|
|
|
current_pred = sum(y_infers) / 5
|
|
|
|
|
|
|
|
|
|
# Обновление полей по результатам работы модели
|
|
|
|
|
@ -378,14 +385,14 @@ def load_post_and_pvz(obj_id: int):
|
|
|
|
|
|
|
|
|
|
@shared_task()
|
|
|
|
|
def add_age_day():
|
|
|
|
|
qs = PlacementPoint.objects
|
|
|
|
|
c1 = qs.filter(sample_trn=True).count()
|
|
|
|
|
qs = PlacementPoint.objects.filter(status='Working')
|
|
|
|
|
# c1 = qs.filter(sample_trn=True).count()
|
|
|
|
|
qs.update(age_day=F('age_day') + 1)
|
|
|
|
|
qs2 = qs.filter(age_day__gt=AGE_DAY_LIMIT)
|
|
|
|
|
qs2.update(sample_trn=True)
|
|
|
|
|
c2 = PlacementPoint.objects.filter(sample_trn=True).count()
|
|
|
|
|
if c2 - c1 != 0:
|
|
|
|
|
raschet.delay()
|
|
|
|
|
# c2 = PlacementPoint.objects.filter(sample_trn=True).count()
|
|
|
|
|
# if c2 - c1 != 0:
|
|
|
|
|
# raschet.delay()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@shared_task()
|
|
|
|
|
|