Mi matriz de datos inicial estaba muy desbalanceada (5% de la clase minoritaria), por lo que he creado con el algoritmo SMOTE un dataset balanceado con el que he creado el modelo, y luego sobre ese modelo he creado la matriz de confusión con los datos originales. Respecto a lo que me comentas, Carlos, creo que además de todo lo que comentas, que está bien, en micaso es necesario también saber no sólo que variable influye sino como influye, y esto en un randomForest es complejo, ya que es una caja negra. Por ello es por lo que buscaba la mejor manera, y una era medainte partialPlot y la otra mediante árboles de clasificación, pero esta segunda manera me empobrece el modelo. Un saludo Jesús Date: Tue, 12 Apr 2016 11:01:16 +0200 Subject: Re: [R-es] Random Forest para clasificación From: cof en qualityexcellence.es To: j.para.fernandez en hotmail.com CC: r-help-es en r-project.org Hola, Entonces si tienes:La importancia de las variables (esto lo obtienes directamente con "importance").Tienes la matriz de confusión.Con esto tienes bastante información sobre la bondad de tu modelo y sobre qué variables influyen más en tu variable objetivo.Lo único que veo que te haría falta es determinar:La precisión utilizando cualquiera de las medidas de error que existen: Accuracy, Kappa, LogLoss, RSE, RMSE....Y quizás evaluar un poco más finamente tu modelo con un CV para ver con amplitud si es que no estás haciendo overfitting.¿Has hecho tu modelo directamente?. Quiero decir sin utilizar una parte para entrenar y otra parte para hacer "test". Saludos,Carlos. El 12 de abril de 2016, 10:39, Jesús Para Fernández <j.para.fernandez en hotmail.com> escribió: No no, eso lo he sacaod, es decir, tengo la matriz de confusión para las OK/NOK, lo que no entiendo es como extraer las conclusiones sobre el modelo, de cara a como afectan las variables. He seguido dos estrategias: 1-Crear arboles de clasificacion con las variables más importantes del random Forest, pero el modelo se empobrece bastante. 2- Sacar los partialPlot, para ver la influencia de cada variable, pero no termino de entender el significado del eje Y para estos gráficos. Por lo que he visto, con tu aportación primera, es que es el porcentaje de Votos OK/NOK, pero me queda la duda de saber si el 1 es el OK y el -1 el NOK o al revés. Gracias Carlos! Jesús Date: Tue, 12 Apr 2016 10:28:44 +0200 Subject: Re: [R-es] Random Forest para clasificación From: cof en qualityexcellence.es To: j.para.fernandez en hotmail.com CC: r-help-es en r-project.org Hola, Entonces, por tu última pregunta, tu duda no es realmente sobre el significado de "partialPlot" si no realmente si a la hora de hacer tu modelo, "randomForest" está haciendo una buena o mala clasificación. ¿Es así?. Porque entonces lo que hay que aclarar es otra cosa. Si lo que quieres determinar con precisión es si cuando "randomForest" (o cualquier otro modelo) te está indicando que un individuo (una fila) pertenece o no a una clase determinada (en tu caso "OK" o "KO") lo que tienes que plantearte son otras cosas. Antes de hablar de ellas, prefiero confirmar contigo si es esto lo que buscas o no. Saludos,Carlos Ortegawww.qualityexcellence.es El 12 de abril de 2016, 10:17, Jesús Para Fernández <j.para.fernandez en hotmail.com> escribió: Gracias por la pronta respuesta, pero tras leer la contestación de la gente, sigo sin entender muy bien la explicación. Le responden lo siguiente: "Each point on the partial dependence plot is the average vote percentage in favor of the "Yes trees" class across all observations, given a fixed level of TRI. It's not a probability of correct classification. It has absolutely nothing to do with accuracy, true negatives, and true positives. When you see the phrase Values greater than TRI 30 begin to have a positive influence for classification in your model is an puffed-up way of saying Values greater than TRI 30 begin to predict "Yes trees" more strongly than values lower than TRI 30" Es decir, que el eje Y es el total de votos de una clase frente a la otra, pero como está codificado con -1 y +1, como se cual es la clase OK y la NOK? Gracias Jesús Date: Tue, 12 Apr 2016 10:04:15 +0200 Subject: Re: [R-es] Random Forest para clasificación From: cof en qualityexcellence.es To: j.para.fernandez en hotmail.com CC: r-help-es en r-project.org Hola, Aquí tienes una explicación: http://stats.stackexchange.com/questions/121383/interpreting-y-axis-of-a-partial-dependence-plots Saludos,Carlos Ortegawww.qualityexcellence.es El 12 de abril de 2016, 7:13, Jesús Para Fernández <j.para.fernandez en hotmail.com> escribió: Buenas, Cuando estoy haciendo un random Forest para clasificación y hago el gráfico partialPlot, siendo mi respuesta OK/NOK, me sale en el eje X el valor de la variable, pero en el eje Y me salen valores de entre -1 y 1. ¿Qué significado tiene? Adjunto un ejemplo: https://www.dropbox.com/s/4b92lqxi3592r0d/Captura.JPG?dl=0 Gracias!!! [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es -- Saludos, Carlos Ortega www.qualityexcellence.es -- Saludos, Carlos Ortega www.qualityexcellence.es -- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Hola, Si lees estas referencias puedes entender mejor las dificultades y limitaciones que presentan los "partialPlot" para determinar su contribución al modelo que has construido: - http://stats.stackexchange.com/questions/21152/obtaining-knowledge-from-a-random-forest#172839 - http://stats.stackexchange.com/questions/92150/r-what-do-i-see-in-partial-dependence-plots-of-gbm-and-randomforest En ellas aparece la referencia a este otro paquete "forestFloor": - https://cloud.r-project.org/web/packages/forestFloor/index.html Que sí que te puede ayudar a entender de forma visual, las relaciones/interrelaciones que existen entre la variable que quieres analizar y el resto de tu modelo. Por otro lado, comentarte que mi experiencia con SMOTE (está en el paquete DMwR) o con sus equivalentes de "caret" (upSample() - downSample() ) tienden a crear un overfit en el modelo. Para el nivel de desbalanceo que tienes. Valores de menos del 1% en tu variable son cuando sí que cuando interesa aplicarlo. Una alternativa es usar las funciones de coste incluyendo valores inversamente proporcionales a la frecuencia de cada caso (variable predictora). Saludos, Carlos. El 12 de abril de 2016, 11:33, Jesús Para Fernández < j.para.fernandez en hotmail.com> escribió:> Mi matriz de datos inicial estaba muy desbalanceada (5% de la clase > minoritaria), por lo que he creado con el algoritmo SMOTE un dataset > balanceado con el que he creado el modelo, y luego sobre ese modelo he > creado la matriz de confusión con los datos originales. > > Respecto a lo que me comentas, Carlos, creo que además de todo lo que > comentas, que está bien, en micaso es necesario también saber no sólo que > variable influye sino como influye, y esto en un randomForest es complejo, > ya que es una caja negra. > > Por ello es por lo que buscaba la mejor manera, y una era medainte > partialPlot y la otra mediante árboles de clasificación, pero esta segunda > manera me empobrece el modelo. > > Un saludo > Jesús > > ------------------------------ > Date: Tue, 12 Apr 2016 11:01:16 +0200 > > Subject: Re: [R-es] Random Forest para clasificación > From: cof en qualityexcellence.es > To: j.para.fernandez en hotmail.com > CC: r-help-es en r-project.org > > Hola, > > Entonces si tienes: > > - La importancia de las variables (esto lo obtienes directamente con > "importance"). > - Tienes la matriz de confusión. > > Con esto tienes bastante información sobre la bondad de tu modelo y sobre > qué variables influyen más en tu variable objetivo. > Lo único que veo que te haría falta es determinar: > > - La precisión utilizando cualquiera de las medidas de error que > existen: Accuracy, Kappa, LogLoss, RSE, RMSE.... > - Y quizás evaluar un poco más finamente tu modelo con un CV para ver > con amplitud si es que no estás haciendo overfitting. > > ¿Has hecho tu modelo directamente?. Quiero decir sin utilizar una parte > para entrenar y otra parte para hacer "test". > > Saludos, > Carlos. > > > El 12 de abril de 2016, 10:39, Jesús Para Fernández < > j.para.fernandez en hotmail.com> escribió: > > > No no, eso lo he sacaod, es decir, tengo la matriz de confusión para las > OK/NOK, lo que no entiendo es como extraer las conclusiones sobre el > modelo, de cara a como afectan las variables. He seguido dos estrategias: > > 1-Crear arboles de clasificacion con las variables más importantes del > random Forest, pero el modelo se empobrece bastante. > 2- Sacar los partialPlot, para ver la influencia de cada variable, pero no > termino de entender el significado del eje Y para estos gráficos. Por lo > que he visto, con tu aportación primera, es que es el porcentaje de Votos > OK/NOK, pero me queda la duda de saber si el 1 es el OK y el -1 el NOK o al > revés. > > Gracias Carlos! > Jesús > ------------------------------ > Date: Tue, 12 Apr 2016 10:28:44 +0200 > > Subject: Re: [R-es] Random Forest para clasificación > From: cof en qualityexcellence.es > To: j.para.fernandez en hotmail.com > CC: r-help-es en r-project.org > > Hola, > > Entonces, por tu última pregunta, tu duda no es realmente sobre el > significado de "partialPlot" si no realmente si a la hora de hacer tu > modelo, "randomForest" está haciendo una buena o mala clasificación. ¿Es > así?. Porque entonces lo que hay que aclarar es otra cosa. > > Si lo que quieres determinar con precisión es si cuando "randomForest" (o > cualquier otro modelo) te está indicando que un individuo (una fila) > pertenece o no a una clase determinada (en tu caso "OK" o "KO") lo que > tienes que plantearte son otras cosas. Antes de hablar de ellas, prefiero > confirmar contigo si es esto lo que buscas o no. > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > > El 12 de abril de 2016, 10:17, Jesús Para Fernández < > j.para.fernandez en hotmail.com> escribió: > > > Gracias por la pronta respuesta, pero tras leer la contestación de la > gente, sigo sin entender muy bien la explicación. > > Le responden lo siguiente: > "Each point on the partial dependence plot is the average vote percentage > in favor of the "Yes trees" class across all observations, given a fixed > level of TRI. > It's not a probability of correct classification. It has absolutely > nothing to do with accuracy, true negatives, and true positives. > When you see the phrase > > Values greater than TRI 30 begin to have a positive influence for > classification in your model > > is an puffed-up way of saying > > Values greater than TRI 30 begin to predict "Yes trees" more strongly than > values lower than TRI 30" > > Es decir, que el eje Y es el total de votos de una clase frente a la otra, > pero como está codificado con -1 y +1, como se cual es la clase OK y la NOK? > > Gracias > Jesús > ------------------------------ > Date: Tue, 12 Apr 2016 10:04:15 +0200 > Subject: Re: [R-es] Random Forest para clasificación > From: cof en qualityexcellence.es > To: j.para.fernandez en hotmail.com > CC: r-help-es en r-project.org > > > Hola, > > Aquí tienes una explicación: > > > http://stats.stackexchange.com/questions/121383/interpreting-y-axis-of-a-partial-dependence-plots > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > El 12 de abril de 2016, 7:13, Jesús Para Fernández < > j.para.fernandez en hotmail.com> escribió: > > Buenas, > > Cuando estoy haciendo un random Forest para clasificación y hago el > gráfico partialPlot, siendo mi respuesta OK/NOK, me sale en el eje X el > valor de la variable, pero en el eje Y me salen valores de entre -1 y 1. > ¿Qué significado tiene? > > Adjunto un ejemplo: > > https://www.dropbox.com/s/4b92lqxi3592r0d/Captura.JPG?dl=0 > > > Gracias!!! > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es > > > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es > > > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Voy a investigar mas el forestFloor, seguramente vuelva en un par de días con dudas. Gracias chicos :) Por cierto, Carlos, ¿cómo haces para encontrar siempre la información necesaria en tan poco tiempo? Date: Tue, 12 Apr 2016 12:00:42 +0200 Subject: Re: [R-es] Random Forest para clasificación From: cof en qualityexcellence.es To: j.para.fernandez en hotmail.com CC: r-help-es en r-project.org Hola, Si lees estas referencias puedes entender mejor las dificultades y limitaciones que presentan los "partialPlot" para determinar su contribución al modelo que has construido:http://stats.stackexchange.com/questions/21152/obtaining-knowledge-from-a-random-forest#172839 http://stats.stackexchange.com/questions/92150/r-what-do-i-see-in-partial-dependence-plots-of-gbm-and-randomforestEn ellas aparece la referencia a este otro paquete "forestFloor":https://cloud.r-project.org/web/packages/forestFloor/index.html Que sí que te puede ayudar a entender de forma visual, las relaciones/interrelaciones que existen entre la variable que quieres analizar y el resto de tu modelo. Por otro lado, comentarte que mi experiencia con SMOTE (está en el paquete DMwR) o con sus equivalentes de "caret" (upSample() - downSample() ) tienden a crear un overfit en el modelo. Para el nivel de desbalanceo que tienes. Valores de menos del 1% en tu variable son cuando sí que cuando interesa aplicarlo. Una alternativa es usar las funciones de coste incluyendo valores inversamente proporcionales a la frecuencia de cada caso (variable predictora). Saludos,Carlos. El 12 de abril de 2016, 11:33, Jesús Para Fernández <j.para.fernandez en hotmail.com> escribió: Mi matriz de datos inicial estaba muy desbalanceada (5% de la clase minoritaria), por lo que he creado con el algoritmo SMOTE un dataset balanceado con el que he creado el modelo, y luego sobre ese modelo he creado la matriz de confusión con los datos originales. Respecto a lo que me comentas, Carlos, creo que además de todo lo que comentas, que está bien, en micaso es necesario también saber no sólo que variable influye sino como influye, y esto en un randomForest es complejo, ya que es una caja negra. Por ello es por lo que buscaba la mejor manera, y una era medainte partialPlot y la otra mediante árboles de clasificación, pero esta segunda manera me empobrece el modelo. Un saludo Jesús Date: Tue, 12 Apr 2016 11:01:16 +0200 Subject: Re: [R-es] Random Forest para clasificación From: cof en qualityexcellence.es To: j.para.fernandez en hotmail.com CC: r-help-es en r-project.org Hola, Entonces si tienes:La importancia de las variables (esto lo obtienes directamente con "importance").Tienes la matriz de confusión.Con esto tienes bastante información sobre la bondad de tu modelo y sobre qué variables influyen más en tu variable objetivo.Lo único que veo que te haría falta es determinar:La precisión utilizando cualquiera de las medidas de error que existen: Accuracy, Kappa, LogLoss, RSE, RMSE....Y quizás evaluar un poco más finamente tu modelo con un CV para ver con amplitud si es que no estás haciendo overfitting.¿Has hecho tu modelo directamente?. Quiero decir sin utilizar una parte para entrenar y otra parte para hacer "test". Saludos,Carlos. El 12 de abril de 2016, 10:39, Jesús Para Fernández <j.para.fernandez en hotmail.com> escribió: No no, eso lo he sacaod, es decir, tengo la matriz de confusión para las OK/NOK, lo que no entiendo es como extraer las conclusiones sobre el modelo, de cara a como afectan las variables. He seguido dos estrategias: 1-Crear arboles de clasificacion con las variables más importantes del random Forest, pero el modelo se empobrece bastante. 2- Sacar los partialPlot, para ver la influencia de cada variable, pero no termino de entender el significado del eje Y para estos gráficos. Por lo que he visto, con tu aportación primera, es que es el porcentaje de Votos OK/NOK, pero me queda la duda de saber si el 1 es el OK y el -1 el NOK o al revés. Gracias Carlos! Jesús Date: Tue, 12 Apr 2016 10:28:44 +0200 Subject: Re: [R-es] Random Forest para clasificación From: cof en qualityexcellence.es To: j.para.fernandez en hotmail.com CC: r-help-es en r-project.org Hola, Entonces, por tu última pregunta, tu duda no es realmente sobre el significado de "partialPlot" si no realmente si a la hora de hacer tu modelo, "randomForest" está haciendo una buena o mala clasificación. ¿Es así?. Porque entonces lo que hay que aclarar es otra cosa. Si lo que quieres determinar con precisión es si cuando "randomForest" (o cualquier otro modelo) te está indicando que un individuo (una fila) pertenece o no a una clase determinada (en tu caso "OK" o "KO") lo que tienes que plantearte son otras cosas. Antes de hablar de ellas, prefiero confirmar contigo si es esto lo que buscas o no. Saludos,Carlos Ortegawww.qualityexcellence.es El 12 de abril de 2016, 10:17, Jesús Para Fernández <j.para.fernandez en hotmail.com> escribió: Gracias por la pronta respuesta, pero tras leer la contestación de la gente, sigo sin entender muy bien la explicación. Le responden lo siguiente: "Each point on the partial dependence plot is the average vote percentage in favor of the "Yes trees" class across all observations, given a fixed level of TRI. It's not a probability of correct classification. It has absolutely nothing to do with accuracy, true negatives, and true positives. When you see the phrase Values greater than TRI 30 begin to have a positive influence for classification in your model is an puffed-up way of saying Values greater than TRI 30 begin to predict "Yes trees" more strongly than values lower than TRI 30" Es decir, que el eje Y es el total de votos de una clase frente a la otra, pero como está codificado con -1 y +1, como se cual es la clase OK y la NOK? Gracias Jesús Date: Tue, 12 Apr 2016 10:04:15 +0200 Subject: Re: [R-es] Random Forest para clasificación From: cof en qualityexcellence.es To: j.para.fernandez en hotmail.com CC: r-help-es en r-project.org Hola, Aquí tienes una explicación: http://stats.stackexchange.com/questions/121383/interpreting-y-axis-of-a-partial-dependence-plots Saludos,Carlos Ortegawww.qualityexcellence.es El 12 de abril de 2016, 7:13, Jesús Para Fernández <j.para.fernandez en hotmail.com> escribió: Buenas, Cuando estoy haciendo un random Forest para clasificación y hago el gráfico partialPlot, siendo mi respuesta OK/NOK, me sale en el eje X el valor de la variable, pero en el eje Y me salen valores de entre -1 y 1. ¿Qué significado tiene? Adjunto un ejemplo: https://www.dropbox.com/s/4b92lqxi3592r0d/Captura.JPG?dl=0 Gracias!!! [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es -- Saludos, Carlos Ortega www.qualityexcellence.es -- Saludos, Carlos Ortega www.qualityexcellence.es -- Saludos, Carlos Ortega www.qualityexcellence.es -- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]