Predict_proba () em um alvo contínuo tornado binário
Estou construindo um modelo de equação de gravitação de Newtons. Ele recebe duas massas e um raio e produz o que gera a partir da fórmula.
$F = G \frac{m1 · m2}{r^2}$
Quero transformá-lo agora em um modelo de classificação binário, para isso seleciono um limite. Se a força for superior, então 1 se for inferior a 0.
A questão
Como posso criar uma função predict_proba dado o problema acima?
Respostas
Você pode usar uma função Sigmoid nos valores de Força ( com
escala em [0-10] com base em um valor máximo ). O Limiar deve se tornar 5 após a escala.
def predict_proba(y_pred):
y_pred = y_pred*10/100000 # scaled to [0-10]
thresold = 5
proba = np.exp(y_pred - threshold)/(1 + np.exp(y_pred - threshold))
return proba
predict_proba(100000), predict_proba(80000), predict_proba(50000), predict_proba(40000), predict_proba(10000), predict_proba(2000)
(0,9933, 0,9525, 0,5, 0,2689, 0,0179, 0,0081)