Due to recent updates, all users are required to create an Altair One account to login to the RapidMiner community. Click the Register button to create your account using the same email that you have previously used to login to the RapidMiner community. This will ensure that any previously created content will be synced to your Altair One account. Once you login, you will be asked to provide a username that identifies you to other Community users. Email us at Community with questions.
DBScan Mejorar peso features
Airbus_emitter
Member Posts: 6 Learner I
in Help
Buenos días,
Soy nuevo por aqui y tambien en rapid miner. Estoy intentando realizar un clusterizado usando dbscan. Actalmente consigo el clusterizado que quiero dando un mayor o menos peso manualmente a mis features. Pero me gustaría conocer algun operador que haga esta funcion automáticamente. Esto, es, que en funcion de los datos introducids se autoajuste el peso que deben tomar cada una de las features.
Muestro el pequeño proceso que tengo montado ahora mismo.
En este caso trato señales de un emisor.
Tengo 6 parámetros. RF_min, RF_max, pRI_max, pRI_min, PW_max, PW_min. Seria modificar el tipo de clusterizado que hace en función de los dispersos que estan los datos introducidos. Con esto em refiero por ejemplo, si hya valores con RF min en torno a 1000 y otros con 8000, el peso de RF se debe ver reducido. Sin embargo, si todos los valores están entre 5000 y 6000, pues que le dé mas peso, para que el clusterizado sea más idóneo.
Cuando hablo de pesos, hablo de modificar el siguiente operador generateAttributes.
En cuanto a los valores de dbscan, he probado a tocar el min points o el epsilon, pero no me gusta el clusterizado que hace. Por lo tanto ahora mismo esos dos valores los tengo fijados en, epsilon 0.2 y min points 1
Pongo un ejemplo de lo que sucede. En este caso, PW por ejemplo no deberia tener variaciones y debería tomar 6.84 y 7 en el mismo cluster y no separarlo. Pero esto sucede porque RF debería "tener menos peso" (dividir entre un número mayor), para disgregarlo menos y tener menos clusters.
Y bien realizado sería mover el peso de RF a menos. Esto lo hago dividiendo entre 1000 y volviendo a correr el programa. Con esto consigo que todos los clusters se encuentren con Rf entre 9464 y 9871, sin realizar clusters nuevos entre estos dos valores.
Asi bien, diviendo RF entre 1000 tengo:
Soy nuevo por aqui y tambien en rapid miner. Estoy intentando realizar un clusterizado usando dbscan. Actalmente consigo el clusterizado que quiero dando un mayor o menos peso manualmente a mis features. Pero me gustaría conocer algun operador que haga esta funcion automáticamente. Esto, es, que en funcion de los datos introducids se autoajuste el peso que deben tomar cada una de las features.
Muestro el pequeño proceso que tengo montado ahora mismo.
En este caso trato señales de un emisor.
Tengo 6 parámetros. RF_min, RF_max, pRI_max, pRI_min, PW_max, PW_min. Seria modificar el tipo de clusterizado que hace en función de los dispersos que estan los datos introducidos. Con esto em refiero por ejemplo, si hya valores con RF min en torno a 1000 y otros con 8000, el peso de RF se debe ver reducido. Sin embargo, si todos los valores están entre 5000 y 6000, pues que le dé mas peso, para que el clusterizado sea más idóneo.
Cuando hablo de pesos, hablo de modificar el siguiente operador generateAttributes.
En cuanto a los valores de dbscan, he probado a tocar el min points o el epsilon, pero no me gusta el clusterizado que hace. Por lo tanto ahora mismo esos dos valores los tengo fijados en, epsilon 0.2 y min points 1
Pongo un ejemplo de lo que sucede. En este caso, PW por ejemplo no deberia tener variaciones y debería tomar 6.84 y 7 en el mismo cluster y no separarlo. Pero esto sucede porque RF debería "tener menos peso" (dividir entre un número mayor), para disgregarlo menos y tener menos clusters.
Y bien realizado sería mover el peso de RF a menos. Esto lo hago dividiendo entre 1000 y volviendo a correr el programa. Con esto consigo que todos los clusters se encuentren con Rf entre 9464 y 9871, sin realizar clusters nuevos entre estos dos valores.
Asi bien, diviendo RF entre 1000 tengo:
Tagged:
0
Answers
- Branch: Si tienes una toma de decisión binaria te podría ayudar para poder elegir el camino A o el B dependiendo de las condición que pongas
- Select Subprocess: Si tienes más de un camino esto funciona como un switch o case y con una macro puedes decidir el camino a seguir
- Optimize Parameters en conjunto con un Cluster count, distance o density distribution te podría ayudar a encontrar los parámetros óptimos para tu DBSCAN y así mejorar los resultados que buscas. aquí un video que te ayudará a conocer el concepto (https://academy.rapidminer.com/learn/video/optimization-of-the-model-parameters)
Saludos y espero que sea útil la información para avanzar en tu proyecto.En mi caso serían varias subprocesos y el uso de una macro. Estoy intentando hacerlo, pero no consigo que corra el programa, seguramente por no saber usar estos operadores.
La macro hecha con "generate macro" entiendo que sustituye al operador "select Subprocess".
Dentro del subprocess no entiendo que debería meter y la macro como elige un subproceso u otro.
El problema se reduce a lo siguiente
Tengo un parámetro que pongamos que toma valores de 0 a 1000
de 0 a 250 quiero que el "generate attributes", que es el que me normaliza, tome unos valores, de 250 a 500 otros, de 500 a 750 otro y de 750 a 1000 otro.
Y despues de todo esto, me haga clusterizado dbscan con la opcion que se haya dado.
Como sería esta macro o que debo meter en el subproceso? Que input debe tomar el subproceso?
Como regla general es recomendable realizar una normalización Z de los datos antes de realizar un clustering para evitar el efecto negativo de tener atributos en distintas escalas.
Para hacer eso utilizamos el operador Normalize y después se correría el DBSCAN
Como puedes ver en el ejemplo que comparto el normalizar o no una BD tiene efecto en el resultado del cluster ya que los clusters son sensibles a los valores extremos.
El operador Select Subproces espera una macro con un valor numérico (Select Which)
la macro opción la crearías algún if que te arroje un número entre 1 y número de caminos posibles en tu ajuste de peso.
Dentro del Subprocess harías lo que mencionamos en el mensaje anterior.
Espero esto te ayude.