<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 3.0cm 70.85pt 3.0cm;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang=ES link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Estimados</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Adjunto un archivo de texto separado por comas, muy simple como ejemplo, luego el siguiente código explicaría el problema. Si ejecutan el código se entenderá, creo.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>x <- read.csv("~/R/neuronal/x.csv", header=FALSE, sep=";")</p><p class=MsoNormal>V1Binario <- model.matrix(~ factor(x$V1) - 1)</p><p class=MsoNormal># -1 no coloca como interceto, deja x$V1 sin nada, son los que no tienen nada (nada, puerta, porton)</p><p class=MsoNormal>V1Binario</p><p class=MsoNormal>V2Binario <- model.matrix(~ factor(x$V2) - 1)</p><p class=MsoNormal>V3Binario <- model.matrix(~ factor(x$V3) - 1)</p><p class=MsoNormal>V4Binario <- model.matrix(~ factor(x$V4) - 1)</p><p class=MsoNormal>V5Binario <- model.matrix(~ factor(x$V5) - 1)</p><p class=MsoNormal>V6Binario <- model.matrix(~ factor(x$V6) - 1)</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>x <- cbind(x,V1Binario)</p><p class=MsoNormal>x <- cbind(x,V2Binario)</p><p class=MsoNormal>x <- cbind(x,V3Binario)</p><p class=MsoNormal>x <- cbind(x,V4Binario)</p><p class=MsoNormal>x <- cbind(x,V5Binario)</p><p class=MsoNormal>x <- cbind(x,V6Binario)</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>nn <- neuralnet(V6Binario~V1Binario+V2Binario+V3Binario+V4Binario+V5Binario, x, hidden=2, rep=5)</p><p class=MsoNormal>#claro no funciona</p><p class=MsoNormal>#porque si miro los datos con x</p><p class=MsoNormal>x</p><p class=MsoNormal># puedo ver que la cantidad de "columnas" se incrementa por cada factor pasado a binario</p><p class=MsoNormal># ¿Alguna idea?</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Javier Rubén Marcuzzi</p><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman",serif'><o:p> </o:p></span></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal style='border:none;padding:0cm'><b>De: </b><a href="mailto:javier.ruben.marcuzzi@gmail.com">Javier Marcuzzi</a><br><b>Enviado: </b>jueves, 7 de julio de 2016 10:51<br><b>Para: </b><a href="mailto:r-help-es@r-project.org">r-help-es@r-project.org</a><br><b>Asunto: </b>Red Neuronal complicada categorías</p></div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman",serif'><o:p> </o:p></span></p><p class=MsoNormal>Estimados</p><p class=MsoNormal>Les consulto por redes neuronales, hay diversos artículos como los siguientes (el último tienen un error actualmente). Pero mi pregunta va un poco por otro lado.</p><p class=MsoNormal><a href="http://www.r-bloggers.com/build-your-own-neural-network-classifier-in-r/">http://www.r-bloggers.com/build-your-own-neural-network-classifier-in-r/</a></p><p class=MsoNormal><a href="http://www.r-bloggers.com/classification-using-neural-net-in-r/">http://www.r-bloggers.com/classification-using-neural-net-in-r/</a></p><p class=MsoNormal>Básicamente se puede calcular un valor, por ejemplo doblar 2,4 grados a la derecha, luego 1 grado a la izquierda, y de esa forma conducir un auto, donde no importa el valor exacto porque siempre se puede corregir (muchas actualizaciones producen el resultado).</p><p class=MsoNormal>Otros casos donde se realiza la predicción, como las redes neuronales solo tienen números, la configuración (normalización) para categorías puede ser (0,0,0), (0,1,0), (1,0,0), (1,1,1), donde el significado no normalizado es: nada, techo, pieza, pileta, …, objetos de una casa.</p><p class=MsoNormal>La red neuronal no produce 0,0,1 como resultado, este podría ser 0, 0,00009, 0,999998.</p><p class=MsoNormal>Yo puedo decir a R que como 0,00009 y 0,999998 están próximos a 0 y 1 estos vales 0 y 1, trasladando el resultado a 0,0,1 que significa una categoría (palabra de objeto de la casa).</p><p class=MsoNormal>Hasta ahí todo correcto, puedo predecir la categoría.</p><p class=MsoNormal>Pero ¿Qué pasa si estas categorías son la presencia de objetos de la casa para clasificar la casa?</p><p class=MsoNormal>Quiero decir, techo, pieza es casa común.</p><p class=MsoNormal>Otro es techo, pieza, pileta es casa grande.</p><p class=MsoNormal>Pero otro usuario solo ingresa pieza y pileta (supone que hay techo) y también es casa grande.</p><p class=MsoNormal>En el primer caso tengo dos tripletes (0,0,0 techo y 0,0,1 pieza)</p><p class=MsoNormal>En el segundo caso tres tripletes porque hay tres objetos.</p><p class=MsoNormal>En el tercero solo tiene dos tripletes, suponiendo la existencia de techo en una casa.</p><p class=MsoNormal>En un ejemplo como este donde hay tres objetos de casa, podría entrenarla sin problemas porque hay unas 9 posibilidades de combinaciones de objetos.</p><p class=MsoNormal>Pero si la cantidad de objetos es tan alta que no puedo ingresar todas las combinaciones posibles ¿Cómo puedo escribir el modelo en R? ¿Es posible, o con redes neuronales puedo llegar a determinar que letra es – reconocimiento de caracteres (patrón x e y con presencia o ausencia de color, encontrando grupos de píxeles vecinos pintados), pero no tantas presencias o ausencias?</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>¿Alguien tiene un ejemplo donde muchas categorías (objetos) determinan a que categoría pertenece? Algo como el ejemplo que está en todos lados donde iris, setosa, …, pero en lugar de tener números hay datos categóricos, pero presencia o ausencia de tal o cuál dato.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>En otras palabras algo como</p><p class=MsoNormal>“0,0,1””0,0,0””1,0,1” -> grande</p><p class=MsoNormal>“0,0,1””0,0,0””1,1,1” -> grande</p><p class=MsoNormal>"0,0,0””1,0,1” -> grande</p><p class=MsoNormal>“1,1,1””0,0,1” -> chico</p><p class=MsoNormal>Pero sin poder escribir todas las combinaciones de tripletes posibles.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Javier Rubén Marcuzzi</p><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman",serif'><o:p> </o:p></span></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>