您会说哪种 ML 方法最容易根据现有的预测器统计数据和结果数据推导出数学公式?
我有这个数据:
对手1:
- 强度:×
- 战斗分数:y
我也有一个模型用来对抗对手:
对手2:
- 强度:z
- 战斗分数:k
最后,所有战斗的结果都被写入数据库(目前有大约 2800 个结果),看起来像这个模型:
战斗:
- 强度:x - z
- 战斗分数:y - k
- 结果:赢/输
我想为力量和战斗分数获得适当的权重,这样我就可以从中得出一个简单的公式,从而在某种程度上预测下一场战斗是赢还是输。
您会说哪种 ML 方法最容易根据现有的预测器统计数据和结果数据推导出数学公式?
我有这个数据:
对手1:
我也有一个模型用来对抗对手:
对手2:
最后,所有战斗的结果都被写入数据库(目前有大约 2800 个结果),看起来像这个模型:
战斗:
我想为力量和战斗分数获得适当的权重,这样我就可以从中得出一个简单的公式,从而在某种程度上预测下一场战斗是赢还是输。
如果您想要“简单公式”的“最简单”,那么肯定会是对战斗分数的线性回归,或对“赢/输”的逻辑回归。这样,您将获得模型的系数,并且它们将是可解释的(您不会从具有数百个参数的神经网络中获得)。
您必须进行二进制分类。以下是 Keras 中的方法:
结果将是标签向量和没有战斗ID的矩阵,结果将是数据集的特征。
在训练和测试中划分数据集,例如scikit learn train_test_split
使用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']
训练它:
model.fit(train_x, train_y, epochs= 2, batch_size = 500, validation_data = (test_x, test_y))