1
$\begingroup$

Which ML method would you say is the easiest to derive a mathematical formula from based on already existing data of predictor stats and outcome?

I have this data:

Opponent 1:

  • Strength: x
  • Battle Score: y

I also have a model that I put against the opponent:

Opponent 2:

  • Strength: z
  • Battle Score: k

Finally, all outcomes of fights are written into a database (which currently has around 2800 outcomes) and look something like this model:

Fight:

  • Strength: x - z
  • Battle Score: y - k
  • Outcome: win/lose

I would want to get proper weights for Strength and Battle Score, so I can derive a simple formula from it and thus somewhat predict whether the next fight will be won or lost.

$\endgroup$
1
  • $\begingroup$ Linear regression will do the job here $\endgroup$
    – Aditya
    Commented Oct 6, 2018 at 11:17

2 Answers 2

2
$\begingroup$

If you want "the easiest" for "a simple formula", then for sure it will be a linear regression on the battle score, or a logistic regression on "win/lose". That way you'll have the coefficients of the model, and they will be interpretable (which you won't get from a neural network with hundreds of parameters).

$\endgroup$
0
$\begingroup$

You have to do binary classification. Here is how in Keras:

  1. Organize your dataset so that it looks like a matrix or a pandas dataframe:

enter image description here

  1. Outcome is going to be the label vector and the matrix without fight id and Outcome is going to be the features of the dataset.

  2. Divide the dataset in train and test, for example with scikit learn train_test_split

  3. Build a simple model with Keras

    model = Sequential()
    model.add(Dense(10, input_dim=4, activation='relu'))
    model.add(Dense(10, activation='relu'))
    model.add(Dropout(0.2))
    model.add(Dense(1, activation='sigmoid')
    model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']
    
  4. Train it:

    model.fit(train_x, train_y, epochs= 2, batch_size = 500, validation_data = (test_x, test_y))
    
$\endgroup$
1
  • $\begingroup$ I don't think a neural network with four layers, including a dropout, is "the easiest to derive a mathematical formula". $\endgroup$
    – Mephy
    Commented Oct 6, 2018 at 17:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.