Linear regression learner

Hi,

I get a strange warning from the Linear regression learner:

WARN      Linear Regression Learner          Type of column "sdf" is not one of the allowed types, which are numeric or nominal.

Is a column sdf in the input with a molecular structure. But, I don't use this column in the node.

However, the sdf does not appear neither in exclusions nor in incusions.

best Soren

Hi Soren,

I can reproduce the behavior and we will look into it for 2.10 (latest). I guess the workaround is to preprocess the data using a column filter node.

Thanks!
 Bernd

Ok, thanks!

The problem is an inconsistency in the way the Linear Regression Learner filters out column types that it does not support. It will be fixed in 2.10.

Hi,

Can the target of the learner be a Boolean type?

Based on the node description, it requires a Numeric Field.

But it seems I am able to select the "type" to be a boolean field, but when I execute the node, I get a Null Pointer Exception.

So i guess the answer is no?

2014-11-10 16:18:44,086 ERROR KNIME-Worker-79 Linear Regression Learner : Execute failed: ("NullPointerException"): null
2014-11-10 16:18:44,087 DEBUG KNIME-Worker-79 Linear Regression Learner : Execute failed: ("NullPointerException"): null
java.lang.NullPointerException
    at java.util.ArrayList.addAll(Unknown Source)
    at org.knime.base.node.mine.regression.RegressionTrainingData.<init>(RegressionTrainingData.java:155)
    at org.knime.base.node.mine.regression.RegressionTrainingData.<init>(RegressionTrainingData.java:101)
    at org.knime.base.node.mine.regression.linear2.learner.Learner.perform(Learner.java:106)
    at org.knime.base.node.mine.regression.linear2.learner.LinReg2Learner.execute(LinReg2Learner.java:131)
    at org.knime.base.node.mine.regression.linear2.learner.LinReg2LearnerNodeModel.execute(LinReg2LearnerNodeModel.java:160)
    at org.knime.core.node.NodeModel.executeModel(NodeModel.java:552)
    at org.knime.core.node.Node.invokeNodeModelExecute(Node.java:1097)
    at org.knime.core.node.Node.execute(Node.java:948)
    at org.knime.core.node.workflow.NativeNodeContainer.performExecuteNode(NativeNodeContainer.java:529)
    at org.knime.core.node.exec.LocalNodeExecutionJob.mainExecute(LocalNodeExecutionJob.java:95)
    at org.knime.core.node.workflow.NodeExecutionJob.internalRun(NodeExecutionJob.java:179)
    at org.knime.core.node.workflow.NodeExecutionJob.run(NodeExecutionJob.java:110)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at org.knime.core.util.ThreadPool$MyFuture.run(ThreadPool.java:120)
    at org.knime.core.util.ThreadPool$Worker.run(ThreadPool.java:240)
2014-11-10 16:18:44,087 DEBUG KNIME-Worker-79 WorkflowManager : Linear Regression Learner 2:8 doBeforePostExecution
2014-11-10 16:18:44,087 DEBUG KNIME-Worker-79 NodeContainer : Linear Regression Learner 2:8 has new state: POSTEXECUTE

It might work if you compute the column's domain (most probably true and false :) ) with the Domain Calculator node. (The error message should clearly be improved though.)