Пример #1
0
    def _received_result_cols(self, filter_name):
        result_cols_id = self.transfer_variable.generate_transferid(
            self.transfer_variable.result_left_cols, filter_name)
        left_cols = federation.get(
            name=self.transfer_variable.result_left_cols.name,
            tag=result_cols_id,
            idx=0)
        LOGGER.info(
            "Received left columns from guest, received left_cols: {}".format(
                left_cols))
        # self.left_cols = left_cols
        LOGGER.debug("Before renew: self.left_cols: {}".format(self.left_cols))
        self._renew_final_left_cols(left_cols)
        LOGGER.debug("After renew: self.left_cols: {}".format(self.left_cols))

        # self._renew_left_col_names()

        host_cols = list(left_cols.keys())

        left_col_result = {}
        original_cols = []
        for col_idx, is_left in self.left_cols.items():
            col_name = self.header[col_idx]
            left_col_result[col_name] = is_left

        for col_idx in host_cols:
            original_cols.append(self.header[col_idx])

        left_col_obj = feature_selection_param_pb2.LeftCols(
            original_cols=original_cols, left_cols=left_col_result)

        result_obj = feature_selection_param_pb2.FeatureSelectionFilterParam(
            feature_values={}, left_cols=left_col_obj, filter_name=filter_name)
        self.results.append(result_obj)
        LOGGER.info("Received Left cols are {}".format(self.left_cols))
Пример #2
0
    def get_param_obj(self):
        left_col_obj = feature_selection_param_pb2.LeftCols(
            original_cols=self.cols, left_cols=self.left_cols)

        result = feature_selection_param_pb2.FeatureSelectionFilterParam(
            feature_values=self.feature_values,
            left_cols=left_col_obj,
            filter_name=consts.OUTLIER_COLS)
        return result
Пример #3
0
    def get_param_obj(self):
        left_col_obj = feature_selection_param_pb2.LeftCols(
            original_cols=self.cols, left_cols=self.left_cols)

        result = feature_selection_param_pb2.FeatureSelectionFilterParam(
            feature_values=self.feature_values,
            left_cols=left_col_obj,
            filter_name=consts.COEFFICIENT_OF_VARIATION_VALUE_THRES)
        return result
Пример #4
0
    def get_param_obj(self):
        left_col_name_dict = self._generate_col_name_dict()
        cols = [str(i) for i in self.cols]
        left_col_obj = feature_selection_param_pb2.LeftCols(
            original_cols=cols, left_cols=left_col_name_dict)

        result = feature_selection_param_pb2.FeatureSelectionFilterParam(
            feature_values=self.feature_values,
            left_cols=left_col_obj,
            filter_name="UNIQUE FILTER")
        return result
Пример #5
0
    def get_param_obj(self):
        left_col_name_dict = self._generate_col_name_dict()
        cols = [str(i) for i in self.cols]

        host_obj = {}
        for host_name, host_left_cols in self.host_cols.items():
            host_cols = list(map(str, host_left_cols.keys()))
            new_host_left_col = {str(k): v for k, v in host_left_cols.items()}
            host_left_col_obj = feature_selection_param_pb2.LeftCols(
                original_cols=host_cols, left_cols=new_host_left_col)
            for host_col, is_left in host_left_cols.items():
                new_col_name = '.'.join([host_name, str(host_col)])
                cols.append(new_col_name)
                left_col_name_dict[new_col_name] = is_left

            host_obj[host_name] = host_left_col_obj

        left_col_obj = feature_selection_param_pb2.LeftCols(
            original_cols=cols, left_cols=left_col_name_dict)

        host_value_objs = {}
        for host_name, host_feature_values in self.host_feature_values.items():
            new_host_feature_values = {
                str(k): v
                for k, v in host_feature_values.items()
            }
            host_feature_value_obj = feature_selection_param_pb2.FeatureValue(
                feature_values=new_host_feature_values)
            host_value_objs[host_name] = host_feature_value_obj

        # Combine both guest and host results
        total_feature_values = {}
        for col_name, col_value in self.feature_values.items():
            total_feature_values[col_name] = col_value

        for host_name, host_feature_values in self.host_feature_values.items():
            for host_col, host_feature_value in host_feature_values.items():
                new_col_name = '.'.join([host_name, str(host_col)])
                total_feature_values[new_col_name] = host_feature_value

        result = feature_selection_param_pb2.FeatureSelectionFilterParam(
            feature_values=total_feature_values,
            host_feature_values=host_value_objs,
            left_cols=left_col_obj,
            host_left_cols=host_obj,
            filter_name='IV_PERCENTILE')
        json_result = json_format.MessageToJson(
            result, including_default_value_fields=True)
        LOGGER.debug("json_result: {}".format(json_result))
        return result
Пример #6
0
    def get_param_obj(self):
        left_col_name_dict = self._generate_col_name_dict()
        cols = [str(i) for i in self.cols]

        host_obj = {}
        for host_name, host_left_cols in self.host_cols.items():
            host_cols = list(map(str, host_left_cols.keys()))
            new_host_left_col = {str(k): v for k, v in host_left_cols.items()}

            host_left_col_obj = feature_selection_param_pb2.LeftCols(
                original_cols=host_cols, left_cols=new_host_left_col)
            host_obj[host_name] = host_left_col_obj

            for host_col, is_left in host_left_cols.items():
                new_col_name = '.'.join([host_name, str(host_col)])
                cols.append(new_col_name)
                left_col_name_dict[new_col_name] = is_left

        left_col_obj = feature_selection_param_pb2.LeftCols(
            original_cols=cols, left_cols=left_col_name_dict)

        host_value_objs = {}
        for host_name, host_feature_values in self.host_feature_values.items():
            new_host_feature_values = {
                str(k): v
                for k, v in host_feature_values.items()
            }

            host_feature_value_obj = feature_selection_param_pb2.FeatureValue(
                feature_values=new_host_feature_values)
            host_value_objs[host_name] = host_feature_value_obj

        # Combine both guest and host results
        total_feature_values = {}
        for col_name, col_value in self.feature_values.items():
            total_feature_values[col_name] = col_value

        for host_name, host_feature_values in self.host_feature_values.items():
            for host_col, host_feature_value in host_feature_values.items():
                new_col_name = '.'.join([host_name, str(host_col)])
                total_feature_values[new_col_name] = host_feature_value

        result = feature_selection_param_pb2.FeatureSelectionFilterParam(
            feature_values=total_feature_values,
            host_feature_values=host_value_objs,
            left_cols=left_col_obj,
            host_left_cols=host_obj,
            filter_name="IV_VALUE_FILTER")
        return result
Пример #7
0
    def _received_result_cols(self, filter_name):
        result_cols_id = self.transfer_variable.generate_transferid(self.transfer_variable.result_left_cols,
                                                                    filter_name)
        left_cols = federation.get(name=self.transfer_variable.result_left_cols.name,
                                   tag=result_cols_id,
                                   idx=0)
        LOGGER.info("Received left columns from guest")
        self.left_cols = left_cols
        self._renew_left_col_names()

        host_cols = list(left_cols.keys())
        left_col_obj = feature_selection_param_pb2.LeftCols(original_cols=host_cols,
                                                            left_cols=self.left_cols)

        result_obj = feature_selection_param_pb2.FeatureSelectionFilterParam(feature_values={},
                                                                             left_cols=left_col_obj,
                                                                             filter_name=filter_name)
        self.results.append(result_obj)
        LOGGER.info("Received Left cols are {}".format(self.left_cols))
Пример #8
0
    def get_param_obj(self):
        left_col_obj = feature_selection_param_pb2.LeftCols(
            original_cols=self.cols, left_cols=self.left_cols)
        host_obj = {}
        for host_name, host_left_cols in self.host_cols.items():
            host_cols = list(host_left_cols.keys())
            left_col_obj = feature_selection_param_pb2.LeftCols(
                original_cols=host_cols, left_cols=host_left_cols)
            host_obj[host_name] = left_col_obj

        host_value_objs = {}
        for host_name, host_feature_values in self.host_feature_values.items():
            host_feature_value_obj = feature_selection_param_pb2.FeatureValue(
                feature_values=host_feature_values)
            host_value_objs[host_name] = host_feature_value_obj

        result = feature_selection_param_pb2.FeatureSelectionFilterParam(
            feature_values=self.feature_values,
            host_feature_values=host_value_objs,
            left_cols=left_col_obj,
            host_left_cols=host_obj,
            filter_name=consts.IV_PERCENTILE)
        return result