How to use SMOTE node in knime with integer dataset's columns?

Hi all,

I have to use the node "SMOTE" in the cross-validation metanode (I have put it after the X-partitioner and before the classifier, could it be right?). However, I have several errors when my dataset contains integer columns. I have tried putting a column rename before the cross-validation metanode, transforming the integer columns into double, but I got the following error:

 

The attribute 'Account length' has a different type in the test data (DoubleCell vs. Non-Native [interface org.knime.core.data.BoundedValue, interface org.knime.core.data.IntValue, interface org.knime.core.data.DataValue, interface org.knime.core.data.LongValue, interface org.knime.core.data.DoubleValue, interface org.knime.core.data.ComplexNumberValue, interface org.knime.core.data.FuzzyNumberValue, interface org.knime.core.data.FuzzyIntervalValue])

 

Could you help me?

 

By the moment, I'm normalizing the dataset before cross validation, but It's just a temporary solution, as you can see in the attached pictures (the first one is just illustrative, indeed the node outputs are red)

Hi,

thanks for reporting the problem. The weka predictor is indeed too restrictive. The problem is fixed and will be available with the next bugfix-release, probably this month. What KNIME version are you using? (seems to be lower than 3.0). I am not sure what other version, apart from 3.1, will be affected by this bugfix.

As another workaround for now you could also put a 'Round Double'-node after the SMOTE-node, because the SMOTE-node turns the former integer values into doubles and the 'Round Double'-node turns them back.

Best,

Martin

1 Like

The problem is fixed for 3.1.1 ...