Не знаю, правильно ли выбрать этот способ, чтобы выбрать лучшую модель машинного обучения.
Я использую иерархическое моделирование (тест A / B), чтобы выбрать лучшую модель машинного обучения:
mae_CV = Это средняя абсолютная ошибка, наблюдаемая при перекрестной проверке mae_real = Это средняя абсолютная ошибка, наблюдаемая напроверка 80/20
модель mae_CV mae_real A 0,000000114393863 0,000000002895284 B 0,000134346477960 0,017123410797252. ,,
import pandas as pd
import numpy as np
import pymc
@pymc.stochastic(dtype=np.float64)
def beta_priors(value=[1.0, 1.0]):
a, b = value
if a <= 0 or b <= 0:
return -np.inf
else:
return np.log(np.power((a + b), -2.5))
a = beta_priors[0]
b = beta_priors[1]
#The hidden, true rate for each website.
true_rates = pymc.Beta('true_rates', a, b, size=9)
# This is what we observed
#MAE
trials=np.array([0.000000114393863,
0.000134346477960,0.001020389795303,0.089087649019484,
0.115352112676056,0.115352112676056,
0.173451179235308,0.129136280993193,0.152391728386209])
#STD
successes = np.array([0.000000002895284,0.017123410797252,
0.017437934875488,
0.098840323926234,0.172929447852761,0.181849364817947,
0.195693320489636,0.280658808002116,0.280965435804803])
observed_values = pymc.Binomial('observed_values', trials, true_rates,
observed=True, value=successes)
model = pymc.Model([a, b, true_rates, observed_values])
mcmc = pymc.MCMC(model)
# Generate 1M samples, and throw out the first 500k
mcmc.sample(1000000, 500000)
#show
for i in range(9):
sns.kdeplot(mcmc.trace('true_rates')[:][:,i], shade = True, label =
"MODEL %s" % chr(65+i))
# is model A best than model b?
diff_BA = mcmc.trace('true_rates')[:][:,1] - mcmc.trace('true_rates')[:][:,0]
sns.kdeplot(diff_BA, shade = True, label = "Difference model B - model A")
plt.axvline(0.0, color = 'black')
print("Probability that model A gets MORE MAE than model B: %0.3f" %
(diff_BA < 0).mean())
print("Probability that model A gets LESS MAE than model B: %0.3f" % (diff_BA > 0).mean())
Я ожидаю получить лучшую модель, используя Мэй, полученную в перекрестной проверке, и результат проверки