def get(self, request, dataset_id): dataset = DataSet.objects.filter( Q(id=dataset_id, type=REAL_WORLD), q_shared_or_user_is_owner(request)).first() if dataset is None: messages.error(request, dataset_not_found_msg(dataset_id)) return redirect('vadetisweb:detection_real_world_datasets') selected_button = get_highcharts_range_button_preselector( dataset.granularity) detection_serializer = AlgorithmSerializer( context={'dataset': dataset}) injection_serializer = InjectionSerializer(context={ 'dataset_selected': dataset_id, 'request': request }) threshold_serializer = ThresholdSerializer() return Response( { 'dataset': dataset, 'selected_button': selected_button, 'detection_serializer': detection_serializer, 'injection_serializer': injection_serializer, 'threshold_serializer': threshold_serializer, }, status=status.HTTP_200_OK)
def post(self, request, dataset_id): try: serializer = IsolationForestSerializer(context={ 'dataset_selected': dataset_id, 'request': request }, data=request.data) if serializer.is_valid(): df_from_json, df_class_from_json = get_datasets_from_json( serializer.validated_data['dataset_series_json']) try: data = {} settings = get_settings(request) data_series, info = isolation_forest_detection( df_from_json, df_class_from_json, serializer.validated_data, settings) data['series'] = data_series data['info'] = info return Response(data) except Exception as e: logging.debug(e) return exception_message_response(e) else: return Response({'form_errors': serializer.errors}, status=status.HTTP_400_BAD_REQUEST) except DataSet.DoesNotExist: messages.error(request, dataset_not_found_msg(dataset_id)) return redirect('vadetisweb:index')
def get(self, request, dataset_id): dataset = DataSet.objects.filter( Q(id=dataset_id, type=SYNTHETIC), q_shared_or_user_is_owner(request)).first() if dataset is None: messages.error(request, dataset_not_found_msg(dataset_id)) return redirect('vadetisweb:recommendation_synthetic_datasets') recommendation_serializer = RecommendationSerializer( context={'dataset': dataset}) selected_button = get_highcharts_range_button_preselector( dataset.granularity) return Response( { 'dataset': dataset, 'selected_button': selected_button, 'recommendation_serializer': recommendation_serializer, }, status=status.HTTP_200_OK)
def post(self, request, dataset_id, format=None): portlet_serializer = BasePortletSerializer(data=request.data) dataset = DataSet.objects.filter( Q(id=dataset_id), q_shared_or_user_is_owner(request)).first() if dataset is None: messages.error(request, dataset_not_found_msg(dataset_id)) response = Response({}, status=status.HTTP_404_NOT_FOUND) response['Location'] = reverse('vadetisweb:index') return response if portlet_serializer.is_valid( ) and request.accepted_renderer.format == 'html': # rendered template: validated_data = portlet_serializer.validated_data injection_serializer = InjectionSerializer(context={ 'dataset_selected': dataset_id, 'request': request }) return Response( { 'id': validated_data['id'], 'title': validated_data['title'], 'serializer_formid': 'anomaly_injection_form', 'serializer_url': reverse('vadetisweb:injection_anomaly', args=[dataset.id]), 'serializer': injection_serializer, 'serializer_submit_label': 'Update', }, status=status.HTTP_200_OK) else: return Response({}, status=status.HTTP_400_BAD_REQUEST)
def post(self, request, dataset_id): dataset = DataSet.objects.filter( Q(id=dataset_id), q_shared_or_user_is_owner(request)).first() if dataset is None: messages.error(request, dataset_not_found_msg(dataset_id)) return redirect('vadetisweb:index') serializer = AlgorithmSerializer(context={'dataset': dataset}, data=request.data) if serializer.is_valid(): algorithm = serializer.validated_data['algorithm'] formid = 'anomaly_detection_form' if algorithm == LISA_PEARSON: return Response( { 'dataset': dataset, 'formid': formid, 'url': reverse('vadetisweb:detection_lisa_person', args=[dataset_id]), 'class': 'pt-0', 'serializer': LisaPearsonSerializer(context={ 'dataset_selected': dataset_id, 'request': request }), 'submit_label': 'Run', }, status=status.HTTP_200_OK) elif algorithm == LISA_DTW_PEARSON: return Response( { 'dataset': dataset, 'formid': formid, 'url': reverse('vadetisweb:detection_lisa_dtw_person', args=[dataset_id]), 'class': 'pt-0', 'serializer': LisaDtwPearsonSerializer(context={ 'dataset_selected': dataset_id, 'request': request }), 'submit_label': 'Run', }, status=status.HTTP_200_OK) elif algorithm == LISA_SPATIAL: return Response( { 'dataset': dataset, 'formid': formid, 'url': reverse('vadetisweb:detection_lisa_geo', args=[dataset_id]), 'class': 'pt-0', 'serializer': LisaGeoDistanceSerializer(context={ 'dataset_selected': dataset_id, 'request': request }), 'submit_label': 'Run', }, status=status.HTTP_200_OK) elif algorithm == RPCA_HUBER_LOSS: return Response( { 'dataset': dataset, 'formid': formid, 'url': reverse('vadetisweb:detection_rpca_mestimator', args=[dataset_id]), 'class': 'pt-0', 'serializer': RPCAMEstimatorLossSerializer(context={ 'dataset_selected': dataset_id, 'request': request }), 'submit_label': 'Run', }, status=status.HTTP_200_OK) elif algorithm == HISTOGRAM: return Response( { 'dataset': dataset, 'formid': formid, 'url': reverse('vadetisweb:detection_histogram', args=[dataset_id]), 'class': 'pt-0', 'serializer': HistogramSerializer(context={ 'dataset_selected': dataset_id, 'request': request }), 'submit_label': 'Run', }, status=status.HTTP_200_OK) elif algorithm == CLUSTER_GAUSSIAN_MIXTURE: return Response( { 'dataset': dataset, 'formid': formid, 'url': reverse('vadetisweb:detection_cluster', args=[dataset_id]), 'class': 'pt-0', 'serializer': ClusterSerializer(context={ 'dataset_selected': dataset_id, 'request': request }), 'submit_label': 'Run', }, status=status.HTTP_200_OK) elif algorithm == SVM: return Response( { 'dataset': dataset, 'formid': formid, 'url': reverse('vadetisweb:detection_svm', args=[dataset_id]), 'class': 'pt-0', 'serializer': SVMSerializer(context={ 'dataset_selected': dataset_id, 'request': request }), 'submit_label': 'Run', }, status=status.HTTP_200_OK) elif algorithm == ISOLATION_FOREST: return Response( { 'dataset': dataset, 'formid': formid, 'url': reverse('vadetisweb:detection_isolation_forest', args=[dataset_id]), 'class': 'pt-0', 'serializer': IsolationForestSerializer(context={ 'dataset_selected': dataset_id, 'request': request }), 'submit_label': 'Run', }, status=status.HTTP_200_OK) else: return Response( template_name='vadetisweb/parts/forms/empty.html', status=status.HTTP_204_NO_CONTENT) else: logging.error('Algorithm selection form was not valid') return Response(template_name='vadetisweb/parts/forms/empty.html', status=status.HTTP_204_NO_CONTENT)