<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1919596727860015236</id><updated>2011-11-27T16:38:56.321-08:00</updated><category term='finance'/><category term='delirium tremens'/><title type='text'>cosas de jb</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://cosas-jb.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://cosas-jb.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>jb</name><uri>http://www.blogger.com/profile/13709249214033017810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1919596727860015236.post-8180239371664336008</id><published>2010-12-31T08:57:00.000-08:00</published><updated>2010-12-31T09:42:35.223-08:00</updated><title type='text'>Generación de variables normales con una matriz de covarianzas</title><content type='html'>Este es un problema que tuve hace un tiempo, que lo solucione de otra forma (no me acuerdo como). Hace poco se me apareció esta solución, y me pareció interesante.&lt;div&gt;Nosotros tenemos una matriz de &lt;i&gt;NxN&lt;/i&gt; de covarianzas (&lt;i&gt;C&lt;/i&gt;). Queremos generar m samples aleatorios de &lt;i&gt;N&lt;/i&gt; normales que respeten esa matriz de covarianzas.&lt;/div&gt;&lt;div&gt;Como la matriz &lt;i&gt;C&lt;/i&gt; es real y simétrica, podemos encontrar una &lt;i&gt;eigen decomposition:&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;C = RDR^tr&lt;/i&gt;&lt;/div&gt;&lt;div&gt;donde &lt;i&gt;R&lt;/i&gt; es una matriz orthogonal formada por los autovectores, y&lt;i&gt; D&lt;/i&gt; una matriz diagonal con los autovalores en la diagonal.&lt;/div&gt;&lt;div&gt;Por otro lado, si tenemos &lt;i&gt;m&lt;/i&gt; realizaciones de &lt;i&gt;n&lt;/i&gt; variables normales aleatorias independientes (con media cero) en una matriz &lt;i&gt;X&lt;/i&gt; de &lt;i&gt;m&lt;/i&gt;x&lt;i&gt;n&lt;/i&gt;, la estimación de la matriz de Covarianzas sería:&lt;/div&gt;&lt;div&gt;&lt;i&gt;C&lt;/i&gt; = &lt;i&gt;1/mX^trX.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;Si las &lt;/span&gt;n&lt;span class="Apple-style-span" style="font-style: normal;"&gt; variables son independientes, entonces, &lt;i&gt;1/mX^trX.&lt;/i&gt; va a ser una matriz diagonal, y el elemento {i,i} de la diagonal va a corresponder con la varianza de la variable &lt;/span&gt;i-esima&lt;span class="Apple-style-span" style="font-style: normal;"&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;Ahora, si generamos &lt;/span&gt;m&lt;span class="Apple-style-span" style="font-style: normal;"&gt; realizaciones de &lt;/span&gt;n&lt;span class="Apple-style-span" style="font-style: normal;"&gt; variables aleatorias, y cada variable aleatoria tiene media cero, y varianza igual al &lt;/span&gt;i&lt;span class="Apple-style-span" style="font-style: normal;"&gt;-esimo autovalor, tenemos que&lt;/span&gt;&lt;/div&gt;&lt;div&gt;D = 1/mX^trX&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;Por lo que, si definimos a &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;&lt;div&gt;&lt;i&gt;U = XR^tr&lt;/i&gt;&lt;/div&gt;&lt;div&gt;tenemos una matriz de &lt;i&gt;n&lt;/i&gt; variables con &lt;i&gt;m&lt;/i&gt; realizaciones, y con matriz de covarianzas igual a&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;    = 1/mU^trU&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;    =  1/mRX^trXR^tr&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;    = R( 1/mX^trX)R^tr&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;    = RDR^tr&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;C  = RDR^tr.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Que era lo que estábamos (bue, estaba buscando yo, no se si &lt;b&gt;todos&lt;/b&gt; estábamos buscando eso) buscando.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Este metodo es super costoso si la matriz de covarianzas cambia siempre -por lo costoso de calcular los autovalores-, pero realmente sirve para entender por que PCA funciona. En realidad, habría que tener en cuenta los residuos, espero en algún momento del próximo año hacer un post sobre eso&lt;/div&gt;&lt;div&gt;Feliz año&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica; color: #010101"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1919596727860015236-8180239371664336008?l=cosas-jb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cosas-jb.blogspot.com/feeds/8180239371664336008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1919596727860015236&amp;postID=8180239371664336008' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/8180239371664336008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/8180239371664336008'/><link rel='alternate' type='text/html' href='http://cosas-jb.blogspot.com/2010/12/generacion-de-variables-normales-con.html' title='Generación de variables normales con una matriz de covarianzas'/><author><name>jb</name><uri>http://www.blogger.com/profile/13709249214033017810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1919596727860015236.post-3422354216937507650</id><published>2010-02-09T18:42:00.001-08:00</published><updated>2010-02-09T18:45:06.339-08:00</updated><title type='text'>Web Semantica</title><content type='html'>Esto lo pensamos con amigos hace varios años, y lo encontre por casualidad... Puede ser cualquiera, lo tendria que releer :)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin: 0.0px 0.0px 3.0px 0.0px; font: 14.0px Arial"&gt;&lt;span style="letter-spacing: 0.0px"&gt;&lt;b&gt;&lt;i&gt;Modelo&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman; min-height: 15.0px"&gt;&lt;span style="letter-spacing: 0.0px"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman"&gt;&lt;span style="letter-spacing: 0.0px"&gt;Primero definimos semántica: Una semántica para una palabra determinada es la forma en que se relaciona esta palabra con un conjunto de palabras.&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman; min-height: 15.0px"&gt;&lt;span style="letter-spacing: 0.0px"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman"&gt;&lt;span style="letter-spacing: 0.0px"&gt;En Internet existe en cada punto de la red una semántica propia para ese punto. Esta semántica esta dada por las conexiones que tiene una pagina hacia otras, por los contenidos que tiene esta pagina, por la forma en que están organizados internamente los contenidos, por las paginas que linkean a una pagina, etc. Esta semántica existe, y no podemos alterarla, así que la podemos definir como semántica f'áctica.&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman; min-height: 15.0px"&gt;&lt;span style="letter-spacing: 0.0px"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman"&gt;&lt;span style="letter-spacing: 0.0px"&gt;También existen agentes (supongamos), estos agentes tienen intereses. Estos intereses los podemos representar con el significado que le dan a distintas palabras. Entonces los agentes crean significados (son significantes), y sus significados son propios. Podemos decir que tienen una semántica subjetiva. Un ejemplo de esto seria que para algunas personas la palabra c# significa una nota (do sostenido), para otras personas significa un lenguaje de programación. Acá, implícitamente se esta armando una red entre distintas palabras para armar el significado de un símbolo (ver &lt;a href="http://en.wikipedia.org/wiki/Semantic_networks"&gt;&lt;span style="font: 12.0px Times New Roman; text-decoration: underline ; letter-spacing: 0.0px color:#001afb;"&gt;http://en.wikipedia.org/wiki/Semantic_networks&lt;/span&gt;&lt;/a&gt; ). La información va a ser interesante para el agente en tanto responda al orden que define en su semántica subjetiva (por construcción). Entonces, podríamos decir que para que el agente tenga una buena experiencia de navegación por Internet, la información tendría que estar organizada según su semántica.&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman"&gt;&lt;span style="letter-spacing: 0.0px"&gt;Sabemos que el agente, cuando navega por la red, necesariamente esta moviéndose por un mundo donde la información esta organizada según la semántica fáctica, sin embargo, la navegación la hace con el mapa de la semántica subjetiva. El agente va a estar tratando de maximizar todo el tiempo la proximidad con su semántica, y eso se va ver, por ejemplo, cuando decide hacer clic en un determinado link, o cuando decide ignorarlo. Por ejemplo, si alguien va a clarín.com, la información esta organizada segundo lo que a clarín le parece, pero esta persona va a leer lo que a esta persona le parece que son noticias. Por ejemplo, si a esta persona le parece que los pozos que hay en Palermo no son noticias, no va a pedir mas información al respecto. Y si esta persona tiene un interés por las noticias internacionales, va a hacer clic directamente en la sección de internacionales.&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman; min-height: 15.0px"&gt;&lt;span style="letter-spacing: 0.0px"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman"&gt;&lt;span style="letter-spacing: 0.0px"&gt;Entonces, el problema se puede resumir a conseguir una función que mapeé de la semántica fáctica a la subjetiva (es decir, que pueda transformar el orden que tiene la información en la red, en un orden que le produce interés al agente).&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman"&gt;&lt;span style="letter-spacing: 0.0px"&gt;Supongamos que esta función existe &lt;/span&gt;&lt;span style="font: 12.0px Wingdings; letter-spacing: 0.0px"&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman"&gt;&lt;span style="letter-spacing: 0.0px"&gt;Como existe esa función, vamos a aproximarla usando redes neuronales.&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman"&gt;&lt;span style="letter-spacing: 0.0px"&gt;Estas redes van a ser tan grandes, que cada agente va a ser una simple neurona. Esta neurona va a estar relacionado con otros neuronas. La fuerza que los une va a representar lo cerca que van a estar las semánticas para algunas palabras. Incluso van a existir relaciones de segundo orden. La neurona A esta conectado con B que a la vez esta conectado con C. La fuerza con la que A esta conectado con C depende de la relación que tiene A con B y B con C. Cuando B nota que la relación A(B)C es suficientemente fuerte, puede presentar C a A, entonces se creara la relación AC. De esta forma, se va a estar creando una forma de aproximar las función de traducción semántica, usando las relaciones entre los agentes.&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman; min-height: 15.0px"&gt;&lt;span style="letter-spacing: 0.0px"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman"&gt;&lt;span style="letter-spacing: 0.0px"&gt;Esta nueva red va a tener una topología particular, y distinta de la topología fáctica y las topologías subjetivas, es decir, va a tener un significado propio, emergente de la relación entre los agentes&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman"&gt;&lt;span style="letter-spacing: 0.0px"&gt;.&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman; min-height: 15.0px"&gt;&lt;span style="letter-spacing: 0.0px"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 12.0px 0.0px; font: 12.0px Times New Roman; min-height: 15.0px"&gt;&lt;span style="letter-spacing: 0.0px"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 3.0px 0.0px; font: 14.0px Arial"&gt;&lt;span style="letter-spacing: 0.0px"&gt;&lt;b&gt;&lt;i&gt;Una aplicación alternativa.&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman; min-height: 15.0px"&gt;&lt;span style="letter-spacing: 0.0px"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman"&gt;&lt;span style="letter-spacing: 0.0px"&gt;Una aplicación nueva que se le puede dar a este modelo es la enseñanza. &lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman"&gt;&lt;span style="letter-spacing: 0.0px"&gt;Una de las cosas que me parece a mi que significa enseñar, es transmitir un significado para un grupo de símbolos. (Crearle significado, o resignificarlos). Entonces, me imagino a un profesor universitario diciéndole a su grupo de alumnos: “agréguenme a su lista de contactos mandatory”. En esta situación, lo que esta haciendo el profesor es diciéndole que el va a ser el significante, el que va a cargar de significado la información que busquen los alumnos. De esta manera, el profesor puede transmitir una manera de ver el mundo a los alumnos, transmitiéndole la semántica que el supuestamente tiene. &lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman"&gt;&lt;span style="letter-spacing: 0.0px"&gt;Una aplicación similar se puede dar en un equipo de research, o en algún equipo de trabajo. Cuando empieza una persona nueva a trabajar con el equipo, el tech lead puede ofrecerse como el significante, de esta manera, cuando la persona nueva busque algo en la red, la información va a salir de los lugares a los que el tech lead acude cuando necesita información, pudiéndole transmitir ese conocimiento.&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman"&gt;&lt;span style="letter-spacing: 0.0px"&gt;El comportamiento de esto es interesante por que, si bien el significante es definido, los símbolos a los que se les quiere dar significado van a estar ingresados por el agente final, y van a ser distintos por su subjetividad a lo que podría el significante haber pensado, lo que produce cierto significado emergente.&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman; min-height: 15.0px"&gt;&lt;span style="letter-spacing: 0.0px"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 12.0px 0.0px; font: 12.0px Times New Roman; min-height: 15.0px"&gt;&lt;span style="letter-spacing: 0.0px"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 3.0px 0.0px; font: 14.0px Arial"&gt;&lt;span style="letter-spacing: 0.0px"&gt;&lt;b&gt;&lt;i&gt;TODO:&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman"&gt;&lt;span style="letter-spacing: 0.0px"&gt;Pensar sobre privacidad&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman"&gt;&lt;span style="letter-spacing: 0.0px"&gt;Como se implementa? Simplemente indexando todo?&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman"&gt;Un regalito&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times New Roman; min-height: 15.0px"&gt;&lt;span style="letter-spacing: 0.0px"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/4TEkGT0BqEA&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/4TEkGT0BqEA&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1919596727860015236-3422354216937507650?l=cosas-jb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cosas-jb.blogspot.com/feeds/3422354216937507650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1919596727860015236&amp;postID=3422354216937507650' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/3422354216937507650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/3422354216937507650'/><link rel='alternate' type='text/html' href='http://cosas-jb.blogspot.com/2010/02/web-semantica.html' title='Web Semantica'/><author><name>jb</name><uri>http://www.blogger.com/profile/13709249214033017810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1919596727860015236.post-5995968545906124466</id><published>2008-06-07T12:44:00.000-07:00</published><updated>2008-06-07T12:46:26.159-07:00</updated><title type='text'>K-means y gravedad</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Times; "&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 10pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman'; "&gt;&lt;i&gt;&lt;span lang="ES-TRAD"&gt;Espero que este articulo cierre con un moño azul&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 10pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman'; "&gt;&lt;i&gt;&lt;span lang="ES-TRAD"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 10pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman'; "&gt;&lt;i&gt;&lt;span lang="ES-TRAD"&gt;Disclaimers: Articulo computronico. Drito, no te quejes&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 10pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman'; "&gt;&lt;span lang="ES-TRAD"&gt;Mirando un poco una implementación de k-means me di cuenta que uno de los problemas que tenia era que los puntos no tenían “conciencia” de su posición en el espacio ni de su entorno. Básicamente, un punto era un placeholder de coordenadas, y nada mas.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 10pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman'; "&gt;&lt;span lang="ES-TRAD"&gt;Como resolver este problema era algo que empezó a dar vueltas por mi cabeza. No llegue a ninguna solución (me adelanto, y bajo las expectativas sobre este post). A pesar de eso, me di cuenta de que el universo esta todo el tiempo haciendo k-means. Básicamente, la gravedad es una función de la distancia entre los cuerpos (y también de la masa, pero gracias al 1, podemos olvidarnos momentáneamente de eso).&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 10pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman'; "&gt;&lt;span lang="ES-TRAD"&gt;Los cuerpos en el espacio “sufren” y la atracción gravitacional de otros cuerpos (no toman conciencia de esa atracción, pero tiene un impacto sobre estos cuerpos). Entonces, el modelo que planteo es pensar a los distintos puntos como distintos cuerpos (a priori, con masa igual a 1), y en determinar los clusters en base a los conjuntos donde las relaciones gravitatorias son mas fuertes (de la misma manera que existen planetas, sistemas planetarios, sistemas de estrellas, galaxias, etc.). Ahora se produce un cambio de la relación, en vez de ser la relación de cada punto contra la media teórica de los clusters, la relación es entre cada unos de los cuerpos (creo que es un poco lo que se hace en &lt;a href="http://www.usyd.edu.au/su/agric/acpa/fkme/FkME.html#Fuzzy" style="color: blue; text-decoration: underline; "&gt;fuzzy k-means&lt;/a&gt;).&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 10pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman'; "&gt;&lt;span lang="ES-TRAD"&gt;Hasta ahora este cambio de metáfora no aporta nada (es mas, agranda la complejidad algorítmica, lo que no es bueno). Sin embargo, creo que se pueden hacer agregados de cuerpos. Esto seria, definir un Epsilon, y en base a ese Epsilon crear esferas, cuya densidad depende de la cantidad de puntos de esta esfera y del tamaño del Epsilon (volvemos a algo parecido a k-means). Ahora, estos cuerpos pasan a ser iguales a el resto de los cuerpos (no agregados), y solamente difieren en la densidad (y acá si podemos empezar a utilizar feature propios de la gravedad).&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 10pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman'; "&gt;&lt;span lang="ES-TRAD"&gt;Ahora aparece un problema con la definición de un Epsilon. Si hacemos una esfera de un radio determinado, estamos suponiendo implícitamente que los puntos van a estar distribuidos uniformemente en las n dimensiones. Este supuesto es demasiado fuerte. Quizás, algo que se podría hacer es hacer una ponderación en las dimensiones donde los puntos tienen mayor variabilidad. Bueno, básicamente esto seria proyectar todos los puntos en el espacio de los autovectores de la matriz de varianza/covarianza. Es decir, utilizar PCA (sin perdida de información).&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 10pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman'; "&gt;&lt;span lang="ES-TRAD"&gt;Una vez que realizamos esta proyección, nos queda una topología donde, en principio, tiene mas sentido utilizar una esfera para crear los agregados.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 10pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman'; "&gt;&lt;span lang="ES-TRAD"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 10pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman'; "&gt;&lt;span lang="ES-TRAD"&gt;Creo que una de las ventajas que puede tener esta metáfora es con respecto a las proyecciones.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 10pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman'; "&gt;&lt;span lang="ES-TRAD"&gt;Pensando por ejemplo en el tiempo. Si el tiempo no es una variable endógena (no es una de las n dimensiones), y quisiéramos hacer una extrapolación. Es decir, quisiéramos hacer una proyección sobre la posición futura de los distintos cuerpos, creo que tiene sentido estadístico utilizar los mismos modelos que se utilizan en la física para establecer la posición futura de un cuerpo en movimiento (es decir, para donde caen las manzanas). Creo que los datos pasados nos podrían ayudar para calcular la velocidad de los cuerpos, y quizás nos ayudarían a detectar “agujeros negros” en nuestra muestra.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 10pt; margin-left: 0cm; font-size: 12pt; font-family: 'Times New Roman'; "&gt;&lt;span lang="ES-TRAD"&gt;De cualquier manera, estas son especulaciones teóricas, recién tengo planeado cursar física del CBC el cuatrimestre próximo, ahí quizás tenga alguna idea mas acabada sobre este tema&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1919596727860015236-5995968545906124466?l=cosas-jb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cosas-jb.blogspot.com/feeds/5995968545906124466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1919596727860015236&amp;postID=5995968545906124466' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/5995968545906124466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/5995968545906124466'/><link rel='alternate' type='text/html' href='http://cosas-jb.blogspot.com/2008/06/k-means-y-gravedad.html' title='K-means y gravedad'/><author><name>jb</name><uri>http://www.blogger.com/profile/13709249214033017810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1919596727860015236.post-6321645635574511220</id><published>2008-03-24T11:55:00.000-07:00</published><updated>2008-03-24T14:53:48.798-07:00</updated><title type='text'>(algo de ) Lo que no me enseñaron sobre la correlacion</title><content type='html'>&lt;div&gt;&lt;!--StartFragment--&gt;  &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Ante todo, buenas tarde&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Hace un par de meses, Marianita me paso un paper sobre analisis de lenguaje natural, o algo por el estilo. &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Lo interesante (para mi) de ese paper es que utilizaban como medida de distancia de dos variables, el coseno del angulo que forman los vectores de sus realizaciones (normalizadas).&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Esto realmente no tenia demasiado sentido para mi. &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-top:0cm;margin-right:0cm;margin-bottom:0cm; margin-left:36.0pt;margin-bottom:.0001pt;text-indent:-36.0pt;mso-pagination: none;tab-stops:11.0pt 36.0pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;span style="mso-tab-count:1"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;1.&lt;/span&gt;&lt;span style="mso-tab-count:1"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Angulo entre vectores en espacios n-dimensionales?! Donde estaba el cateto opuesto y la hipotenusa (ok, podian ser las &lt;/span&gt;&lt;a href="http://mate.dm.uba.ar/~caniglia/apuntes/"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;soluciones a ecuaciones diferenciales&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;, pero no me simplificaba el panorama)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-top:0cm;margin-right:0cm;margin-bottom:0cm; margin-left:36.0pt;margin-bottom:.0001pt;text-indent:-36.0pt;mso-pagination: none;tab-stops:11.0pt 36.0pt;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;span style="mso-tab-count:1"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;2.&lt;/span&gt;&lt;span style="mso-tab-count:1"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Que era lo que media el coseno ahi?&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Bueno, el punto uno me costo un tiempo entenderlo (el dos mas), pero mas o menos la idea es asi:&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Suponga que queremos ver como en distintos documentos (n documentos) aparecen distintas palabras (m palabras). -si tuve que uzar un ejemplo concreto, por que me estaba haciendo un rollo con la abstraccion-&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Para cada palabra, tenemos un vector (en realidad, un punto) con las apariciones en los n documentos, es decir, tenemos un vector n-dimensional por cada palabra. Esto nos da m vectores n dimensionales.&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Ahora, queremos sacar el coseno entre dos palabras&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;mso-pagination: none;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Un vector, ademas de ser una n-upla (algo que tiene n elementos),  define un segmento (y una recta) que pasa por el 0 (si, claro, un vector... :) ) &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Entonces, nosotros teniamos dos vectores, es decir, que por ahi oculto, y bastante callado, habia otro punto inportante (que a priori, es el unico que tienen en comun todos los vectores), el 0.&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Agregando el 0, pasamos a tener 3 puntos! (de vuelta, de dimension n). Pero aca esta la magia, de la misma manera que en un espacio euclideo, dos puntos definen una recta, 3 puntos definen un plano! (si, obvio, pero…) &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Entonces, si vemos los vectores en el plano definido por los 3 puntos (las dos palabras mas el 0), vemos que, por construccion, los vectores estan en el mismo plano, y pasan en (por lo menos) un punto. Es decir, podemos calcular el coseno!!!&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Bueno, esto ahora tenia un poco mas de sentido, pero todabia tenia un par de cosas haciendome ruido en la cabeza.&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Por ejemplo, cual era el espacio original en el que estabamos trabajando? Era un espacio n-dimensional, haci que tenia que ser el espacio de las posibles realizaciones, donde cada uno de los puntos definia un conjunto complete de realizaciones para una variable (si estaba normalizado, no importaba para que variable).&lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;La existencia de este espacio me parece un poco rara, e interesane –voy a pensar mas al respecto &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Wingdings; "&gt;&lt;span style="mso-char-type:symbol;mso-symbol-font-family:Wingdings"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;J&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; -&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Ahora nos queda el Segundo punto, que es el significado de esta medida. &lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Si vemos la forma compacta -sin hacer explicita la formula del plano- de calcular el coseno para dos angulos (la copiaria, pero major vallan a &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/Correlation#Geometric_Interpretation_of_correlation"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;wikipedia&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;), nos vamos a dar cuenta que es la misma que la formula de la funcion de correlacion (para valores centrados)!!&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Una de las cosas a la que le da sentido esto, es que cuando tenemos variables independientes, los vectores son ortogonales, y el angulo es un angulo de 90º!!&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Esto esta buenisimo, por que todo lo que dije sobre la creacion del plano en el que aparecen los vectores es algo que hacemos implicitamente cuando calculamos la correlacion!&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Me da lastima que despues de tantos años de facultad, eso sea algo de lo que nunca he odio, pero me parece que puede ser interesante pensar un poco sobre eso.&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;(puf, post innecesariamente largo, como este fin de semana…)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;saludos&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-family: Georgia; "&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;/jb&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="ES-TRAD"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt; &lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;!--EndFragment--&gt;   &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1919596727860015236-6321645635574511220?l=cosas-jb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cosas-jb.blogspot.com/feeds/6321645635574511220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1919596727860015236&amp;postID=6321645635574511220' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/6321645635574511220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/6321645635574511220'/><link rel='alternate' type='text/html' href='http://cosas-jb.blogspot.com/2008/03/algo-de-lo-que-no-me-ensearon-sobre-la.html' title='(algo de ) Lo que no me enseñaron sobre la correlacion'/><author><name>jb</name><uri>http://www.blogger.com/profile/13709249214033017810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1919596727860015236.post-7489442503271309883</id><published>2008-03-13T18:40:00.000-07:00</published><updated>2008-03-13T18:41:09.642-07:00</updated><title type='text'>Accion farmacologica</title><content type='html'>"el pantopazol inhibe selectivamente la bomba de protones localizada en la membrana apical de las celulas parietales de la mucosa gastrica. Este bloqueo irreversible provoca una inhibicion mas pronunciada de la secrecion acida en comparacion con los antagonistas de los receptores histaminergicos H2.&lt;br /&gt;En el interior de la celula parietal el pantoprazol alcanza su forma activa, una sulfenamida ciclica cationica, que luego se une a los residuos de cisteina de la bomba protonica, inhibiendo asi la accion de la misma"&lt;br /&gt;y esto se puede conseguir en cualquier farmacia...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1919596727860015236-7489442503271309883?l=cosas-jb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cosas-jb.blogspot.com/feeds/7489442503271309883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1919596727860015236&amp;postID=7489442503271309883' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/7489442503271309883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/7489442503271309883'/><link rel='alternate' type='text/html' href='http://cosas-jb.blogspot.com/2008/03/accion-farmacologica.html' title='Accion farmacologica'/><author><name>jb</name><uri>http://www.blogger.com/profile/13709249214033017810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1919596727860015236.post-3383403362884662790</id><published>2008-02-09T14:05:00.000-08:00</published><updated>2008-02-09T14:22:08.398-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='finance'/><title type='text'>finance google no funciona tan bien</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;disclaimer: Este no es un post computronico&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Y eso me pone contento :)&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Le estaba mostrando a un amigo (juan pablo) finance.google.com, y el descubrio un pequeño bug.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Por curiosidad, quizimos ver como andaba tenaris ( &lt;/span&gt;&lt;a href="http://finance.google.com/finance?q=NYSE%3ATS"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;http://finance.google.com/finance?q=NYSE%3ATS&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; ), y al ver el Market Cap, me dijo: "che, eso no esta bien. el numero es &lt;/span&gt;&lt;span class="Apple-style-span"  style=" white-space: nowrap; font-family:Arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;111.56B, pero esta mal", de hecho, en &lt;/span&gt;&lt;a href="http://finance.yahoo.com/q?s=ts"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;http://finance.yahoo.com/q?s=ts&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;, el Market Cap era &lt;/span&gt;&lt;span class="Apple-style-span"  style=" line-height: 16px; white-space: normal; -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px; font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;22.31B, es decir, una pequeña diferencia de 89.25B, casi nada, digamos :)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" line-height: 16px; -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px; font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" line-height: 16px; -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px; font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;El me dijo que no estaban teniendo e cuena que tenaris era un &lt;/span&gt;&lt;a href="http://en.wikipedia.org/wiki/American_Depositary_Receipt"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;ADR&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;, pero no pude encontrar otro titulo donde el error sea tan grosero.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" line-height: 16px; -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px; font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" line-height: 16px; -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px; font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Realmente me alegra que a la gente de google no le salgan siempre tan perfecto las cosas (si, es envidia :) )&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial; line-height: 16px; -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial; line-height: 16px; -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px;"&gt;Por si no se entiende, donde dice B se lee Billions, que es mil millon dollars (mucha mucha plata)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  line-height: 16px; -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px;font-family:arial;font-size:12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1919596727860015236-3383403362884662790?l=cosas-jb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cosas-jb.blogspot.com/feeds/3383403362884662790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1919596727860015236&amp;postID=3383403362884662790' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/3383403362884662790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/3383403362884662790'/><link rel='alternate' type='text/html' href='http://cosas-jb.blogspot.com/2008/02/finance-google-no-funciona-tan-bien.html' title='finance google no funciona tan bien'/><author><name>jb</name><uri>http://www.blogger.com/profile/13709249214033017810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1919596727860015236.post-3594649087180997268</id><published>2008-01-30T09:40:00.000-08:00</published><updated>2008-01-30T09:43:22.827-08:00</updated><title type='text'>kmeans y c++ template metaprogramming</title><content type='html'>Estoy haciendo una implementacion de kmeans tratando de hacer la maxima cantidad de cosas posibles con templates metaprogramming, para transferir en el codigo el conocimiento que ya tengo en tiempo de compilacion.&lt;br /&gt;Me aparecio este petit problema (gracias g++, sos lindo... por suerte ya lo resolvi):&lt;br /&gt;iChing:~/.../code/kmeans jb$ make maing++     main.cpp   -o maini686-apple-darwin8-g++-4.0.1: Internal error: Illegal instruction(program cc1plus)Please submit a full bug report.See &lt;&lt;a href="http://developer.apple.com/bugreporter"&gt;URL:http://developer.apple.com/bugreporter&lt;/a&gt;&gt; for instructions.make: *** [main] Error 1&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1919596727860015236-3594649087180997268?l=cosas-jb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cosas-jb.blogspot.com/feeds/3594649087180997268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1919596727860015236&amp;postID=3594649087180997268' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/3594649087180997268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/3594649087180997268'/><link rel='alternate' type='text/html' href='http://cosas-jb.blogspot.com/2008/01/kmeans-y-c-template-metaprogramming.html' title='kmeans y c++ template metaprogramming'/><author><name>jb</name><uri>http://www.blogger.com/profile/13709249214033017810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1919596727860015236.post-3751034387008105668</id><published>2007-12-28T22:59:00.000-08:00</published><updated>2007-12-30T14:02:06.822-08:00</updated><title type='text'>Information Entropy y k-means</title><content type='html'>Hace un par de semanas me encontre con la medida de la &lt;a href="http://en.wikipedia.org/wiki/Information_entropy"&gt;entropia de Shannon&lt;/a&gt;. Es simplemente esta formula:&lt;div&gt;I = -∑p&lt;sub&gt;i&lt;/sub&gt;*ln&lt;sub&gt;2&lt;/sub&gt;(p&lt;sub&gt;i&lt;/sub&gt;) donde p&lt;sub&gt;i&lt;/sub&gt; = N&lt;sub&gt;i&lt;/sub&gt; / N&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;N es la cantidad de elementos en todo el conjunto, y N&lt;sub&gt;i&lt;/sub&gt; es la cantidad de elementos en cada uno de los k i-subconjuntos&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Parece una formula simple, pero en realidad, simplemente mirandola, no podia entender su significado.&lt;/div&gt;&lt;div&gt;En principio parece una esperanza, en particular, la -E(ln&lt;sub&gt;2&lt;/sub&gt;p&lt;sub&gt;i&lt;/sub&gt;), esto seria algo asi como la cantidad de bits necesarios para representar, en promedio, los elementos existentes en cada uno de los i grupos.&lt;/div&gt;&lt;div&gt;Pero seguia sin decirme demasiado, asi que gracias a la ayuda de Manuk, empezamos a destripar esta formula.&lt;/div&gt;&lt;div&gt;Partimos de:&lt;/div&gt;&lt;div&gt;I = -∑p&lt;sub&gt;i&lt;/sub&gt;*ln&lt;sub&gt;2&lt;/sub&gt;(p&lt;sub&gt;i&lt;/sub&gt;) &lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;= -∑p&lt;sub&gt;i&lt;/sub&gt;*ln&lt;sub&gt;2&lt;/sub&gt;(N&lt;sub&gt;i&lt;/sub&gt;/N)&lt;/div&gt;&lt;div&gt;= -∑p&lt;sub&gt;i&lt;/sub&gt;*[ln&lt;sub&gt;2&lt;/sub&gt;(N&lt;sub&gt;i&lt;/sub&gt;) - ln&lt;sub&gt;2&lt;/sub&gt;(N)]&lt;br /&gt;&lt;/div&gt;&lt;div&gt;= ∑p&lt;sub&gt;i&lt;/sub&gt;ln&lt;sub&gt;2&lt;/sub&gt;(N) - ∑p&lt;sub&gt;i&lt;/sub&gt;ln&lt;sub&gt;2&lt;/sub&gt;(N&lt;sub&gt;i&lt;/sub&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;como ln&lt;sub&gt;2&lt;/sub&gt;(N) no depende de i, es una constante, y puede ser extraido de la suma.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;= ln&lt;sub&gt;2&lt;/sub&gt;(N)*∑p&lt;sub&gt;i&lt;/sub&gt; - ∑p&lt;sub&gt;i&lt;/sub&gt;*ln&lt;sub&gt;2&lt;/sub&gt;(N&lt;sub&gt;i&lt;/sub&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;como ∑p&lt;sub&gt;i&lt;/sub&gt; = 1, y el segundo termino es una esperanza, nos queda:&lt;/div&gt;&lt;div&gt;=ln&lt;sub&gt;2&lt;/sub&gt;(N) - E(ln&lt;sub&gt;2&lt;/sub&gt;(N&lt;sub&gt;i&lt;/sub&gt;))&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;El primer termino es constante, siemre que se mantengan constantes las cantidades de elementos del conjunto, entonces, si queremos maximizar o minimizar la entropia, tenemos que modificar el segundo termino (la distribucion de los elementos dentro de los conjuntos).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;De hecho, la entropia va a ser maxima cuando cada conjunto tenga exactamente la misma cantidad de elementos. Es decir, cuando los N elementos esten distribuidos entre los k conjuntos. &lt;/div&gt;&lt;div&gt;Cuando eso ocurra vamos a tener que N&lt;sub&gt;i&lt;/sub&gt; = N / k&lt;/div&gt;&lt;div&gt;Entonces,&lt;/div&gt;&lt;div&gt;I = ln&lt;sub&gt;2&lt;/sub&gt;(N) - ∑N/k*ln&lt;sub&gt;2&lt;/sub&gt;(N / k))&lt;/div&gt;&lt;div&gt;= ln&lt;sub&gt;2&lt;/sub&gt;(N) - ∑N/k*[ln&lt;sub&gt;2&lt;/sub&gt;(N) - ln&lt;sub&gt;2&lt;/sub&gt; (k))]&lt;/div&gt;&lt;div&gt;= ln&lt;sub&gt;2&lt;/sub&gt;(N) - [ln&lt;sub&gt;2&lt;/sub&gt;(N) - ln&lt;sub&gt;2&lt;/sub&gt; (k))]&lt;br /&gt;&lt;/div&gt;&lt;div&gt;= ln&lt;sub&gt;2&lt;/sub&gt;(N) - ln&lt;sub&gt;2&lt;/sub&gt;(N) + ln&lt;sub&gt;2&lt;/sub&gt; (k))&lt;br /&gt;&lt;/div&gt;&lt;div&gt;=ln&lt;sub&gt;2&lt;/sub&gt;(k)&lt;/div&gt;&lt;div&gt;es decir, a la cantidad de bits necesarios para representar a todos los conjuntos&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Todo esto con respecto a la entropia, ahora vayamos a k-means.&lt;/div&gt;&lt;div&gt;&lt;a href="http://en.wikipedia.org/wiki/Kmeans"&gt;k-means&lt;/a&gt; , es un algoritmo para agrupar un conjunto de datos en k subconjuntos, minimizando alguna distancia (en general, la distancia euclidea).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;la funcion a minimizar es la siguiente&lt;/div&gt;&lt;div&gt;V = ∑&lt;sub&gt;i&lt;/sub&gt;∑&lt;sub&gt;j&lt;/sub&gt;dist(x&lt;sub&gt;ij&lt;/sub&gt;;c&lt;sub&gt;i&lt;/sub&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;donde c&lt;sub&gt;i&lt;/sub&gt; es el centro del subconjunto.&lt;/div&gt;&lt;div&gt;Si utilizamos el error cuadratico medio, lo que vamos a estar minimizando es esperanza de la varianza intragrupos (es decir, dentro de los grupos)&lt;/div&gt;&lt;div&gt;Esto de encontrar grupos que tengan algun sentido (minimizen alguna distancia), parecia que tenia bastante que ver con la teoria de la informacion, asi que empezamos a pensar un poco al respecto (aca vortex y tenuki me ayudaron un poco).&lt;/div&gt;&lt;div&gt;Como la funcion distancia, puede ser cualquier funcion distancia, que cumpla con las condiciones de una funcion distancia, utilize la distancia discreta multiplicada por ln(N&lt;sub&gt;i&lt;/sub&gt;)&lt;/div&gt;&lt;div&gt;dist(x&lt;sub&gt;ij&lt;/sub&gt;;c&lt;sub&gt;i&lt;/sub&gt;) = 0 sii x&lt;sub&gt;ij&lt;/sub&gt; = c&lt;sub&gt;i&lt;/sub&gt;&lt;/div&gt;&lt;div&gt;dist(x&lt;sub&gt;ij&lt;/sub&gt;;c&lt;sub&gt;i&lt;/sub&gt;) = ln&lt;sub&gt;2&lt;/sub&gt;(N&lt;sub&gt;i&lt;/sub&gt;) sii x&lt;sub&gt;ij&lt;/sub&gt; != c&lt;sub&gt;i&lt;/sub&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;como ninguno de los N&lt;sub&gt;i&lt;/sub&gt; elementos es c&lt;sub&gt;i&lt;/sub&gt;,  (si alguno fuese, multiplicamos y dividimos la distancia por algun valor, y el problema se resuelve), entonces,&lt;/div&gt;&lt;div&gt;∑dist(x&lt;sub&gt;ij&lt;/sub&gt;;c&lt;sub&gt;i&lt;/sub&gt;) = N&lt;sub&gt;i&lt;/sub&gt;*ln(N&lt;sub&gt;i&lt;/sub&gt;)&lt;/div&gt;&lt;div&gt;reemplazando en V, tenemos&lt;/div&gt;&lt;div&gt;V = ∑&lt;sub&gt;i&lt;/sub&gt;N&lt;sub&gt;i&lt;/sub&gt;*ln(N&lt;sub&gt;i&lt;/sub&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;dividiendo m. a m. por N, tenemos&lt;/div&gt;&lt;div&gt;V / N =∑&lt;sub&gt;i&lt;/sub&gt;N&lt;sub&gt;i&lt;/sub&gt;*ln(N&lt;sub&gt;i&lt;/sub&gt;)/N&lt;/div&gt;&lt;div&gt;como N&lt;sub&gt;i&lt;/sub&gt; = p&lt;sub&gt;i&lt;/sub&gt;, entonces&lt;/div&gt;&lt;div&gt;V / N =∑&lt;sub&gt;i&lt;/sub&gt;p&lt;sub&gt;i&lt;/sub&gt;*ln(N&lt;sub&gt;i&lt;/sub&gt;)&lt;/div&gt;&lt;div&gt;V / N = E(ln(N&lt;sub&gt;i&lt;/sub&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Que es el segundo termino de la medida de la entropia.&lt;/div&gt;&lt;div&gt;Por lo tanto, en el espacio metrico definido por esta funcion distancia, es equivalente minimizar la distancia, a maximizar la informacion (No hay que olvidarse que en la formula de la informacion, el segundo termino aparece restando). Y es ahi donde las dos cosas tienen algo que ver.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Pero sin embargo, este resultado no me dejo completamente contento.&lt;/div&gt;&lt;div&gt;Por un lado, no refleja lo que yo queria (que era mostrar la cantidad de informacion que se concentra en los c&lt;sub&gt;i&lt;/sub&gt;; de hecho, estos ni siquiera se utilizan).&lt;/div&gt;&lt;div&gt;Ademas, quise utilizar otra funcion de distancia, como por ejemplo, la distancia de Hamming, pero no pude obtener el resultado que queria.&lt;/div&gt;&lt;div&gt;Espero que a alguien que lea este post se el ocurra alguna funcion distancia mas entretenida&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos&lt;/div&gt;&lt;div&gt;/jb&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ps: Tambien tengo que agradecer a tomas, que desde el mas alla (mas alla del meridiano de greenwich), siempre me da una mano con estas cosas&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1919596727860015236-3751034387008105668?l=cosas-jb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cosas-jb.blogspot.com/feeds/3751034387008105668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1919596727860015236&amp;postID=3751034387008105668' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/3751034387008105668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/3751034387008105668'/><link rel='alternate' type='text/html' href='http://cosas-jb.blogspot.com/2007/12/information-entropy-y-k-means.html' title='Information Entropy y k-means'/><author><name>jb</name><uri>http://www.blogger.com/profile/13709249214033017810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1919596727860015236.post-607792675006448647</id><published>2007-12-13T10:00:00.000-08:00</published><updated>2007-12-13T11:07:23.339-08:00</updated><title type='text'>Acoplamiento y No Convexidad</title><content type='html'>&lt;div&gt;Disclaimer:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Este articulo tenia ganas de escribirlo hace un tiempo, pero habia un par de cosas que no me cerraban del todo, y queria esperar a que tenga el concepto cerradito y monono. Eso no paso, pero lo que si paso fue que me canse.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Este es un articulo computronico&lt;/li&gt;&lt;/ul&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Lo que queria hacer era relacionar funciones, metodos, clases,  y namespaces con conjuntos.&lt;/div&gt;&lt;div&gt;Supongamos que tenemos una clase que sea una estacion climatica. Esta estacion climatica tiene sensores, como por ejemplo, termometros. &lt;/div&gt;&lt;div&gt;Nosotros somos consumidores exernos de informacion, y solamente nos interesa lo&lt;/div&gt;&lt;div&gt; que la estacion climatica nos puede ofrecer.&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt; &lt;/div&gt;&lt;div style="text-align: center;"&gt; &lt;/div&gt;&lt;div style="text-align: left;"&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_z22inue_W-M/R2F66q5ibVI/AAAAAAAAACE/jBFPmUqdBsM/s1600-h/Convexidad.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); text-decoration: underline;"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_z22inue_W-M/R2F66q5ibVI/AAAAAAAAACE/jBFPmUqdBsM/s400/Convexidad.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5143527397800439122" /&gt;&lt;/span&gt;La imagen anterior vendria a ser una representacion de nuestro mundo.&lt;/div&gt;&lt;div style="text-align: left;"&gt;A travez de los metodos, se producen relaciones entre los objetos.&lt;/div&gt;&lt;div style="text-align: left;"&gt;Por ejemplo, si el consumidor externo quiere saber la temperatura, le pregunta a la estacion climatica la temperatura, se produce una relacion entre el consumidor y la estacion climatica.&lt;/div&gt;&lt;div style="text-align: left;"&gt;Como la clase que define el consumidor tiene como variable de instancia una estacion climatica, la relacion ya esta establecida en la propia clase, por lo tanto, la relacion que genera el metodo es una relacion que va de la clase a la clase. &lt;/div&gt;&lt;div style="text-align: left;"&gt;A pesar de que por claridad yo dibuje las flechitas como saliendo de las clases, cuando estos nos encontramos con estos metodos, en realidad lo que ocurre es que todas las relaciones se producen dentro del conjunto que define la clase. Lo que se parece bastante al concepto de convexidad.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Por otro lado, puede ocurrir que el consumidor externo, en vez de preguntarle a la estacion climatica la temperatura, le pida su sensor de temperatura, y a la vez a este le pida la temperatura actual.&lt;/div&gt;&lt;div style="text-align: left;"&gt;Esto es lo que vemos en este grafico:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_z22inue_W-M/R2F-kq5ibYI/AAAAAAAAACc/v6twANtaUyY/s400/Convexidad2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5143531417889828226" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;En este caso, la relacion que generaria el metodo para obtener la informacion de la temperatura, iria mas alla de lo que define el conjunto de la clase consumidor externo (aunque volveria al consumidor externo, "salio por un rato" para buscar la temperatura).&lt;/div&gt;&lt;div style="text-align: left;"&gt;Si trazacemos las flechas que define las relaciones producidas por este metodo, veriamos que pasa por la clase "sensor de temperatura", el cual no es conocido por el consumidor externo.&lt;/div&gt;&lt;div style="text-align: left;"&gt;En este caso, las relaciones son relaciones no convexas, y por otro lado, este es un buen ejemplo de alto acoplamiento entre clases.&lt;/div&gt;&lt;div style="text-align: left;"&gt;En que sentido esto no esta piola? &lt;/div&gt;&lt;div style="text-align: left;"&gt;Bueno, si por ejemplo cambiamos el sensor de temperatura por uno construido en el imperio, con las temperaturas medidas en grados farengein, en vez de en grados celcios, tendriamos un gran problema, ya que el consumidor externo no sabria nada sobre eso (problema que seguro estaria resuelto por la estacion climatica).&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Por otro lado, hay algo interesante. A pesar de que estas tres clase estan acopladas entre si, las relaciones que producen sus metodos se mantienen dentro del conjunto definido por esas tres clases.&lt;/div&gt;&lt;div style="text-align: left;"&gt;Si quisieramos definir un namespace que englobe esas tres clases, podriamos hacerlo, y tendriamos las caracteristicas de convexidad para ese namespace. &lt;/div&gt;&lt;div style="text-align: left;"&gt;Por lo que estariamos encapsulando este micromundo en ese namespace. Y maravillosamente, el minimo conjunto convexo que contiene a una serie de puntos se llama capsula convexa (o clausura convexa), por lo que el nombre de encapsulamiento parece tener aun mas sentido :)&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Bueno, espero que a alguien le guste este post, a mi realmente no me gusta, pero ya no queria pensar mas en esto, y esta es la mejor manera de sacar un tema de la cabeza :)&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;saludos&lt;/div&gt;&lt;div style="text-align: left;"&gt;/jb &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1919596727860015236-607792675006448647?l=cosas-jb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cosas-jb.blogspot.com/feeds/607792675006448647/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1919596727860015236&amp;postID=607792675006448647' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/607792675006448647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/607792675006448647'/><link rel='alternate' type='text/html' href='http://cosas-jb.blogspot.com/2007/12/acoplamiento-y-no-convexidad.html' title='Acoplamiento y No Convexidad'/><author><name>jb</name><uri>http://www.blogger.com/profile/13709249214033017810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_z22inue_W-M/R2F66q5ibVI/AAAAAAAAACE/jBFPmUqdBsM/s72-c/Convexidad.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1919596727860015236.post-3311440940809336077</id><published>2007-10-29T13:48:00.000-07:00</published><updated>2007-10-29T14:24:43.970-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delirium tremens'/><title type='text'>Feedback Positivo y crisis financieras</title><content type='html'>Ultimamente estuve pensando bastante sobre retroalimentacion positiva y negativa. Los sistemas con retroalimentacion negativa (autoregulados), son particularmente interesantes, y por el otro lado los sistemas con retroalimentacion positiva son los que se ven generalmente en los modelos caoticos y con soluciones fuera del equilibrio. (se van se van se van...)&lt;br /&gt;&lt;br /&gt;Con respecto a los modelos financerios, estuve pensando un poco en esto:&lt;br /&gt;Muchos operadores financieros utilizan modelos que suponen eficiencia de los mercardos, para la toma de deciciones.&lt;br /&gt;Supongamos que el mercado es levemente no eficiente, es decir, algunas de las condiciones de eficiencia no se esta cumpliendo (esto es mas facil que suponer que el mercado es eficiente ;) ).&lt;br /&gt;Entonces, los modelos, aplicados sobre este tipo de mercados, van a ser una aproximacion (quizas muy buena, es verdad), pero solo una aproximacion a la realidad.&lt;br /&gt;Como estos modelos son una aproximacion, pueden producir una solucion que no sea la optima. Esto implicaria que haya agentes que esten tomando deciciones suboptimas, y creando ineficiencias en el mercado. &lt;br /&gt;Ahora, estas ineficiencias, se agregan a las que ya existian, generando un sistema aun mas ineficiente, y la solucion de los modelos seria aun mas equivocada, y el sistema se retroalimentaria, divergiendo completamente, hasta llegar a una crisis, u otra solucion de equilibrio (Hysteresis). En esta crisis, los modelos se re ajustan, y tomo comienza de cero...&lt;br /&gt;Ahora, a pregunta es, por que no es que todo el tiempo no estamos llendo vertiginosamente hacia una crisis?&lt;br /&gt;Bueno, creo que parte de las respuestas bienen por varios lados:&lt;br /&gt;a) Puede ser que las ineficiencias del mercado produscan deciciones equivocadas en los modelos, pero la direccion del error puede ser contraria a los errores anteriores, y neutralizar el efecto divergente&lt;br /&gt;b) Animal spirits: Hay agentes que "no utilizan modelos", salvo el de "obtener el mayor resultado". Al no hacer "asumpciones formals" sobre el comportamiento del mercado, aprobechan las deciciones suboptimas de los agentes mas "racionales", y neutralizan esas deciciones&lt;br /&gt;c) Distintos modelos internos producen respuestas contrarias, donde las fuerzas de esas respuestas se neutralizan, y se mantiene un equilibro.&lt;br /&gt;&lt;br /&gt;Bueno, ahora, con la existencia de a, b, y c, pasamos de un modelo de crisis permanente, a un modelo de no crisis (que tampoco es cierto). La pregunta es, por que la realidad es algo intermedia?&lt;br /&gt;Bueno, creo que a, b, y c explican un poco el modelo gaussiano-browniano.&lt;br /&gt;El modelo gaussiano, supone, que si hay una cantidad suficientemente grande de errores, todos independientes, y con la misma distribucion (y si, variancia finita), vamos a estar en presencia de una variable distribuida Normalmente (de aca surgen los teoremas centrales en el limite)&lt;br /&gt;El modelo browniano tiene como finalidad, representar el movimiento de una particula que es afectada por la interecaccion sobre esta particula, de una cantidad suficientemente grande (si es infinita, mejor), de particulas aleatorias (tambien, independientes, identicamente distribuidas). El ejemplo tipico, es una pelota, y un monton de focas pegandole a la pelota.. :P (bueno, si, no era el tipico).&lt;br /&gt;Este modelo, parece que cierra bastante con la idea del mercado, donde hay miles de agentes empujando cada uno para un lado particular, y donde cada uno de estos agentes son "independientes", pero (y aca hay un gran pero).&lt;br /&gt;Como vimos, la divergencia producida por los errores de los modelos estan neutralizadas, salvo que aparesca la sincronizacion. Cuando la masa de agentes se sincronizan (por ejemplo, por que todos usan modelos que ante un estimulo en particular, responden en la misma direccion -y ademas, es una decicion suboptima-), la fuerza que pueden hacer el resto de los agentes no llega a neutralizarla, y permite que el sistema salga del equilibrio. Una vez fuera del equilibrio, mas modelos van a ser parte de la sincronizacion (ya no necesitan el estimulo comun, ya que van a responder de forma erronea por la situacion de no equilibrio del mercado). Esto produce el famoso efecto bola de nieve (que lindo ejemplo de retroalimentacion positiva), desencadenando una crisis. Lo interesante, es que por esta sincronizacion, se rompe la idea de modelo browniano, y de normalidad. Ya que ocurren eventos que tendrian una probabilidad de ocurrencia casi nula segun esos supuestos. Es por eso que se utilizan los modelos de colas pesadas (donde los eventos raros, en realidad no son tan raros como parecen)&lt;br /&gt;&lt;br /&gt;Bueno, creo que este post me termina de cerrar un par de cavos sueltos&lt;br /&gt;pongo un par de links para expandir el post (si, me dio paja poner href):&lt;br /&gt;http://en.wikipedia.org/wiki/Positive_feedback&lt;br /&gt;http://en.wikipedia.org/wiki/Negative_feedback&lt;br /&gt;http://en.wikipedia.org/wiki/Brownian_motion&lt;br /&gt;http://en.wikipedia.org/wiki/Carl_Friedrich_Gauss (que grande este tipo :) )&lt;br /&gt;http://en.wikipedia.org/wiki/Synchronization_of_chaos&lt;br /&gt;&lt;br /&gt;saludos&lt;br /&gt;/jb&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1919596727860015236-3311440940809336077?l=cosas-jb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cosas-jb.blogspot.com/feeds/3311440940809336077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1919596727860015236&amp;postID=3311440940809336077' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/3311440940809336077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/3311440940809336077'/><link rel='alternate' type='text/html' href='http://cosas-jb.blogspot.com/2007/10/feedback-positivo-y-crisis-financieras.html' title='Feedback Positivo y crisis financieras'/><author><name>jb</name><uri>http://www.blogger.com/profile/13709249214033017810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1919596727860015236.post-6324631611692075081</id><published>2007-10-14T13:03:00.000-07:00</published><updated>2007-10-14T14:02:50.062-07:00</updated><title type='text'>Jerarquias (Object Based)</title><content type='html'>&lt;h2&gt;Disclaimer:&lt;/h2&gt; Este post es (particularmente) computronico, si quieren no lo lean :)&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Historia previa:&lt;/h2&gt; El otro dia (asi empiezan todas las historias), con mat y despues con tenuki estabamos pensando sobre el concepto de classe en la programacion basada en objetos. No se si ellos estaban de acuerdo con lo que voy a escribir, pero ayudaron mucho a que estas cosas se organizen asi en mi cabeza :P.&lt;br /&gt;&lt;h2&gt;Idea:&lt;/h2&gt;&lt;br /&gt;Basicamente, pensamos que existen dos tipos distintos de penzar el concepto de clase cuando se programa pensando en objetos. &lt;br /&gt;La primer forma de penzar las clases (y la jerarquia de clases) es desde un punto de vista conceptual. Una clase representa un concepto, y sus subclases representan particularidades de este concepto (la idea de especie y subespecies). Este es un approach Top-Down, ya que primero hacemos el circulo grande donde definimos a la clase, y adentro de este circulo grande hacemos los circulos pequeños que definen a las subespecies. El consumidor de este concepto es un consumidor externo al objeto que es de la clase (o subclase). &lt;br /&gt;Ejemplo: a un mamifero le podemos preguntar la cantidad de tetas que tiene. Eso lo podemos hacer, por que independientemente del mamifero que sea, el concepto de mamifero implica tener tetas.&lt;br /&gt;Como el consumidor es externo, y el concepto es un concepto que se presenta al mundo, tiene sentido que los metodos (los mensajes) de las instancias de esta clase sean publicos, ya que esperamos que desde afuera se utilize este objeto a travez de la representacion conceptual que esta jerarquia esta ofreciendo. Mas aun, desde este punto de vista, tiene todo el sentido del mundo el concepto de classes abstractas (pure concept), y estas clases definen una interface para ofrecer al mundo, pero los elementos que estan en niveles mas particulares (inferiores ?) de la jerarquia tienen que definir como es el comportamiento puntual. Volviendo al ejemplo, sabemos que los mamiferos tienen tetas, pero dependiendo de cada especie la cantidad de tetas que (mas o menos) tienen.&lt;br /&gt;Una de las principales ventajas que tiene esta forma de pensar las clases es la facilidad del uso, yo no necesito saber de que subespecie es tal objeto en particular, ya que puedo utilizar los conceptos que me brinda la especie. Ademas, permite programar comportamiento utilizando metaforas, que es una forma comoda para nuestro cerebro de manejar unos y ceros de forma compleja.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Por otro lado, existe otra forma de pensar el concepto de clases, que es desde un punto de vista mas matematico o funcional. Tenemos un par de objetos (que corresponden a clases distintas), y podemos pensar que puede existir alguna relacion entre estas clases cuando comparten algun tipo de comportamiento. Entonces vamos a agrupar a estas clases en una clase que va a ser "comparten tal comportamiento". Aca el approach es Bottom-Up, ya que primero tenemos los circulitos chiquitos con las clases particulares, y despues armamos un circulo mas grande en donde las agrupamos gracias a este comportamiento compartido. Los usuarios de esta jerarquia son las mismas subclasses, cuando se pretende reusar comportamiento, y agruparlo en un mismo lugar. Me parece que desde este punto de vista, tiene todo el sentido del mundo la existencia de mensajes o herencia "protected", ya que esta jerarquia no ayuda a trabajar con las clases a los consumidores externos, pero permite la reutilizacion de codigo.&lt;br /&gt;Para que este tipo de jerarquia funcione bien, creo que los metodos que se comparten deberian ser metodos donde existe pure behaviour, que esta mas relacionado con el paradigma funcional que con el de Basado en Objetos.&lt;br /&gt;Una de las desventajas de esta forma de ver las clases (me parece), es poder identificar una forma univoca de crear las superclases (un nombre), pero quizas si se pienza como el comportamiento compartido, y no como un concepto compartido, sea mas facil de encontrarlo (al nombre).&lt;br /&gt;&lt;br /&gt;Hace un tiempo tenuki me paso un paper sobre la implementacion de traits en smalltalk, y encontre este link: &lt;a href:http://www.iam.unibe.ch/~scg/Research/Traits/&gt;http://www.iam.unibe.ch/~scg/Research/Traits/ &lt;/a&gt; Creo que esto tiene mucho que ver con la segunda forma de ver a las clases.&lt;br /&gt;En particular, creo que la implementacion de traits en smalltalk, puede producir un cambio en la dimension del paradigma. Si pensamos a los paradigmas como un especio, smalltalk esta claramente sobre la recta de Object Based. El poder generar una jerarquia de clases en base a comportamiento compartido desplaza un poco el lenguaje sobre el espacio Object Based-funncional.&lt;br /&gt;Bueno, espero opiniones, por que esto me interesa :) (y ademas espero que no haya sido un lio)&lt;br /&gt;&lt;br /&gt;saludos&lt;br /&gt;/jb&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1919596727860015236-6324631611692075081?l=cosas-jb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cosas-jb.blogspot.com/feeds/6324631611692075081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1919596727860015236&amp;postID=6324631611692075081' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/6324631611692075081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/6324631611692075081'/><link rel='alternate' type='text/html' href='http://cosas-jb.blogspot.com/2007/10/jerarquias-object-based.html' title='Jerarquias (Object Based)'/><author><name>jb</name><uri>http://www.blogger.com/profile/13709249214033017810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1919596727860015236.post-2735345791228919188</id><published>2007-08-10T21:59:00.000-07:00</published><updated>2007-08-11T08:32:29.596-07:00</updated><title type='text'>Calculando RSA con una regla</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_z22inue_W-M/Rr3Vi4BISYI/AAAAAAAAABk/dWcusLWIN1w/s1600-h/4+*+5.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_z22inue_W-M/Rr3Vi4BISYI/AAAAAAAAABk/dWcusLWIN1w/s400/4+*+5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5097465148382660994" /&gt;4 * 5&lt;/a&gt;&lt;br /&gt;Esta historia se me puede hacer un poco larga...&lt;br /&gt;Hace un tiempo, &lt;a href="http://endlestruction.com.ar/~aweil/"&gt;tenuki&lt;/a&gt;, me conto que se podia multiplicar usando rectas.&lt;br /&gt;El asunto es asi (hice dibujitos): &lt;br /&gt;Supongamos que quiero multiplicar 4 * 5 (señorita señorita, esa la se!). Lo primero que tenemos que hacer es trazar un segmento de tamaño 5, que empieza en el punto 1@0, y llega hasta el punto 1@5 (segmento azul). Despues trazamos una recta, que pasa por el punto 0@0, y por el punto 1@5 (recta roja). Finalmente, a baño maria, hacemos un segmento de tamaño 4, sobre el eje de las x, y que salga del punto 0@0 (segmento verde). Cuando unimos el segmento verde con la recta roja (a travez del segmento amarillo), encontramos dos puntos. El que esta sobre la recta roja (4@20) nos da en su coordenada y el valor que estabamos buscando (y si.. 20).&lt;br /&gt;El metodo parece piola, y la explicacion es simple. Cuando trazamos la recta roja, en realidad, estamos trazando una recta que tiene como ecuacion y = 5 * x. Luego hacemos el segmento verde, y nos encontramos con que x = 4. Entonces y = 5 * 4 = 20. Lo mismo que queriamos, pero expresado obtenido de una manera distinta.&lt;br /&gt;La pregunta seria que tiene esto que ver con &lt;a href="http://en.wikipedia.org/wiki/Rsa"&gt;RSA&lt;/a&gt;. Para eso necesitamos poder elevar un numero a una potencia (elevar es multiplicar un numero por si mismo n veces).&lt;br /&gt;Eso tambien lo podemos hacer con regla, y para eso usamos &lt;a href="http://theory2.phys.cwru.edu/~pete/java_chaos/CyclesApplet.html"&gt;mapas iterativos&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_z22inue_W-M/Rr3VjIBISZI/AAAAAAAAABs/G3y6XoX2fYc/s1600-h/3+raisedTo+5.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_z22inue_W-M/Rr3VjIBISZI/AAAAAAAAABs/G3y6XoX2fYc/s400/3+raisedTo+5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5097465152677628306" /&gt;3 ^ 5&lt;/a&gt;&lt;br /&gt;Receta para calcular 3 ^ 5 (4 porciones):&lt;br /&gt;Primero le cambiamos el nombre a los ejes, el eje X ahora se llama x(t) y el eje Y ahora se llama x(t+1). Despues trazamos dos rectas que salen desde el origen 0@0. La primer recta es una recta de 45 grados (recta verde). La segunda recta (recta roja) es una recta de pendiente 3 (si estubiesemos elevando 17 ^ n, la recta seria de pendiente 17). &lt;br /&gt;Partiendo del punto 1@1 (que esta en la recta verde), trazamos una recta paralela al eje x(t+1), hasta encontrar a la recta roja (esto va a ocurrir en el punto 1@3). Maravillosamente encontramos el valor de 3 ^ 1. Luego trazamos una recta horizontal hasta volver a encontrar la recta verde, y subimos hasta la recta roja, ahora el punto va a ser el 3@9 (jua, 3 ^ 2 !!). Si hacemos esto 3 veces mas, nos vamos a encontrar con el punto 81@243 (y 243 es 3^5 !!). Esto significa que aprendimos a potenciar con regla!&lt;br /&gt;Yo me pregunte por que esto funcionaba... Bueno, parte de la respuesta es que cuando trazabamos la recta de pendiente 3, podiamos escribir esta ecuacion en diferencias:&lt;br /&gt;x(t+1) = 3 * x(t) que es la ecuacion de la recta roja.&lt;br /&gt;La solucion a esta &lt;a href="http://en.wikipedia.org/wiki/Difference_equation"&gt;ecuacion en diferencias&lt;/a&gt; es: x(t) = C(3^t) donde C es alguna constante que depende del punto inicial (en nuestro caso, y para el bien de todos nosotros, es 1).&lt;br /&gt;Asi que esto funcionaba :)&lt;br /&gt;Ahora nada mas nos falta solucionar un problema: &lt;a href="http://en.wikipedia.org/wiki/Modulo_operation"&gt;el modulo&lt;/a&gt;&lt;br /&gt;El ejemplo anterior lo vamos a cambiar un poco, vamos a calcular 3 ^ 6 % 251 (esto se lee: 3 a la sexta modulo 251). Al grafico anterior, trazamos una recta horizontal para x(t+1) = 251.&lt;br /&gt;Ahora, cuando elevamos un numero, seguimos los mismos paso que antes, pero si, cuando estamos trazando la recta vertical, encontramos la recta azul en vez de la roja, cambiamos un poco el asunto. En ese caso, trazamos una recta paralela a la recta roja, y que pase por este punto (por el punto donde nos encontramos con la recta azul). Seguimos esta nueva recta hasta que x(t+1) = 0 (es decir, hasta el eje x(t)), y volvemos a seguir los pasos anteriores (con la precaucion de que podemos volver a encontrarnos la recta azul). &lt;br /&gt;Asi vemos como en el ejemplo (3 ^ 6 % 251), nos encontramos dos veces con la recta azul antes de encontrar a la recta roja en el punto que estavamos buscando (227/3@227) donde 227 es el resultado que buscabamos.&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_z22inue_W-M/Rr3VjoBISaI/AAAAAAAAAB0/8wHtS5kAZVQ/s1600-h/3+%5E+6+%25+251.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_z22inue_W-M/Rr3VjoBISaI/AAAAAAAAAB0/8wHtS5kAZVQ/s400/3+%5E+6+%25+251.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5097465161267562914" /&gt;3^6 % 251&lt;/a&gt;&lt;br /&gt;Finalmente me queda pendiente algo interesante para pensar, que es la existencia de atractores. Un atractor en este caso seria algun conjunto de dibujos que sean iguales. Lo interesante es que una vez que se toca un punto de la recta roja mas de una vez, sabemos que estamos en presencia de un atractor, es decir, vamos a estar un dibujo que ya habiamos hecho. Hay un &lt;a href="http://en.wikipedia.org/wiki/Fermat%27s_little_theorem"&gt;pequeño teorema&lt;/a&gt; que garantiza la presencia de atractores, si se cumplen algunas situaciones, pero el numero al que tenemos que elevar es un numero muy alto. Seria piola achicar ese numero.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1919596727860015236-2735345791228919188?l=cosas-jb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cosas-jb.blogspot.com/feeds/2735345791228919188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1919596727860015236&amp;postID=2735345791228919188' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/2735345791228919188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/2735345791228919188'/><link rel='alternate' type='text/html' href='http://cosas-jb.blogspot.com/2007/08/calculando-rsa-con-una-regla.html' title='Calculando RSA con una regla'/><author><name>jb</name><uri>http://www.blogger.com/profile/13709249214033017810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_z22inue_W-M/Rr3Vi4BISYI/AAAAAAAAABk/dWcusLWIN1w/s72-c/4+*+5.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1919596727860015236.post-7216308308257488296</id><published>2007-08-04T09:48:00.000-07:00</published><updated>2007-08-04T11:25:23.836-07:00</updated><title type='text'>Mas on Random (no-tan) Walk</title><content type='html'>Siguiendo con el processo del articulo pasado, un amigo, felipe, me sugirio que trate de probar el mismo proceso, variando los parametros, pero usando siempre los mismos numeros aleatorios. La idea de la prueba esta  es: Si con un  parametro igual a 2, en un determinado momento t habia un movimiento hacia arriba, con parametro igual a 3, en el mismo momento, tendria que existir el mismo movimiento (en la misma direccion), pero con el cambio propio que le da el processo.&lt;br /&gt;El cambio fue simple (que grande &lt;a href:"http://en.wikipedia.org/wiki/Squeak"&gt;squeak&lt;/a&gt;), y en el momento del cambio, me di cuenta de algo interesante. Yo estaba usando variables aleatorias con distribuccion &lt;a "href:http://en.wikipedia.org/wiki/Normal_distribution"&gt;Normal&lt;/a&gt;, y lo unico que hacia era cambiar el desvio de las variables x(t) dependiendo de la variable y(t-1). Aca hay que recordar que si queremos cambiar el desvio podemos hacer lo siguiente: x(t) =  sigma * N(0;1) (lo contrario seria normalizar la variable N(0;1) = x(t) / sigma).  Bueno, entonces para hacer el cambio, lo unico que tenia que hacer era generar n variables N(0;1), y despues, para cada uno de los parametros, aplicaba el sigma. Mmmm, creo que esto no quedo claro, bueno, esto queda asi:&lt;br&gt;&lt;br /&gt;x(t) =  b * e ^ (a * sin(y(t-1))) * N(0;1)&lt;br&gt;&lt;br /&gt;y(t) = x(t) + y(t-1)&lt;br&gt;&lt;br /&gt;Y esto me parecio bastante piola. Basicamente una cosa que se puede leer de estas ecuaciones, es que el siguiente movimiento va a ser una variable aleatoria, multiplicada por una constante asociada a cada valor y. Esto seria como si nos imaginaramos que hay un numero para cada recta paralela al eje donde graficamos el tiempo (el horizontal), entonces, por ejemplo, a la paralela correspondiente a: a = 2; y = 3 el numero asociado a esa recta es k =2.0830282438600087, esto quiere decir que si en el momento t-1, y era igual a 3, la variable aleatoria que salga sorteada, va a ser multiplicada k.&lt;br&gt;&lt;br /&gt;Esto me triggereo otro pensamiento. En los modelos donde se tiene algo asi como Y = aX donde X es una variable Normal con una media y una varianza, al buscar el parametro a, en realidad lo unico que se esta haciendo es buscar cuales son los parametros (media y varianza) de la variable Y, ya que Y se podria simular como una normal y = N(a*E(X);a*sqrt(Var(X))) donde sqrt(x) es la raiz cuadrada de x. Bueno, es otra forma de pensar lo mismo...&lt;br /&gt;saludos&lt;br /&gt;/jb&lt;br /&gt;&lt;br /&gt;ps: dejo un par de imagenes usando el comentario de felipe, donde todas las imagenes se hicieron con las mismas 10000 N(0;1), pero con distinto parametro a&lt;br /&gt;&lt;br /&gt;ps2: quedan pendientes los colorsitos&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_z22inue_W-M/RrTDwIBISRI/AAAAAAAAAAs/um_Jc9cokW4/s1600-h/Plot+parameter+1.jpg"&gt;a=1&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_z22inue_W-M/RrTDwIBISRI/AAAAAAAAAAs/um_Jc9cokW4/s400/Plot+parameter+1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5094912310016231698" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_z22inue_W-M/RrTDwYBISSI/AAAAAAAAAA0/DrfbEm7FqAA/s1600-h/Plot+parameter+2.jpg"&gt;a=2&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_z22inue_W-M/RrTDwYBISSI/AAAAAAAAAA0/DrfbEm7FqAA/s400/Plot+parameter+2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5094912314311199010" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_z22inue_W-M/RrTDwYBISTI/AAAAAAAAAA8/C9RjB7Vy_RM/s1600-h/Plot+parameter+3.jpg"&gt;a=3&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_z22inue_W-M/RrTDwYBISTI/AAAAAAAAAA8/C9RjB7Vy_RM/s400/Plot+parameter+3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5094912314311199026" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_z22inue_W-M/RrTDwYBISUI/AAAAAAAAABE/mh6Hti3T9rw/s1600-h/Plot+parameter+4.jpg"&gt;a=4&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_z22inue_W-M/RrTDwYBISUI/AAAAAAAAABE/mh6Hti3T9rw/s400/Plot+parameter+4.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5094912314311199042" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1919596727860015236-7216308308257488296?l=cosas-jb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cosas-jb.blogspot.com/feeds/7216308308257488296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1919596727860015236&amp;postID=7216308308257488296' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/7216308308257488296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/7216308308257488296'/><link rel='alternate' type='text/html' href='http://cosas-jb.blogspot.com/2007/08/mas-on-random-no-tan-walk.html' title='Mas on Random (no-tan) Walk'/><author><name>jb</name><uri>http://www.blogger.com/profile/13709249214033017810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_z22inue_W-M/RrTDwIBISRI/AAAAAAAAAAs/um_Jc9cokW4/s72-c/Plot+parameter+1.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1919596727860015236.post-909687145094746263</id><published>2007-07-30T20:49:00.000-07:00</published><updated>2007-07-30T22:49:43.127-07:00</updated><title type='text'>Random Walk (o no tan walk)</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_z22inue_W-M/Rq7EOYBISNI/AAAAAAAAAAM/C1PZ4keBcZ0/s1600-h/Plot+parameter+1.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_z22inue_W-M/Rq7EOYBISNI/AAAAAAAAAAM/C1PZ4keBcZ0/s320/Plot+parameter+1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5093223979847010514" /&gt;&lt;/a&gt;&lt;br /&gt;Hace un tiempo estaba pensando en alguna forma de tener un proceso que genere &lt;a href=http://en.wikipedia.org/wiki/Hysteresis&gt;Hysteresis&lt;/a&gt; o algun tipo de proceso stochastico (aleatorio y con una relacion temporal), y se me ocurrio este proceso&lt;br /&gt;primero definimos un proceso x(t) = N(0, b * e ^ (a * sin(y(t-1)))) donde a y b son parametros, y N es la distribucion Normal o gaussiana.&lt;br /&gt;y(t) = y(t-1) + x(t) (y(t) = 0 para t &lt;= 0, no jodan)&lt;br /&gt;&lt;br /&gt;Bueno, el asunto es que me encontre en que este proceso (el y(t) tiene un comportamiento bastante diferente dependiendo del parametro a (es decir, me encontre con una familia de procesos)&lt;br /&gt;veamos un par de dibujitos.&lt;br /&gt;&lt;br /&gt;El primer dibujo no parece nada raro, un poco distinto a una caminata medio borracha.&lt;br /&gt;Ahora, este segundo dibujo, cambiando solamente el parametro a para que valga 2, ya muestra una estructura interesante&lt;br /&gt; &lt;a href="http://2.bp.blogspot.com/_z22inue_W-M/Rq7HAYBISPI/AAAAAAAAAAc/DHMdgy6KXUs/s1600-h/Plot+parameter+2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_z22inue_W-M/Rq7HAYBISPI/AAAAAAAAAAc/DHMdgy6KXUs/s400/Plot+parameter+2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5093227037863725298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ahora, si en vez de 2, usamos como parametro 3, obtenemos el siguiente grafico:&lt;br /&gt;La structura es completamente distinta. La pregunta seria: "que es lo que esta pasando?" &lt;br /&gt;Bueno, podemos empezar pensando como es un random walk, aca, el "caminante" decide si va a ir para arriba o para abajo usando una funcion de distribucion normal, con media 0, y varianza constante. Aca aparece la primer diferencia.&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_z22inue_W-M/Rq7IfIBISQI/AAAAAAAAAAk/gCq19jDoqSM/s1600-h/Plot+parameter+3.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_z22inue_W-M/Rq7IfIBISQI/AAAAAAAAAAk/gCq19jDoqSM/s400/Plot+parameter+3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5093228665656330498" /&gt;&lt;/a&gt;&lt;br /&gt;En este proceso, la varianza no es constante, podriamos decir que la varianza es el parametro b (que por cierto, me olvide comentar, yo uso b = pi/2 por que parece cheto). Esta varianza b, esta expandida o contraida dependiendo del resultado de a * sin (y), es decir, hay partes del camino (es claro que depende del lugar donde se esta, pero no de como se llego ahi), en que sin(y) es un numero negativo, y multiplicado por a, es mas negativo (cuando a es mas grande). Luego, cuando usamos ese valor como exponente, se produce una contraccion de la varianza (los valores van a estar cada vez mas proximos). El caso contrario es cuando el sin(y) &gt; 0, ya que produce un exponente positivo, y eso expande la varianza (y los valores empiezan a saltar).&lt;br /&gt;Una forma de pensar esto, es como navegar (sin timon) por un rio, en las zonas tranquilas, nuestro barquito se va a mover aleatoriamente, pero los cambios van a estar proximos... sin embargo, cuando entramos a una zona de rapidos, el barquito empezara a cambiar de posicion de manera brusca, y saltara entre zonas, hasta volver a encontrar otra zona tranquila en doned se quedara... Por eso este proceso no es tan Walk aunque si bastante Random.&lt;br /&gt;Existe una forma piola de poder graphicar la idea de las corrientes y este proceso, pero para eso tengo que terminar de averiguar como funciona el &lt;a href="http://wiki.squeak.org/squeak/2626"&gt;PlotMorph&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;saludos&lt;br /&gt;/jb&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1919596727860015236-909687145094746263?l=cosas-jb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cosas-jb.blogspot.com/feeds/909687145094746263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1919596727860015236&amp;postID=909687145094746263' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/909687145094746263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/909687145094746263'/><link rel='alternate' type='text/html' href='http://cosas-jb.blogspot.com/2007/07/random-walk-o-no-tan-walk.html' title='Random Walk (o no tan walk)'/><author><name>jb</name><uri>http://www.blogger.com/profile/13709249214033017810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_z22inue_W-M/Rq7EOYBISNI/AAAAAAAAAAM/C1PZ4keBcZ0/s72-c/Plot+parameter+1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1919596727860015236.post-1226773165451135072</id><published>2007-07-30T20:45:00.000-07:00</published><updated>2007-07-30T20:49:22.106-07:00</updated><title type='text'>Primero, infaltable</title><content type='html'>El por que de este blog, la idea principal es tener un lugar donde pueda poner las cosas que se me van ocurriendo, y que los puedan leer cuando quieran, sin tener que estar molestando a mis amigos continuamente por cosas del estilo "che, me dicuenta que no hay helado de chocolate con granos de cafe", o peores...&lt;br /&gt;Ahora voy a escribir esas cosas, y el que las lee... bueno, ya somos grandes :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1919596727860015236-1226773165451135072?l=cosas-jb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cosas-jb.blogspot.com/feeds/1226773165451135072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1919596727860015236&amp;postID=1226773165451135072' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/1226773165451135072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1919596727860015236/posts/default/1226773165451135072'/><link rel='alternate' type='text/html' href='http://cosas-jb.blogspot.com/2007/07/primero-infaltable.html' title='Primero, infaltable'/><author><name>jb</name><uri>http://www.blogger.com/profile/13709249214033017810</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
