"Running Logistic Regression (Weka) for the Yes Class"

earmijo
earmijo New Altair Community Member
edited November 5 in Community Q&A
When I run a logistic regression (weka) sometime I get the "wrong" equation. Instead of running the regression for the positive class ("yes"), RM or Weka run it for the negative class. Is there a way of forcing RM or Weka to use the "yes" class. See example below.

I know that it doesn't make any difference for predictions. I know that the fix is very easy ("to get the coefficients for the "yes" class, just reverse the sign") but... this had been driving me crazy since I started using RM (a few years ago).

Thanks in advance for any help.

image
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<process version="6.5.002">
  <context>
    <input/>
    <output/>
    <macros/>
  </context>
  <operator activated="true" class="process" compatibility="6.5.002" expanded="true" name="Process">
    <process expanded="true">
      <operator activated="true" class="read_url" compatibility="6.5.002" expanded="true" height="60" name="Read URL" width="90" x="112" y="120">
        <parameter key="url" value="https://s3.amazonaws.com/mirlitus/subscription.csv"/>
        <parameter key="read_attribute_names" value="true"/>
      </operator>
      <operator activated="true" class="set_role" compatibility="6.5.002" expanded="true" height="76" name="Set Role" width="90" x="313" y="120">
        <parameter key="attribute_name" value="id"/>
        <parameter key="target_role" value="id"/>
        <list key="set_additional_roles">
          <parameter key="subscribe" value="label"/>
        </list>
      </operator>
      <operator activated="true" class="weka:W-Logistic" compatibility="5.3.001" expanded="true" height="76" name="W-Logistic" width="90" x="514" y="120"/>
      <connect from_op="Read URL" from_port="output" to_op="Set Role" to_port="example set input"/>
      <connect from_op="Set Role" from_port="example set output" to_op="W-Logistic" to_port="training set"/>
      <connect from_op="W-Logistic" from_port="model" to_port="result 1"/>
      <portSpacing port="source_input 1" spacing="0"/>
      <portSpacing port="sink_result 1" spacing="0"/>
      <portSpacing port="sink_result 2" spacing="0"/>
    </process>
  </operator>
</process>

Answers

  • MartinLiebig
    MartinLiebig
    Altair Employee
    Have you tried the Remap Binominal operator?
  • earmijo
    earmijo New Altair Community Member
    Thank you Martin. I have tried "Remap Binomial" but it doesn't make any difference. Perhaps it doesn't work with Weka operators.

  • MartinLiebig
    MartinLiebig
    Altair Employee
    does it work with RM Logistic regression but not with W-LogisticRegression? this would sure indicate a problem here..

    ~Martin
  • lanem
    lanem New Altair Community Member

    Hi 

    I have the same problem where weka logistic regression operator calculates the coefficients and odds ratios for the false value but binominal remap operator can reverse this

    My other question is why does the Logistic Regression operator implemented by RapidMiner provide the odds ratios - I know you can calculate these by computing the exponential of the coefficients - but that is a manual fix would be good if the operator could provide this an output

    Regards Michael