private List<Feature> initFeatures(PyClassDict object, OpType opType, DataType dataType, SkLearnEncoder encoder){
List<String> activeFields = getActiveFields();
if(activeFields == null){
int numberOfFeatures = -1;
if(object instanceof HasNumberOfFeatures){
HasNumberOfFeatures hasNumberOfFeatures = (HasNumberOfFeatures)object;
numberOfFeatures = hasNumberOfFeatures.getNumberOfFeatures();
}
if(numberOfFeatures < 0){
throw new IllegalArgumentException("The first transformer or estimator object (" + ClassDictUtil.formatClass(object) + ") does not specify the number of input features");
}
activeFields = new ArrayList<>(numberOfFeatures);
for(int i = 0, max = numberOfFeatures; i < max; i++){
activeFields.add("x" + String.valueOf(i + 1));
}
logger.warn("Attribute \'" + ClassDictUtil.formatMember(this, "active_fields") + "\' is not set. Assuming {} as the names of active fields", activeFields);
}
List<Feature> result = new ArrayList<>();
for(String activeField : activeFields){
DataField dataField = encoder.createDataField(FieldName.create(activeField), opType, dataType);
result.add(new WildcardFeature(encoder, dataField));
}
return result;
}