2 votos

¿Modelo de clasificación, mitad regresión?

Estoy tratando de implementar un modelo que predice si un usuario paga por algo, y si es así, cuánto tiempo le lleva hacerlo. Intuyo que la salida de esto puede ser tanto una etiqueta (0) como un número real. ¿Existe tal cosa como un modelo de clasificación/regresión mixto? ¿O estoy interpretando mal el problema?

Editar: para aclarar, pagar o no pagar en un cierto período de tiempo marca la diferencia, con aquellos que no pagan efectivamente teniendo una etiqueta Falsa/0. El contexto más detallado es que este es un modelo de prepagos. (Veo cómo mi explicación original puede ser confusa).

2voto

ssn Puntos 472

Realmente tienes dos problemas aquí y puedes tratarlos así.

si un usuario paga por algo

Probablemente quieras modelar un ensayo de Bernoulli aquí. Tendrás una probabilidad $p(X=x) \in(0,1)$.

Entonces tienes una función de pérdida $\mathcal L_B(y,\hat y)=-y\log(\hat y) - (1-y)\log(1-\hat y)$, donde $\hat y = f(x)$ es la probabilidad de que el usuario haya pagado por algo.

y si es así, cuánto tiempo les toma pagar

Esta resulta en un tiempo $\tau(X=x) \in (0,+ \infty)$. Puedes modelar esto como una exponencial, lo que nos llevará a la siguiente función de pérdida: $\mathcal L_E(t,\hat t)=t\hat t - \log\hat t$, donde $\hat t = 1/g(x)$.

Entonces, la función de pérdida total (para un dato) es:

$$\mathcal L = \mathcal L_B + y\mathcal L_E$$

Puedes usar el $y$ actual en el entrenamiento, lo que implica que $$\mathcal L=\begin{cases}\mathcal L_B, \quad\text{para} \quad y=0 \\\mathcal L_B + \mathcal L_E, \quad\text{para} \quad y=1\end{cases}$$

Esto básicamente significa estimar dos modelos separados, a menos que $g$ y $f$ compartan parámetros (si estamos hablando de redes neuronales, esa puede ser una opción sensata, dependiendo de la naturaleza de $x$).

1voto

Nate Puntos 41

Pregunta interesante, depende de qué tan complicado quieras ser, pero en los modelos más directos no. Suponiendo que nos ceñimos a algo como una regresión lineal simple, aquí hay tres opciones:

  1. Hacer lo primero en secuencia: primero ajustar si compraron, luego ajustar el tiempo solo en los datos donde eso sea aplicable. Este probablemente sea el mejor método.
  2. En tu conjunto de entrenamiento, asigna a todos los que no compraron algo un tiempo negativo (digamos -1). Luego, ajusta solo al tiempo y asume que cualquier persona con algún tiempo negativo no ha comprado algo.
  3. ¿Estás contento con datos de tiempo discreto? Si es así, podrías hacer una regresión en el conjunto de ([no compró], [compró, tiempo1], [compró, tiempo2], ...). Esto tendrá algunos problemas, como el hecho de que tienes una categoría enormemente sobre representada, pero puedes intentar solucionar eso con ponderación.

En general, sugiero simplemente hacer el primer método, sería difícil ajustar "simultáneamente" sin tener que hacer algún tipo de reponderación.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X