private Object binarizerFunc()

in flink-ml-lib/src/main/java/org/apache/flink/ml/feature/binarizer/Binarizer.java [124:149]


        private Object binarizerFunc(Object obj, double threshold) {
            if (obj instanceof DenseVector) {
                DenseVector inputVec = (DenseVector) obj;
                DenseVector vec = inputVec.clone();
                for (int i = 0; i < vec.size(); ++i) {
                    vec.values[i] = inputVec.get(i) > threshold ? 1.0 : 0.0;
                }
                return vec;
            } else if (obj instanceof SparseVector) {
                SparseVector inputVec = (SparseVector) obj;
                int[] newIndices = new int[inputVec.indices.length];
                int pos = 0;

                for (int i = 0; i < inputVec.indices.length; ++i) {
                    if (inputVec.values[i] > threshold) {
                        newIndices[pos++] = inputVec.indices[i];
                    }
                }

                double[] newValues = new double[pos];
                Arrays.fill(newValues, 1.0);
                return new SparseVector(inputVec.size(), Arrays.copyOf(newIndices, pos), newValues);
            } else {
                return Double.parseDouble(obj.toString()) > threshold ? 1.0 : 0.0;
            }
        }