1 votos

¿Cómo interpretar/informar la puntuación de la regresión en forma de probabilidades?

De un producto se miden alrededor de cien características. He modelado con éxito muchas de ellas basándome en un subconjunto de características gracias a los datos históricos y a la regresión de bosque aleatorio con puntuaciones R2 muy altas (0,95).

Cómo y qué métrica de evaluación debo utilizar para poder hacer una afirmación como:

La medición física de esta característica puede detenerse y sustituirse por la predicción del modelo, ya que la probabilidad de que el error sea superior a XX es sólo del YY%".

O algo similar que pueda ser lo suficientemente convincente para un responsable de calidad.

Gracias de antemano

0voto

David Puntos 401

No estoy seguro de haberle entendido bien. Sin embargo, creo que puedes construir la distribución de probabilidad empírica del error (utilizando el conjunto de pruebas), si es necesario, utilizando bootstrapping. A continuación, puede estimar la distribución de probabilidad del error utilizando MLE, utilizar la estimación no paramétrica, etc. Si tienes una distribución, entonces puedes estimar fácilmente la probabilidad de exceder algún valor dado del error.

Tenga en cuenta que se necesitan muchas observaciones para hacer una buena estimación de la distribución. En el caso de este conjunto de datos (iris), este enfoque no proporcionará resultados muy sólidos.

Si este método falla, siempre se puede utilizar La desigualdad de Chebyshev

A continuación tienes un código R para un ejemplo de juguete:

library(randomForest)
library(ggplot2)
data(iris)

set.seed(2020)

df <- iris
test.df <- iris #in your case it will be a real test set
head(df)

rf.model <- randomForest(Sepal.Length ~ Sepal.Width + Petal.Length + Petal.Width ,data=df)
check.df <- data.frame(predicted = predict(rf.model,newdata=test.df), observed = test.df$Sepal.Length)
head(check.df)
#uncomment line below to display a scatter plot
#ggplot(data = check.df,aes(x=observed,y=predicted)) + geom_point() + geom_smooth(method="lm")

error.df <- data.frame(error = check.df$observed - check.df$predicted)
#uncomment line below to display a histogram
#ggplot(data = error.df,aes(x=error,y=..density..)) + geom_histogram() + geom_density() # plot the histogram and density

cdf <- ecdf(x=error.df$error) #empirical CDF function
#probability of error exceeding 0.2 on both sides, so including also error exceeding -0.2, P(error<-0.2 or error>0.2)
P = cdf(-0.2) + (1-cdf(0.2)) 
P

Por supuesto, puedes utilizar la medida que quieras para el error.

También intervalos de predicción puede ser interesante para usted.

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