Este documento describe la implementación del algoritmo k-means en SQL. El algoritmo agrupa puntos de datos en k grupos basados en sus distancias euclidianas a centroides. La entrada incluye una tabla de datos multidimensionales y el número de grupos k. La salida incluye matrices que representan los pesos de los grupos, los centroides y las varianzas. El proceso calcula las distancias entre puntos y centroides para asignar puntos a grupos, y actualiza los centroides iterativamente hasta converger.
Este documento proporciona una introducción a los conceptos básicos de las matrices, incluidas sus definiciones, tipos y operaciones. Explica que una matriz es una ordenación rectangular de números y que se define por su tamaño de filas y columnas. Luego describe varios tipos especiales de matrices como matrices cuadradas, triangulares y ortogonales. Finalmente, resume las operaciones básicas que se pueden realizar con matrices como suma, resta, multiplicación por escalares y producto entre matrices.
Este documento describe los sistemas de ecuaciones lineales y los métodos para resolverlos. Explica cómo representar un sistema de ecuaciones como una multiplicación de matrices y define una solución como un conjunto de valores que satisfacen todas las ecuaciones. También resume tres métodos algebraicos para resolver sistemas lineales: sustitución, igualación y reducción.
Este documento presenta los conceptos básicos de la programación lineal, incluyendo: 1) cómo graficar ecuaciones y sistemas de inecuaciones lineales, 2) los conceptos de vectores, rectas y semiplanos en el plano, y 3) la forma general de plantear problemas de programación lineal utilizando tablas de datos, variables, función objetivo y restricciones. Explica cómo representar gráficamente conjuntos de solución y distinguir entre conjuntos acotados y no acotados.
Este documento presenta un resumen de la teoría de álgebra, incluyendo definiciones y propiedades de matrices, determinantes, sistemas de ecuaciones lineales y el teorema de Rouché-Fröbenius. Explica conceptos como matrices, operaciones con matrices, determinantes, cálculo de la matriz inversa, sistemas de ecuaciones lineales y su resolución mediante el método de eliminación de Gauss.
Este documento presenta un estudio sobre la aplicación de matrices para resolver problemas de circulación vehicular. Se describen conceptos como sistemas lineales, matriz aumentada, eliminación gaussiana, determinantes y regla de Cramer. Luego, se presentan tres problemas de tráfico vehicular resueltos usando métodos de matrices como matriz aumentada. Finalmente, se concluye que los métodos de matrices son útiles para resolver problemas de tráfico de manera rápida.
Este documento describe dos métodos para resolver sistemas de ecuaciones lineales: 1) El método de Cramer, que utiliza determinantes para encontrar las soluciones de sistemas de 2x2 y 3x3 ecuaciones. 2) El método de Gauss-Jordan, que reduce la matriz ampliada a una forma escalonada para determinar las soluciones aplicando operaciones elementales entre filas.
Este documento presenta conceptos básicos sobre matrices, incluyendo definiciones de matriz, clasificaciones de matrices, operaciones con matrices como suma, producto por escalar y producto de matrices. También explica el concepto de rango de una matriz y cómo calcularlo usando el método de Gauss. Finalmente, introduce la noción de matriz inversa y cómo calcularla usando el método de Gauss-Jordan.
Este documento presenta una introducción a los modelos matemáticos y diferentes tipos de modelos como modelos lineales, cuadráticos, polinomiales, trigonométricos y exponenciales. Explica que un modelo matemático describe un fenómeno del mundo real y provee ejemplos. También describe el propósito y proceso de crear un modelo matemático, incluyendo formular el problema, crear el modelo, resolverlo, probarlo e interpretar los resultados.
Este documento proporciona una introducción a los conceptos básicos de las matrices, incluidas sus definiciones, tipos y operaciones. Explica que una matriz es una ordenación rectangular de números y que se define por su tamaño de filas y columnas. Luego describe varios tipos especiales de matrices como matrices cuadradas, triangulares y ortogonales. Finalmente, resume las operaciones básicas que se pueden realizar con matrices como suma, resta, multiplicación por escalares y producto entre matrices.
Este documento describe los sistemas de ecuaciones lineales y los métodos para resolverlos. Explica cómo representar un sistema de ecuaciones como una multiplicación de matrices y define una solución como un conjunto de valores que satisfacen todas las ecuaciones. También resume tres métodos algebraicos para resolver sistemas lineales: sustitución, igualación y reducción.
Este documento presenta los conceptos básicos de la programación lineal, incluyendo: 1) cómo graficar ecuaciones y sistemas de inecuaciones lineales, 2) los conceptos de vectores, rectas y semiplanos en el plano, y 3) la forma general de plantear problemas de programación lineal utilizando tablas de datos, variables, función objetivo y restricciones. Explica cómo representar gráficamente conjuntos de solución y distinguir entre conjuntos acotados y no acotados.
Este documento presenta un resumen de la teoría de álgebra, incluyendo definiciones y propiedades de matrices, determinantes, sistemas de ecuaciones lineales y el teorema de Rouché-Fröbenius. Explica conceptos como matrices, operaciones con matrices, determinantes, cálculo de la matriz inversa, sistemas de ecuaciones lineales y su resolución mediante el método de eliminación de Gauss.
Este documento presenta un estudio sobre la aplicación de matrices para resolver problemas de circulación vehicular. Se describen conceptos como sistemas lineales, matriz aumentada, eliminación gaussiana, determinantes y regla de Cramer. Luego, se presentan tres problemas de tráfico vehicular resueltos usando métodos de matrices como matriz aumentada. Finalmente, se concluye que los métodos de matrices son útiles para resolver problemas de tráfico de manera rápida.
Este documento describe dos métodos para resolver sistemas de ecuaciones lineales: 1) El método de Cramer, que utiliza determinantes para encontrar las soluciones de sistemas de 2x2 y 3x3 ecuaciones. 2) El método de Gauss-Jordan, que reduce la matriz ampliada a una forma escalonada para determinar las soluciones aplicando operaciones elementales entre filas.
Este documento presenta conceptos básicos sobre matrices, incluyendo definiciones de matriz, clasificaciones de matrices, operaciones con matrices como suma, producto por escalar y producto de matrices. También explica el concepto de rango de una matriz y cómo calcularlo usando el método de Gauss. Finalmente, introduce la noción de matriz inversa y cómo calcularla usando el método de Gauss-Jordan.
Este documento presenta una introducción a los modelos matemáticos y diferentes tipos de modelos como modelos lineales, cuadráticos, polinomiales, trigonométricos y exponenciales. Explica que un modelo matemático describe un fenómeno del mundo real y provee ejemplos. También describe el propósito y proceso de crear un modelo matemático, incluyendo formular el problema, crear el modelo, resolverlo, probarlo e interpretar los resultados.
Este documento presenta los conceptos básicos del diseño cuadrado latino para experimentos estadísticos. Explica que este diseño permite controlar dos fuentes de variación al clasificar las unidades experimentales en filas y columnas. Incluye el modelo aditivo lineal, los supuestos, y los pasos para estimar los efectos de los tratamientos, bloques, y error. Finalmente, describe cómo se realiza el análisis de varianza para descomponer la variabilidad total del experimento.
1) El documento introduce los conceptos de regresión lineal y no lineal para ajustar ecuaciones a datos experimentales. 2) Explica que la modelización matemática busca ecuaciones que describan el comportamiento de sistemas de forma empírica o teórica. 3) Finalmente, detalla los procedimientos de regresión lineal y no lineal por mínimos cuadrados para encontrar los parámetros óptimos que ajusten mejor las ecuaciones a los datos.
Este documento describe cómo realizar linealizaciones de gráficos mediante cambios de variables y obtener relaciones matemáticas entre cantidades físicas a partir de tablas de valores. Explica la importancia de los gráficos en física para ilustrar relaciones entre variables, calcular constantes y obtener ecuaciones matemáticas. También resume los pasos para construir gráficos y la información que se puede obtener de una recta, incluyendo el método de mínimos cuadrados.
Este documento presenta un resumen de la programación lineal. Introduce el tema y explica cómo resolver inecuaciones y sistemas de inecuaciones lineales con dos variables, representándolos gráficamente. Luego, explica cómo resolver problemas de optimización de una función sujeta a restricciones mediante el análisis geométrico de la región factible.
Este documento resume los principales temas de álgebra que se verán en Matemáticas II, incluyendo: 1) resolución de sistemas de ecuaciones lineales a través del método de Gauss y regla de Cramer, 2) cálculo y propiedades de determinantes, 3) cálculo de matrices inversas y ecuaciones matriciales, y 4) estudio del rango de matrices y discusión de sistemas de ecuaciones.
El documento describe varios métodos para calcular las raíces de ecuaciones, incluyendo el método de bisección, aproximaciones sucesivas, Newton, secante y falsa posición. Luego explica estos métodos con un ejemplo práctico, y también cubre métodos para resolver ecuaciones lineales como eliminación gaussiana, matriz inversa, factorización de Crout y Doolittle, y factorización de Cholesky. Finalmente, introduce brevemente los métodos iterativos para resolver ecuaciones.
Este documento describe conceptos básicos relacionados con variables aleatorias, incluyendo que son funciones que asignan eventos posibles a números reales cuyos valores pueden variar en experimentos aleatorios. Explica que las variables aleatorias pueden ser discretas u continuas, y provee ejemplos de cada una. También define conceptos como función de distribución acumulada, esperanza matemática, varianza, desviación estándar y percentil.
Este documento trata sobre funciones cuadráticas. Explica que una función cuadrática tiene la forma f(x)=ax^2 +bx+c, donde a, b y c son constantes reales. También describe cómo calcular el vértice de una parábola usando completación de cuadrados, y cómo estudiar una función cuadrática trazando su gráfica.
El documento presenta información sobre funciones, incluyendo definiciones de funciones, relaciones, producto cartesiano y representaciones de funciones. También presenta ejemplos de funciones lineales y de segundo grado.
Este documento proporciona instrucciones sobre cómo graficar y analizar datos experimentales. Explica cómo representar tablas de valores mediante gráficos, ajustar puntos a una línea recta, y graficar datos con ejes lineales, semilogarítmicos y logarítmicos. También describe cómo aplicar el método de los mínimos cuadrados y expresar resultados con cifras significativas. Finalmente, presenta un ejemplo numérico para ilustrar los conceptos.
El documento describe los principales aspectos del método científico. Explica que la ciencia se basa en la experimentación cuantitativa y medición, y que los resultados deben ser reproducibles. También describe las etapas del método científico, que incluyen formular un problema, proponer hipótesis, contrastarlas mediante experimentos, y establecer leyes.
Este documento presenta un ejemplo de programación lineal para maximizar las ganancias de una planta industrial que fabrica dos artículos utilizando tres máquinas. Se proporciona información sobre los recursos requeridos y disponibles, y se genera un modelo matemático expresado como desigualdades lineales. El problema se resuelve gráficamente trazando las rectas correspondientes a cada desigualdad y determinando la región factible en el plano cartesiano donde se maximizan las ganancias.
Este documento presenta información sobre matrices y determinantes. Explica conceptos clave como orden de una matriz, diagonal principal, suma y multiplicación de matrices, y tipos especiales de matrices como la matriz identidad y la matriz nula. El documento contiene ejemplos para ilustrar cada concepto y operación con matrices.
Una función es una correspondencia entre 2 conjuntos, llamados dominio y codominio, de tal manera que a cada elemento del primer conjunto, le corresponde uno y sólo un elemento del segundo conjunto. Existen distintos tipos de funciones, sin embargo nos centraremos en las funciones lineales las cuales son ecuaciones de primer grado y, las funciones cuadráticas que son ecuaciones de segundo grado.
La factorización de Cholesky es un método para resolver sistemas de ecuaciones matriciales. Se parte de una matriz de coeficientes A que debe ser simétrica y definida positiva. La matriz A se puede descomponer en la forma A = L*LT, donde L es una matriz triangular inferior. Una vez descompuesta de esta forma, el sistema original A x = b se puede resolver en dos pasos resolviendo sistemas triangulares.
Presenta los contenidos correspondientes a Laboratorio de Física General impartida en la Licenciatura en Ciencias Físico-Matemáticas de la Universidad Michoacana de San Nicolás de Hidalgoen Morelia Michoacán México
El documento define matrices y describe sus propiedades fundamentales. Una matriz es una tabla de números ordenados en filas y columnas. Se definen varios tipos de matrices como matrices nulas, filas, columnas, cuadradas y triangulares. También se explican operaciones básicas con matrices como suma, resta, multiplicación por un escalar y producto de matrices.
Guia curso microeconomia d miras pilar - pedro baroni 2012giomaralvarezc
1. Se calcula el equilibrio de mercado original igualando las curvas de oferta y demanda, obteniéndose una cantidad de 2 unidades y un precio de $2.
2. Se analizan los efectos de diferentes políticas públicas como impuestos, subvenciones y subsidios sobre las curvas de oferta y demanda y los nuevos equilibrios. Los impuestos reducen la cantidad y aumentan el precio, mientras que las subvenciones aumentan la cantidad y reducen el precio.
Revision de Presaberes Metodos NumericosDiego Perdomo
El documento explica la diferencia entre exactitud y precisión en el contexto de sistemas de información geográfica (SIG). La exactitud se refiere a qué tan cerca están los datos de los valores reales, mientras que la precisión se refiere al nivel de detalle de los datos. Obtener datos altamente precisos puede ser muy difícil y costoso, ya que requiere medir cuidadosamente las ubicaciones.
Recursos Hídricos y Desarrollo Sustentable - Sociedad Nacional de Mineríacongresochile
Albero Salas, presidente de la Sociedad Nacional de Minería
Entre los actores más importantes en el actual debate sobre el manejo de aguas y recursos hídricos están las empresas mineras. Alberto Salas, presidente de Sonami dijo estar convencido de que la gran y pequeña minería puede llegar a un acuerdo con el resto de los actores del país respecto al uso del agua. Esto porque el mundo empresarial privado ha debido incorporar el impacto de las externalidades en los proyectos para que estos sean viables en el largo plazo.
Este documento presenta varias herramientas libres para cada fase del proceso de desarrollo de software, incluyendo herramientas para requisitos y documentación, planeación y estimación, diseño y análisis, y codificación e implementación. Algunas de las herramientas mencionadas son MySQL Workbench para diseño, OpenProj para planeación, BlueFish y Anjuta para codificación, y Eclipse como una plataforma de desarrollo completa. El objetivo es conocer las herramientas libres que se pueden usar en cada fase del desar
Este documento presenta los conceptos básicos del diseño cuadrado latino para experimentos estadísticos. Explica que este diseño permite controlar dos fuentes de variación al clasificar las unidades experimentales en filas y columnas. Incluye el modelo aditivo lineal, los supuestos, y los pasos para estimar los efectos de los tratamientos, bloques, y error. Finalmente, describe cómo se realiza el análisis de varianza para descomponer la variabilidad total del experimento.
1) El documento introduce los conceptos de regresión lineal y no lineal para ajustar ecuaciones a datos experimentales. 2) Explica que la modelización matemática busca ecuaciones que describan el comportamiento de sistemas de forma empírica o teórica. 3) Finalmente, detalla los procedimientos de regresión lineal y no lineal por mínimos cuadrados para encontrar los parámetros óptimos que ajusten mejor las ecuaciones a los datos.
Este documento describe cómo realizar linealizaciones de gráficos mediante cambios de variables y obtener relaciones matemáticas entre cantidades físicas a partir de tablas de valores. Explica la importancia de los gráficos en física para ilustrar relaciones entre variables, calcular constantes y obtener ecuaciones matemáticas. También resume los pasos para construir gráficos y la información que se puede obtener de una recta, incluyendo el método de mínimos cuadrados.
Este documento presenta un resumen de la programación lineal. Introduce el tema y explica cómo resolver inecuaciones y sistemas de inecuaciones lineales con dos variables, representándolos gráficamente. Luego, explica cómo resolver problemas de optimización de una función sujeta a restricciones mediante el análisis geométrico de la región factible.
Este documento resume los principales temas de álgebra que se verán en Matemáticas II, incluyendo: 1) resolución de sistemas de ecuaciones lineales a través del método de Gauss y regla de Cramer, 2) cálculo y propiedades de determinantes, 3) cálculo de matrices inversas y ecuaciones matriciales, y 4) estudio del rango de matrices y discusión de sistemas de ecuaciones.
El documento describe varios métodos para calcular las raíces de ecuaciones, incluyendo el método de bisección, aproximaciones sucesivas, Newton, secante y falsa posición. Luego explica estos métodos con un ejemplo práctico, y también cubre métodos para resolver ecuaciones lineales como eliminación gaussiana, matriz inversa, factorización de Crout y Doolittle, y factorización de Cholesky. Finalmente, introduce brevemente los métodos iterativos para resolver ecuaciones.
Este documento describe conceptos básicos relacionados con variables aleatorias, incluyendo que son funciones que asignan eventos posibles a números reales cuyos valores pueden variar en experimentos aleatorios. Explica que las variables aleatorias pueden ser discretas u continuas, y provee ejemplos de cada una. También define conceptos como función de distribución acumulada, esperanza matemática, varianza, desviación estándar y percentil.
Este documento trata sobre funciones cuadráticas. Explica que una función cuadrática tiene la forma f(x)=ax^2 +bx+c, donde a, b y c son constantes reales. También describe cómo calcular el vértice de una parábola usando completación de cuadrados, y cómo estudiar una función cuadrática trazando su gráfica.
El documento presenta información sobre funciones, incluyendo definiciones de funciones, relaciones, producto cartesiano y representaciones de funciones. También presenta ejemplos de funciones lineales y de segundo grado.
Este documento proporciona instrucciones sobre cómo graficar y analizar datos experimentales. Explica cómo representar tablas de valores mediante gráficos, ajustar puntos a una línea recta, y graficar datos con ejes lineales, semilogarítmicos y logarítmicos. También describe cómo aplicar el método de los mínimos cuadrados y expresar resultados con cifras significativas. Finalmente, presenta un ejemplo numérico para ilustrar los conceptos.
El documento describe los principales aspectos del método científico. Explica que la ciencia se basa en la experimentación cuantitativa y medición, y que los resultados deben ser reproducibles. También describe las etapas del método científico, que incluyen formular un problema, proponer hipótesis, contrastarlas mediante experimentos, y establecer leyes.
Este documento presenta un ejemplo de programación lineal para maximizar las ganancias de una planta industrial que fabrica dos artículos utilizando tres máquinas. Se proporciona información sobre los recursos requeridos y disponibles, y se genera un modelo matemático expresado como desigualdades lineales. El problema se resuelve gráficamente trazando las rectas correspondientes a cada desigualdad y determinando la región factible en el plano cartesiano donde se maximizan las ganancias.
Este documento presenta información sobre matrices y determinantes. Explica conceptos clave como orden de una matriz, diagonal principal, suma y multiplicación de matrices, y tipos especiales de matrices como la matriz identidad y la matriz nula. El documento contiene ejemplos para ilustrar cada concepto y operación con matrices.
Una función es una correspondencia entre 2 conjuntos, llamados dominio y codominio, de tal manera que a cada elemento del primer conjunto, le corresponde uno y sólo un elemento del segundo conjunto. Existen distintos tipos de funciones, sin embargo nos centraremos en las funciones lineales las cuales son ecuaciones de primer grado y, las funciones cuadráticas que son ecuaciones de segundo grado.
La factorización de Cholesky es un método para resolver sistemas de ecuaciones matriciales. Se parte de una matriz de coeficientes A que debe ser simétrica y definida positiva. La matriz A se puede descomponer en la forma A = L*LT, donde L es una matriz triangular inferior. Una vez descompuesta de esta forma, el sistema original A x = b se puede resolver en dos pasos resolviendo sistemas triangulares.
Presenta los contenidos correspondientes a Laboratorio de Física General impartida en la Licenciatura en Ciencias Físico-Matemáticas de la Universidad Michoacana de San Nicolás de Hidalgoen Morelia Michoacán México
El documento define matrices y describe sus propiedades fundamentales. Una matriz es una tabla de números ordenados en filas y columnas. Se definen varios tipos de matrices como matrices nulas, filas, columnas, cuadradas y triangulares. También se explican operaciones básicas con matrices como suma, resta, multiplicación por un escalar y producto de matrices.
Guia curso microeconomia d miras pilar - pedro baroni 2012giomaralvarezc
1. Se calcula el equilibrio de mercado original igualando las curvas de oferta y demanda, obteniéndose una cantidad de 2 unidades y un precio de $2.
2. Se analizan los efectos de diferentes políticas públicas como impuestos, subvenciones y subsidios sobre las curvas de oferta y demanda y los nuevos equilibrios. Los impuestos reducen la cantidad y aumentan el precio, mientras que las subvenciones aumentan la cantidad y reducen el precio.
Revision de Presaberes Metodos NumericosDiego Perdomo
El documento explica la diferencia entre exactitud y precisión en el contexto de sistemas de información geográfica (SIG). La exactitud se refiere a qué tan cerca están los datos de los valores reales, mientras que la precisión se refiere al nivel de detalle de los datos. Obtener datos altamente precisos puede ser muy difícil y costoso, ya que requiere medir cuidadosamente las ubicaciones.
Recursos Hídricos y Desarrollo Sustentable - Sociedad Nacional de Mineríacongresochile
Albero Salas, presidente de la Sociedad Nacional de Minería
Entre los actores más importantes en el actual debate sobre el manejo de aguas y recursos hídricos están las empresas mineras. Alberto Salas, presidente de Sonami dijo estar convencido de que la gran y pequeña minería puede llegar a un acuerdo con el resto de los actores del país respecto al uso del agua. Esto porque el mundo empresarial privado ha debido incorporar el impacto de las externalidades en los proyectos para que estos sean viables en el largo plazo.
Este documento presenta varias herramientas libres para cada fase del proceso de desarrollo de software, incluyendo herramientas para requisitos y documentación, planeación y estimación, diseño y análisis, y codificación e implementación. Algunas de las herramientas mencionadas son MySQL Workbench para diseño, OpenProj para planeación, BlueFish y Anjuta para codificación, y Eclipse como una plataforma de desarrollo completa. El objetivo es conocer las herramientas libres que se pueden usar en cada fase del desar
El documento define la redacción como el arte de expresar pensamientos por escrito de manera ordenada, clara, concisa, sencilla y natural. Explica que la redacción consta de tres fases: invención, ordenación e expresión de ideas. También describe características como claridad, concisión, sencillez, limpieza, distribución, legibilidad y ortografía. Luego, explica que la narración relata hechos siguiendo una situación inicial, nudo y desenlace, mientras que el ensayo divulga temas
El documento describe los elementos fundamentales de un proyecto de investigación científica. Incluye secciones como el planteamiento del problema, marco teórico, metodología y etapas del desarrollo de la investigación. Los objetivos fundamentales de un proyecto de investigación son establecer los hechos básicos de un tema, ampliar la comprensión a través de nueva información y buscar aplicaciones prácticas que satisfagan necesidades sociales.
El documento discute cómo vivir una vida plena en un mundo cambiante. Sugiere que nos hemos vuelto demasiado contemplativos y orientados al control, lo que dificulta la creatividad y la improvisación. Propone que debemos abrazar la vulnerabilidad y el juego para enfrentar la incertidumbre, y que nuestra mayor fortaleza es fluir en el amor y la creación. Concluye desafiándonos a ser artistas de nuestras propias vidas e inventar identidades valiosas a pesar del constante cambio.
El documento menciona a cuatro personas y sus publicaciones en diferentes medios de comunicación: Eneko apareció en "20 minutos", mientras que Forges, Erlich y Ramón publicaron artículos en El País.
La escala musical presentada es la escala de La bemol mayor, que consta de siete notas musicales (Do, Re, Mib, Fa, Sol, La b, Si b) organizadas en una cuatriada y una triada, con La bemol como nota tónica.
Google et linking sont-ils encore compatibles? Bonnes pratiques SEO - Brioude...Brioude Internet
L’algorithme de Google ne cesse d’évoluer et les mises à jour Pingouin s’enchaînent (dernière en date le 18 octobre 2014)
Il est important de travailler la notoriété de sa marque et de son entreprise en créant un environnement autour de son site internet.
Alors aujourd’hui que faut-il faire et ne pas faire en matière de linking?
Retrouvez les bonnes pratiques vues par Brioude Internet
Téléchargez ce support : http://www.brioude-internet.fr/google-et-le-linking-sont-ils-encore-compatibles
Este documento establece las normas y procedimientos para la obtención del título profesional de licenciatura en el Sistema Nacional de Educación Superior Tecnológica. Detalla los requisitos que debe cumplir un estudiante para titularse, incluyendo aprobar todas las asignaturas, realizar servicio social, desarrollar un proyecto o investigación y presentar un informe técnico. También describe los roles de la academia, departamento, asesores, revisores y sinodales en el proceso de titulación.
La (des)igualdad de género de las políticas económicasCarmen Castro
Este documento discute cómo la igualdad de género podría contribuir al crecimiento económico y la sostenibilidad del estado de bienestar. Argumenta que promover la igualdad de género en el mercado laboral, como aumentar la tasa de empleo femenina y eliminar la brecha salarial, podría aumentar el PIB en España hasta en un 44%. También sugiere que políticas que apoyen una mayor corresponsabilidad en el cuidado de niños y ancianos podrían aumentar las tasas de natalidad y hacer que los sistemas
Este documento presenta una agenda cultural y de entretenimiento para el viernes 7 de mayo de 2010 en Morelia, México. Incluye eventos como la entrega de doctorados honoris causa a cuatro personas en el Colegio Primitivo de San Nicolás de Hidalgo a las 19:00 horas, y la proyección de varias películas en cines locales. También lista restaurantes de diferentes tipos de comida como italiana, regional e internacional ubicados en la ciudad, con sus horarios y contactos.
Jeunesse, pratiques et territoire : réflexions à partir des cahiers de l'acti...Nathalie Caclard
Support d'intervention lors de la conférence-débat organisée par l’INJEP : "Jeunes et pratiques d’information : quels enjeux ?" : http://www.injep.fr/spip.php?page=agenda&id_evenement=236
El documento analiza cómo ha evolucionado la audiencia en Internet y los nuevos canales a través de los cuales acceden a la información, como redes sociales, blogs y agregadores de noticias. Señala que los periodistas deben entender mejor estos cambios y cómo consumen los lectores la información a través de diferentes formatos como texto, audio y video, en lugar de solo enfocarse en la portada de sus sitios web. También clasifica a los usuarios de Internet en seis categorías según su nivel de participación e interacción con los contenidos.
Estadística Cálculo de Media y desviación 009CESAR A. RUIZ C
Este documento describe el método abreviado para calcular la media aritmética y la desviación estándar a partir de datos numéricos. Explica que este método estima primero una media y luego aplica correcciones para encontrar los valores reales. Detalla los pasos para calcular la media, que incluyen estimar una media, calcular desviaciones de cada dato respecto a la media estimada, multiplicar las desviaciones por sus frecuencias y dividir la suma para obtener la corrección. Para la desviación estándar, calcula las desviaciones al cuad
Cuartiles, diagrama de caja y bigotes, deciles y percentiles con excel y geog...Mario Suárez
Este documento describe los cuartiles, deciles y percentiles, que dividen una distribución de datos en partes iguales. Los cuartiles dividen los datos en cuatro partes, con valores Q1, Q2 y Q3. Se explican métodos para calcular cuartiles en datos agrupados y no agrupados, incluyendo el uso de fórmulas y diagramas de caja.
Álgebra Lineal y Modelamiento EconómicoJuan Segura
Este documento introduce conceptos básicos de matrices y vectores para su aplicación en modelos económicos. Explica que los modelos económicos abstractan las características relevantes de un objeto de estudio mediante variables, ecuaciones y parámetros. Luego define conceptos como rango de una matriz, dependencia e independencia lineal de vectores, y matriz singular vs. no singular. El objetivo es preparar al lector para el análisis de sistemas de ecuaciones y modelos de múltiples mercados mediante el álgebra lineal.
El documento describe las estructuras fundamentales de los algoritmos, incluyendo estructuras secuenciales, de decisión, repetitivas y de casos. Explica las partes de un algoritmo secuencial (datos de entrada, proceso y datos de salida) y proporciona ejemplos de algoritmos secuenciales que calculan operaciones matemáticas como el doble de un número y el área de un cuadrado. También cubre temas como porcentajes, asignación de variables y operaciones básicas.
Este documento describe el modelo estadístico y análisis de varianza para un diseño cuadro latino. Se definen los tratamientos de las columnas, hileras y tratamientos sorteados. Los datos se recopilan y suman. Se calcula la suma de cuadrados total y de los tratamientos. Esto permite determinar si existen diferencias significativas entre los tratamientos evaluados.
El documento describe los conceptos clave de la regresión múltiple, incluyendo que permite utilizar múltiples variables independientes para estimar una variable dependiente de manera más precisa. Explica cómo construir un modelo de regresión múltiple para predecir los impuestos no pagados basado en horas de auditoría y horas de computadora.
Este documento describe las estructuras básicas de los algoritmos, incluyendo estructuras secuenciales, de decisión, de casos y repetitivas. Explica conceptos como datos de entrada, proceso y datos de salida. Proporciona ejemplos de algoritmos sencillos como calcular el doble de un número. También cubre temas como asignación de valores, operaciones matemáticas básicas y fórmulas para calcular porcentajes.
Este documento describe las estructuras básicas de los algoritmos, incluyendo estructuras secuenciales, de decisión, de casos y repetitivas. Explica conceptos como datos de entrada, proceso y datos de salida. Proporciona ejemplos de algoritmos sencillos para multiplicar números y calcular el doble de un número. También cubre temas como asignación de valores, operaciones básicas, fórmulas y cálculo de porcentajes en algoritmos.
Definici+¦n de antiderivada radhames canigianicanigiani83
Este documento introduce el concepto de integral definida y su origen histórico para el cálculo de áreas. Explica que la integración es una generalización de la suma de infinitos sumandos y que el cálculo integral se utiliza comúnmente en ingeniería y ciencia. Luego, define la antiderivada y explica teoremas como la integración por partes y métodos para resolver integrales como fracciones parciales e integrales tabuladas.
Este documento describe el diseño e implementación de un gráfico de control X-R para monitorear la calidad de circuitos impresos fabricados en condiciones de alta temperatura. Se recopilaron datos de resistividad de 100 circuitos tomados en grupos de 5. Tras eliminar los grupos fuera de control, se construyó el gráfico de control y se analizaron sus propiedades, incluida la curva característica de operaciones para determinar la probabilidad de detección de cambios en el proceso.
Este documento describe los pasos para diseñar experimentos de simulación por computadora de manera sistemática. Explica que el diseño determina el análisis estadístico y el éxito del experimento. Luego detalla tres pasos clave: 1) determinar los criterios del diseño, 2) sintetizar el modelo experimental, 3) seleccionar el diseño óptimo comparando opciones. Finalmente, ofrece consideraciones como el número de factores, niveles y repeticiones para lograr el aprendizaje más económico posible.
El documento presenta una metodología de 5 pasos para resolver problemas utilizando MatLab. Los pasos son: 1) plantear el problema claramente, 2) describir las entradas y salidas, 3) resolver un ejemplo sencillo a mano, 4) crear una solución en MatLab, y 5) probar la solución con diferentes datos. Se ilustra la metodología resolviendo un problema de cálculo de temperatura promedio a partir de datos experimentales.
El documento presenta una metodología de 5 pasos para resolver problemas utilizando MatLab. Los pasos son: 1) plantear el problema claramente, 2) describir las entradas y salidas, 3) resolver un ejemplo sencillo a mano, 4) crear una solución en MatLab, y 5) probar la solución con diferentes datos. Se ilustra la metodología resolviendo un problema de cálculo de temperatura promedio y gráfico de datos.
El documento presenta una metodología de 5 pasos para resolver problemas utilizando MatLab. Los pasos son: 1) plantear el problema claramente, 2) describir las entradas y salidas, 3) resolver un ejemplo sencillo a mano, 4) crear una solución en MatLab, y 5) probar la solución con diferentes datos. Se ilustra la metodología resolviendo un problema de cálculo de temperatura promedio a partir de datos experimentales.
El documento presenta una metodología de 5 pasos para resolver problemas utilizando MatLab. Los pasos son: 1) plantear el problema claramente, 2) describir las entradas y salidas, 3) resolver un ejemplo sencillo a mano, 4) crear una solución en MatLab, y 5) probar la solución con diferentes datos. Se ilustra la metodología resolviendo un problema de cálculo de temperatura promedio a partir de datos experimentales.
El documento presenta una metodología de 5 pasos para resolver problemas utilizando MatLab. Los pasos incluyen definir el problema, describir las entradas y salidas, resolver un ejemplo a mano, crear una solución en MatLab y probar la solución con diferentes datos.
El documento presenta una metodología de 5 pasos para resolver problemas utilizando MatLab. Los pasos incluyen definir el problema, describir las entradas y salidas, resolver un ejemplo a mano, crear una solución en MatLab y probar la solución con diferentes datos.
El documento presenta una metodología de 5 pasos para resolver problemas utilizando MatLab. Los pasos incluyen definir el problema, describir las entradas y salidas, resolver un ejemplo a mano, crear una solución en MatLab y probar la solución con diferentes datos.
El documento presenta una metodología de 5 pasos para resolver problemas utilizando MatLab. Los pasos incluyen definir el problema, describir las entradas y salidas, resolver un ejemplo a mano, crear una solución en MatLab y probar la solución con diferentes datos.
El documento presenta una metodología de cinco pasos para resolver problemas utilizando MatLab. Los pasos incluyen definir el problema, describir las entradas y salidas, resolver un ejemplo a mano, crear una solución en MatLab y probar la solución con diferentes datos. Se utiliza un ejemplo de cálculo de temperatura promedio para ilustrar la metodología.
This document discusses the application of artificial intelligence techniques in cybersecurity. It begins by outlining the motivations for applying AI to cybersecurity, such as the growing amounts of data and connections between devices. It then provides an overview of cybersecurity challenges and common AI techniques like machine learning. The document concludes by presenting several examples of how AI is already being used to enhance cybersecurity, such as through anomaly detection, natural language processing for unstructured threat analysis, and AI-powered security analytics tools.
This document discusses improving forecasting and classification in smart metering systems using neural compute sticks. It presents two models: a consumption and production prediction model using a recurrent neural network, and an energy fraud classification model using decision trees. Both models were tested on a smart metering system with and without neural compute sticks. Using the sticks reduced training times by an average of 30% for the prediction model and 7.5% for the classification model. It concluded that edge computing applications like these are necessary for smart grid systems due to increasing data, and neural compute sticks can significantly improve training times for models based on artificial neural networks.
Este documento habla sobre el análisis de datos usando computadoras de placa única. Explora oportunidades y retos de la memoria, procesamiento y almacenamiento en estas computadoras. También discute conceptos como cómputo en la niebla, latencia de datos en medidores inteligentes, muestreo de señal eléctrica, sistemas operativos embebidos y bases de datos embebidas. El documento concluye proporcionando los contactos del autor.
El documento habla sobre el análisis de datos en dispositivos de Internet de las Cosas. Explica conceptos clave como la industria 4.0, dispositivos conectados e IoT, y los desafíos del análisis de datos IoT como diferentes tipos de datos. También cubre temas como flujos de datos, procesamiento de datos, aprendizaje automático, almacenamiento de datos, y nuevas tendencias como streaming de datos. El autor concluye preguntando si hay alguna pregunta sobre el tema.
A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...Juan Carlos Olivares Rojas
Este documento evalúa algoritmos criptográficos para aplicaciones de análisis de datos en sistemas inteligentes de medición. Compara el rendimiento de algoritmos como AES-256, RSA-4096, Blowfish y Twofish midiendo el tiempo de ejecución y uso de memoria. Concluye que algoritmos como Blowfish y Twofish son buenas opciones para aplicaciones de análisis de datos en movimiento o almacenados, mientras que opciones como RSA-4096 no son adecuadas para aplicaciones que requieren tiempo real estricto.
Este documento propone flexibilidad curricular en el Tecnológico Nacional de México para adaptarse a los rápidos cambios tecnológicos. Se analizan los planes de estudio existentes y se proponen nuevas especialidades como Ciencia de Datos y Redes Eléctricas Inteligentes. También se sugiere validar cursos en línea y permitir la movilidad de estudiantes. Finalmente, se recomienda diseñar módulos de especialidad de forma nacional y mejorar el proceso de tutorías.
Analítica de Datos en Simulador de Redes para Sistemas de Medición InteligenteJuan Carlos Olivares Rojas
Este documento presenta un simulador de redes para sistemas de medición inteligente que utiliza analítica de datos. Describe cómo el simulador genera datos de medición que luego se pueden analizar estadísticamente. Concluye que se necesita más desarrollo del simulador y que la gran cantidad de datos generados es difícil de procesar, por lo que se debe completar la infraestructura de simulación.
Este documento propone un mercado eléctrico minorista transactivo en México utilizando blockchain y contratos inteligentes. Presenta un modelo con generadores, clientes residenciales e industriales, almacenamiento, fuentes renovables y un operador de red. La plataforma permitiría la comercialización de energía a través de cadenas de bloques, con medidores e interfaz inteligentes y el uso de criptomonedas. Los contratos inteligentes automatizarían transacciones basadas en precios y demanda.
This document summarizes a student's master's thesis on using blockchain technology to improve cyber security for smart metering systems transactions. The thesis addresses motivation for securing smart metering systems, describing smart cities/grids and AMI architecture. It reviews related works applying blockchain for grid monitoring security and databases. The student proposes a private/public permissioned blockchain architecture called AMI-BC using a hybrid proof-of-efficiency consensus algorithm across cloud, fog and IoT tiers. It would secure smart meter readings and detect energy fraud/anomalies using machine learning models to predict consumption and power quality.
This document summarizes a survey on using blockchain technology for smart metering systems in electric mobility applications. It discusses the motivation and challenges around e-mobility and smart grids, including cybersecurity issues. It then provides an overview of how blockchain could be applied to smart metering systems, including prototypes that have been tested. Finally, it compares different works in this area based on whether they incorporate load signatures, market functions, or other relevant aspects. The document concludes by discussing potential future work around analyzing appliance consumption and distributed energy resource production costs.
Este documento describe un algoritmo para la detección de movimiento usando medidores inteligentes. El algoritmo divide la imagen de video en una cuadrícula de 3x3, descompone la secuencia de video en imágenes individuales, detecta puntos característicos en cada cuadrante, compara los puntos entre cuadros para detectar movimiento, y determina si hubo movimiento real basado en el número de cuadros que se movieron. El documento también discute la implementación y pruebas del algoritmo, y concluye que este sistema podría usarse como una soluc
El documento presenta un estudio sobre sistemas inteligentes de reuniones utilizando la interacción humano-computadora. Explica las limitaciones técnicas actuales y las necesidades de los usuarios, como monitorear estadísticas de consumo eléctrico y recibir alertas sobre fallas de energía. Concluye que se necesita más trabajo en interfaz humano-computadora para mejorar estos sistemas, e involucrar a los usuarios desde el inicio para satisfacer mejor sus necesidades.
Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...Juan Carlos Olivares Rojas
This document proposes a machine learning model using an edge-fog computing architecture to detect electric energy fraud from smart meter data. It tests various machine learning algorithms on smart meter data from Mexico and finds that a multi-layer perceptron regression model achieves the lowest error rates. The results indicate the model can adequately detect anomalies in energy consumption and production. While human intervention is still needed, the proposed model is designed to operate on embedded devices with limited computing capabilities. The use of fog computing through data centers also improves forecasting performance.
Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...Juan Carlos Olivares Rojas
This document proposes an edge-fog-cloud computing architecture to forecast electricity consumption using weather data and machine learning models. The architecture implements linear regression models at the edge, fog, and cloud layers to improve forecasting accuracy. Results show forecast accuracy was improved with 91-94% of devices having better forecasts when models were executed across multiple layers. The architecture provides a feasible approach for electricity forecasting considering periodic offline execution of models across layers.
Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...Juan Carlos Olivares Rojas
Este documento describe la aplicación de técnicas de experiencia de usuario (UX) en el desarrollo de un portal para un sistema de medición eléctrica inteligente. Presenta información sobre UX vs UI, procesos de UX, diseño centrado en el usuario y encuestas realizadas a usuarios. El objetivo es diseñar e implementar un prototipo del portal que brinde una mejor experiencia al usuario basada en sus necesidades y preferencias reveladas en las encuestas.
Este documento describe las redes eléctricas inteligentes (smart grids) y el papel de los medidores inteligentes (smart meters) en ellas. Las smart grids permiten un flujo bidireccional de electricidad e información mediante el uso de tecnologías de la información y comunicaciones. Los smart meters son dispositivos de Internet de las Cosas que permiten la medición y gestión remota del consumo de electricidad de los hogares y empresas. El documento también discute los retos y oportunidades que presentan las smart grids y los smart meters, como la seguridad, ef
Este documento presenta diferentes estrategias de aprendizaje para el desarrollo de competencias, incluyendo aprendizaje basado en problemas, aprendizaje basado en proyectos, proyectos integradores, aula invertida y gamificación. Explica elementos como estilos de aprendizaje, casos de estudio y el diseño de proyectos. El objetivo general es ayudar a los docentes a diseñar estrategias didácticas efectivas considerando factores como las competencias, inteligencias múltiples y entornos de aprendizaje de los estudiant
Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...Juan Carlos Olivares Rojas
Este documento presenta una propuesta para optimizar la eficiencia energética en los hogares utilizando una arquitectura de medición inteligente. Actualmente, muchos electrodomésticos no tienen controles eficientes para el consumo de energía, lo que aumenta los costos. La propuesta involucra el uso de medidores inteligentes y un sistema de gestión de energía para monitorear y optimizar automáticamente el uso de energía en el hogar. El objetivo es desarrollar una arquitectura que permita mejorar la eficiencia energética y redu
El documento presenta una introducción a la ciberseguridad en redes eléctricas inteligentes. Se describe la arquitectura de las redes eléctricas inteligentes y los componentes como medidores inteligentes. También se discuten las amenazas a la seguridad como ataques a medidores e infraestructura de transmisión, y posibles soluciones como protocolos de seguridad, sistemas de detección de intrusos e implementación de blockchain. Finalmente, se mencionan trabajos de investigación en ciberseguridad de redes elé
Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...Juan Carlos Olivares Rojas
Este documento presenta una propuesta de investigación para estudiar las vulnerabilidades de los protocolos de comunicación y redes de medidores inteligentes. La metodología incluye investigar vulnerabilidades en redes PLC, comunicaciones inalámbricas, y hardware/software. Se desarrollará un framework de seguridad y una metodología, con productos entregables como artículos y un capítulo de libro. El objetivo es mejorar la seguridad y desempeño de las redes eléctricas inteligentes.
Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...
Kmean sql
1. Programación del algoritmo de agrupamiento K-means
en SQL
Juan Carlos Olivares Rojas
Ismael Rafael Ponce Medellín
Laboratorio de Sistemas Distribuidos
Centro Nacional de Investigación y Desarrollo Tecnológico (CENIDET)
Cuernavaca, Morelos, México
{jcolivares04c, rafaxzero04c}@cenidet.edu.mx
En este reporte se resume el diseño y la implementación del algoritmo k-means con
instrucciones de SQL. La implementación se desarrollo en el manejador Oracle 9i a
través de procedimientos almacenados y con SQL dinámico. Para el diseño nos basamos
en el modelo propuesto por [1], en cuyo artículo se comentan una serie de pasos sobre
como sería posible implementarlo; sin embargo adolece de algunos puntos importantes
que no son tan obvios y que son necesarios para poder desarrollarlo.
Como en todo algoritmo, primero se detalla la entrada, seguido de la salida que se
espera obtener, para finalizar explicando lo que se realiza para obtener el resultado.
Entrada
El algoritmo recibe como entrada una tabla Y = {y1, y2, … , yn} la cual contiene d
dimensiones y n puntos (tuplas) que se desean agrupar en k grupos. Por ejemplo1
se
tiene la siguiente tabla:
ALIMENTOS (Nombre, Proteína, Vitamina, Grasa, Azucar, Mineral) con los siguientes
valores de ejemplo:
Nombre Proteína Vitamina Grasa Azúcar Mineral
Hamburguesa 10 0 10 0 0
Papas 5 3 15 12 0
Refresco 0 0 0 23 0.5
Helado 0 1 7 33 0
Malteada 4 2 10 37 0
Tabla 1. Tabla alimentos.
El algoritmo k-means trabaja con datos numéricos por que se basa en el cálculo de
distancias euclidianas entre los puntos para agrupar; por lo que la tabla Y de este
ejemplo sería la siguiente:
1
Cabe hacer mención que tanto los datos como los ejemplos mostrados en este reporte,
no están basados en hechos reales.
2. D1 d2 d3 d4 d5
n1 10 0 10 0 0
n2 5 3 15 12 0
n3 0 0 0 23 0.
5
n4 0 1 7 33 0
n5 4 2 10 37 0
Tabla 2. Tabla Y de la relación alimentos.
Como puede observarse esta tabla, al igual que todas las demás Y es de dimensiones
n*d, donde existe una equivalencia entre cada punto n y cada dimensión d. Al tener esta
nueva tabla, se pierde el identificador de cada elemento, por lo que se define una nueva
relación que contiene como índice una clave primaria con valores autoincrementales.
Esta nueva tabla YH quedaría de la siguiente forma:
i d1 d2 d3 d4 d5
1 10 0 10 0 0
2 5 3 15 12 0
3 0 0 0 23 0.
5
4 0 1 7 33 0
5 4 2 10 37 0
Tabla 3. Ejemplo de Tabla YH.
Salida
El algoritmo recibe como salida tres matrices denominadas W, C y R, que representan
los pesos, los centroides y las varianzas respectivamente.
Las tablas C y R son de dimensiones d*k, por lo que si en nuestro ejemplo se quisiesen
realizar agrupaciones de los puntos (elementos) en dos grupos donde se tuvieran los
elementos más saludables y los que no, k sería igual a 2. Donde k1 representaría el
grupo de alimentos saludables y k2 los que no son tan saludables. Por lo que se tendría
una tabla como la siguiente:
K1 K2
d1 7 3
d2 1 4
d3 8 12
d4 17 21
d5 0 1
Tabla 4. Ejemplo de tabla C y R.
Por ejemplo, si la tabla fuese la relación C, de los valores anteriores, indicarían que en
d3k2, el centroide del atributo grasa en el grupo 2 es de 12 unidades.
Como puede apreciarse el tamaño de esta tabla depende fundamental del número de
dimensiones y del número de grupos, por lo que al ser estos demasiado grandes la
3. información a consultar se dificulta un poco, por lo que la mejor forma de
implementarse es la siguiente:
l j Valor
1 1 7
1 2 3
2 1 1
2 2 4
3 1 8
3 2 12
4 1 17
4 2 21
5 1 0
5 2 1
Tabla 5. Ejemplo de tabla C y R optimizadas para el algoritmo.
Trabajando los valores de forma vertical, permite un mejor acceso a los mismos,
facilitando sobre todo su utilización al momento de efectuar cálculos que los involucren,
como los necesarios para calcular la medida del error.
La tabla W que indica los pesos de cada uno de los clusters, es de dimensión k*1. Por lo
que, para nuestro ejemplo estaría dada como sigue:
Peso
K1 0.4
K2 0.6
Tabla 6. Ejemplo de Tabla W.
En este caso, el valor de 0.4 de k1 nos índica que el 40% de los puntos (elementos) de la
relación Y caen sobre este grupo. La sumatoria de todos los pesos da como resultado la
unidad (100%).
De manera complementaría también se dispone de una tabla llamada model que
contiene las estadísticas del sistema como son el número de dimensiones tomadas en
consideración, el número de grupos, el número de elementos o puntos, el promedio del
error y la diferencia del promedio del error. La diferencia del promedio del error
consiste en la diferencia del promedio del error calculado anteriormente contra el nuevo
error obtenido, debido a la reubicación de los centroides de cada cluster. La tabla model
en nuestro ejemplo es la siguiente:
d k n I avg_q dif_avg_q
5 2 5 3 0.3 0.2
Tabla 7. Tabla model.
En este caso los valores de esta tabla nos indica que la relación analizada tiene 5
dimensiones que se ha decidido agrupar en 2 grupos, donde la cantidad de elementos
(puntos) es 5, que hasta el momento se han realizado 3 iteraciones en el algoritmo, el
promedio del error es 0.3 y la diferencia del promedio del error es de 0.2.
4. Estos tres últimos valores son muy importantes ya que ayudan a determinar en que
momento debe el algoritmo detenerse. El algoritmo se puede terminar cuando se haya
realizado un número prefijado de iteraciones o bien, cuando la diferencia del promedio
del error tienda a 0 (o que ya no cambie); se puede prefijar un límite para este valor.
Por último, se define la relación YNN como la relación que contiene todos los
elementos (puntos) de Y representados por su índice o clave primaria respectiva y el
valor del grupo al cual fueron asignados. Por ejemplo, si se tiene la siguiente tabla
YNN:
I J
1 1
2 2
3 1
4 2
5 2
Tabla 8. Ejemplo de tabla YNN.
Esta nos índica que el elemento número uno de nuestra relación Y está en el grupo 1.
Para nuestro ejemplo, esta tabla nos indica que tanto las hamburguesas como los
refrescos (elementos 1 y 3) están el grupo 1 definido como saludable; mientras que en el
grupo 2 definido como menos saludable se encuentran los elementos de papas, helado y
malteada.
Proceso
Para el desarrollo del algoritmo se han tomado tres índices que indican la relación entre
las tablas y sus elementos. Dichos índices ayudan a relacionar tablas y agilizar en cierta
medida los procesos de E/S tal y como se muestra a continuación:
Índice Rango Descripción
i 1 … n Número de puntos (elemento)
j 1 … k Número de grupo
l 1 … d Número de dimensión
Tabla 9. Nomenclatura de los índices empleados.
Se define la operación de transposición T como la lectura de un valor en forma de
columna a la lectura en forma de fila. Por ejemplo, si se realizará la transposición o
matriz transpuesta de la relación W (ver tabla 4), definida como Wt sería la siguiente:
k1 k2
Valor 0.
4
0.6
Tabla 10. La transposición de W definida como Wt.
Se define como X1, … Xk a los subconjuntos de Y que pertenecen a cada grupo. Donde
se cumple la siguiente propiedad Xj ^ Xj’ = 0 si j < > j’; es decir, ningún elemento de Y
5. se encuentra agrupado en dos o más grupos distintos. Al unir los subconjuntos X1, … ,
Xk se obtiene Y.
La parte medular del algoritmo consiste en el cálculo de la distancia euclidiana entre los
puntos (elementos) y un valor de referencia (centroide) para cada grupo. En base a esta
distancia se agrupan los elementos en donde se obtenga la distancia más corta de los
centroides.
La distancia euclidiana se calcula con la siguiente fórmula:
d(yi, Cj) = (yi - Cj)T
(yi - Cj) = ∑d
l=1 (yli – Clj)2
En donde nos dice que la distancia del punto yi con respecto al centroide Cj es igual a la
diferencia entre yi y Cj transpuesta por la diferencia de yi y Cj. De modo generalizado, la
fórmula se expresa como la sumatoria al cuadrado de las diferencias de los puntos y los
centroides en cada dimensión.
Para dejar en claro este concepto, se tomará un ejemplo de una relación Y con dos
dimensiones, ya que hasta tres dimensiones es posible graficar y que dicha gráfica sea
entendida sin problemas.
De la relación Y se tomarán las dimensiones d1 y d2 por lo que nuestra tabla de ejemplo
será la siguiente:
D1 d2
N1 10 0
N2 5 3
N3 0 0
N4 0 1
N5 4 2
Tabla 11. Tabla Y de ejemplo para el cálculo de dimensiones.
Si se quisiera calcular la distancia que hay entre el punto 1 (elemento n1) y el centroide
1 (C1) se aplicaría la fórmula:
d(y1 – c1) = (y1 – c1)T
(y1 – c1) = ∑2
l=1(yl1,cl1) = (y11 – C11)2
+ (y21 –
C21)2
En esta parte destacan dos puntos fundamentales. El primero de ellos, consiste en que
no se han definidos los valores que contendrán los centroides de cada grupo para cada
una de las dimensiones. La forma más fácil de implementarla consiste en tomar los
valores de manera aleatoria. En este algoritmo así se han determinado los puntos
tomando en cuenta muestras (‘samples’) en la tabla Y de un elemento. Otra opción
distinta a esta circunstancia, podría ser el considerar los primeros valores de la tabla
YH, en caso de que no se contará con una manera de obtenerlos de manera aleatoria, lo
importante es establecer los que en primera instancia serán los centroides, los cuales
pueden variar según se vaya ejecutando el algoritmo.
6. En este caso se ha tomado en cuenta que se tienen dos grupos, y se han determinado los
centroides iniciales como sigue:
k1 K2
d1 3 8
d2 2 2
Tabla 12. Tabla C de centroides para el cálculo de distancias.
El otro punto consiste en que al obtener los valores del punto (elemento) en la tabla Y se
necesita acceder por fila, mientras que en la tabla C y en el resto de las demás tablas se
accede por columna, por lo que se necesita cambiar todas las tablas para que se adapte a
la forma de Y o cambiar Y. Por razones de rendimiento como se explica en el artículo
que se tomo como base, se optó por cambiar Y por lo que para la implementación del
algoritmo, se tiene una nueva tabla Y transpuesta denominada YV, la cual tiene en las
filas las dimensiones y en las columnas los puntos. Por lo que la nueva tabla YV
quedaría de la siguiente forma:
n1 n2 n3 n4 n5
D1 10 5 0 0 4
D2 0 3 0 1 2
Tabla 13. Ejemplo de tabla YV.
Se puede notar que la tabla YV obtenida de la transposición de Y tendrá muchos
atributos (columnas) a medida del número de puntos o elementos contenidos en la tabla
Y. Esto es poco práctico para tablas con demasiados puntos, por lo que una mejor
implementación de la tabla YV es la siguiente:
i l Valor
1 1 10
1 2 0
2 1 5
2 2 3
3 1 0
3 2 0
4 1 0
4 2 1
5 1 4
5 2 2
Tabla 14. Tabla YV optimizada.
Siguiendo la fórmula las distancias son las siguientes:
d(y1,C1) = (10-3)2
+ (0-2) 2
= 49 + 4 = 53
d(y1,C2) = (10-8)2
+ (0-2)2
= 4 + 4 = 8
d(y2,C1) = (5-3)2
+ (3-2)2
= 4 + 1 = 5
d(y2,C2) = (5-8)2
+ (3-2)2
= 9 + 1 = 10
d(y3,C1) = (0-3)2
+ (0-2)2
= 9 + 4 = 13
d(y3,C2) = (0-8)2
+ (0-2)2
= 64 + 4 = 68
d(y4,C1) = (0-3)2
+ (1-2)2
= 9 + 1 = 10
d(y4,C2) = (0-8)2
+ (1-2)2
= 64 + 1 = 65
7. d(y5,C1) = (4-3)2
+ (2-2)2
= 1 + 0 = 1
d(y5,C2) = (4-8)2
+ (2-2)2
= 16 + 0 = 16
Estos valores que se obtienen, se almacenan en la tabla YD que tiene como filas la llave
primaria el índice del punto (elemento) el índice del grupo y la distancia en el plano. La
tabla YD de nuestro ejemplo es la siguiente:
i k Distancia
1 1 53
1 2 8
2 1 5
2 2 10
3 1 13
3 2 68
4 1 10
4 2 65
5 1 1
5 2 16
Tabla 15. Tabla de distancias YD.
Con los valores mínimos de la distancia se llena la tabla YNN, la cual en este caso
tendría los valores que se muestran a continuación. Estos valores indican en primer
instancia a que grupo pertenece cada punto (elemento) de Y.
i J
1 2
2 1
3 1
4 1
5 1
Tabla 16. Tabla YNN obtenida de la ejecución del algoritmo.
En la figura 1, se muestra como quedan asignados los grupos de los elementos (puntos)
con los centroides calculados. En el primer grupo están aquellos elementos que tienen
menos proteína y vitaminas, y el grupo dos los que tienen mayor proteína y vitamina.
En este análisis se puede observar que aunque se tienen dos dimensiones, la de mayor
peso o importancia es la de proteína que determina el grupo, la dimensión vitamina no
es tan relevante debido a que los elementos tienen valores semejantes.
8. Gráfica de la relación Y
0
0.5
1
1.5
2
2.5
3
3.5
0 1 2 3 4 5 6 7 8 9 10 11
d1 (Proteína)
d2(Vitamina)
Elementos
Centroides
Figura 1. Agrupación de los elementos de la relación Y definida en este ejemplo.
Los pasos del algoritmo en general son los siguientes:
1. Configuración.- Consiste en crear y cargar los datos de entrada.
2. Inicialización.- Inicializar los centroides.
3. Paso E.- Computar las k distancias por punto yi.
4. Paso E.- Encontrar el centroide más cercano Cj para cada punto yi.
5. Paso M.- Actualizar los pesos, centroides y varianzas: W, C y R.
6. Paso M.- Actualizar la tabla de seguimiento del progreso de k-means (model).
7. Repetir los pasos 3 a 6 hasta que el algoritmo converja.
A través de los ejemplos que se han descrito, se han determinado la mayoría de los
pasos del algoritmo, a continuación sólo se describirán aquellos pasos omitidos y
aquellos que necesitan de mayor explicación.
Para el cálculo de los centroides iniciales es necesario disponer una tabla temporal que
almacene los centroides iniciales, a dicha tabla se ha denominado CH (de CHorizontal)
por que se obtiene de YH al sacar una muestra aleatoria (un punto) para cada grupo por
lo que siguiendo el ejemplo definido anteriormente, CH quedaría de la siguiente forma:
k d1 d2
1 5 3
2 0 1
Tabla 17. Ejemplo de tabla CH.
Los valores de esta tabla se obtuvieron al azar al tomar como muestra el punto 2 y 4. De
aquí se obtiene la tabla C con su transposición por lo que se obtendría la tabla C como
sigue:
k1 k2
d1 5 0
d2 3 1
Tabla 18. Tabla C obtenida de CH.
9. El cálculo de la distancia euclideana tiene una complejidad de O(dkn) lo que un
procedimiento altamente costoso en tiempo de CPU para valores demasiados grande,
sobre todo de n. Este se calcula realizando una sumatoria de los campos valor de la tabla
YV y C reunidas por medio de su índice de dimensiones.
Para encontrar el centroide más cercano para un punto determinado se necesitan dos
pasos. Primero, calcular la distancia mínima de todos los puntos para cada grupo, dichas
distancias se calculan en la tabla YD; segundo, la distancia mínima se obtiene a partir de
estar almacenando el índice del punto y su grupo en la tabla YNN.
Para actualizar los valores en el paso M, se necesita actualizar la tabla de pesos,
centroides y varianza; W, C y R respectivamente.
La tabla de pesos se actualiza siempre con la cuenta de todos los puntos que estén sobre
un grupo determinado en la tabla YNN. Posteriormente se divide el valor obtenido por
el total de puntos (elementos) disponibles en la tabla model.
La tabla de centroides se actualiza con el promedio de todos los valores de los puntos
que se encuentran en el mismo grupo en una dimensión en especial.
La tabla R de varianzas se obtiene al sacar el promedio de la diferencia del valor del
punto y el nuevo valor calculado para el centroide para todas las dimensiones del grupo
en el que está el elemento (punto).
Para finalizar, en cada iteración se debe actualizar la tabla modelo. Se incrementa el
número de iteraciones en uno por cada vez que se ejecuten los pasos E y M del
algoritmo, y el valor del promedio de la diferencia del error, el cual se obtiene de la
sumatoria de multiplicar el valor de la varianza de cada grupo por su peso
correspondiente.
La tabla modelo puede utilizarse para determinar el momento en el que se debe detener
la ejecución del algoritmo, ya sea tomando en cuenta el numero de iteraciones
efectuadas, o considerando la diferencia entre el promedio de la diferencia de error de la
iteración anterior con respecto a la última.
Algoritmo optimizado
Se ha realizado algunas mejoras para aumentar la velocidad de ejecución del algoritmo
y disminuir la carga de trabajo ocasionada por las consultas necesarias.
Para aumentar la velocidad de procesamiento al realizar los cálculos de las estadísticas
se implementaron tres nuevas tablas denominadas N, M y Q. N es de dimensiones k*1;
mientras que M y Q son d*k y son análogas a W, C y R en dimensiones. Nj almacena el
número de puntos que están contenidos en un grupo en particular (Nj = |Xj|). Mj
almacena la sumatoria de dichos puntos (Mj = ∑yi Є Xj yi) y Qj representa la sumatoria de
los cuadrados de los puntos que se encuentran en el grupo j (Qj = ∑ yiЄXj yi
T
yi ).
A través de estas nuevas matrices el cálculo de W, C y R se simplifica
considerablemente. Wj = Nj / ∑k
j=1 Wj; Cj = Mj / Nj, Rj = Qj /Nj – Cj
T
Cj.
10. Se puede observar que tener varias tablas por separadas no es óptimo, debido a esto se
remplazó dichas tablas por una sola, en este caso NMQ (l, j, N, M, Q) y también WCR
(l, j, W, C, R). Lo importante de juntar N, M y Q en la misma tabla, es que con una
misma instrucción se pueden actualizar todos sus valores.
Mientras que en WCR se asigna primeramente a W un valor de cero, después,
dependiendo del grupo k del que se trate, W guardará la cantidad de elementos que
coincidan en ese grupo, asignándole el valor de N correspondiente; se debe inicializar
con cero al principio, en el supuesto de que un grupo quede vacío, ya que después se
debe dividir tal valor entre la cantidad de elementos total, y si no se efectuará así, se
generarían errores o inconsistencias. Todas las demás operaciones del algoritmo
estándar se dejan igual.
Código SQL para Oracle 9i
El código que se muestra a continuación corresponde con las instrucciones SQL
que se siguen para desarrollar el algoritmo k-means; se toma como ejemplo una tabla Y
con 3 campos; además, se van a crear dos grupos.
El primer paso consiste en preparar las tablas que se van a utilizar.
/* inicialización */
DROP TABLE YH;
CREATE TABLE YH AS (
SELECT
sum(1) over(order by 1 rows unbounded preceding) AS i
,y ,y2 ,y3 FROM Y );
DROP TABLE model;
CREATE TABLE model(
d INT,k INT,n float,iteration INT,avg_q real,dif_avg_q real);
INSERT INTO model
SELECT 3,2,count(*),0,0.0,0.0 FROM YH;
De tabla modelo se almacenan la cantidad de campos y grupos que se van a
considerar, la cantidad de elementos que se van a agrupar, el primer cero indica el
numero de iteraciones efectuadas y los siguientes valores representan el promedio del
error y la diferencia del promedio del error, respectivamente.
DROP TABLE YV;
CREATE TABLE YV ( i int,l INT,val REAL);
INSERT INTO YV SELECT i,1,y1 FROM YH;
...
INSERT INTO YV SELECT i,3,y3 FROM YH;
DROP TABLE W;
11. CREATE TABLE W (j int,w float);
DROP TABLE C;
CREATE TABLE C(l int,j int,val real);
DROP TABLE R;
CREATE TABLE R(l int,j int,val real);
DROP TABLE YD;
CREATE TABLE YD (i int,j int,distance real);
En este primer paso, en CH se toman como “muestras” los centroides iniciales
los primeros dos elementos de YH. Estos centroides irán cambiando, según vaya
ejecutándose el algoritmo.
DROP TABLE CH;
CREATE TABLE CH(j INT,y1 REAL,y2 REAL,y3 REAL);
INSERT INTO CH SELECT 1,y1,y2,y3 FROM YH where i='1';
INSERT INTO CH SELECT 2,y1,y2,y3 FROM YH where i='2';
INSERT INTO C
SELECT 1,1,y1 FROM CH WHERE j=1
...
UNION SELECT 3,1,y3 FROM CH WHERE j=1;
INSERT INTO C
SELECT 1,2,y1 FROM CH WHERE j=2
...
UNION SELECT 3,2,y3 FROM CH WHERE j=2;
Ahora se calculan las distancias mínimas y se encuentran los centroides más
cercanos.
/* paso E*/
DELETE FROM YD;
INSERT INTO YD SELECT i,j,sum( power((YV.val - C.val),2))
FROM YV,C WHERE YV.l=C.l GROUP BY i,j;
DROP TABLE YNN;
CREATE TABLE YNN AS( SELECT YD.i,YD.j
FROM YD,( SELECT i,min(distance) AS mindistance FROM YD GROUP BY
i)YMIND
WHERE YD.i=YMIND.i and YD.distance=YMIND.mindistance);
Por último, se actualizan las tablas W, C y R, así como model, donde se van
registrando los cambios.
/* Paso M*/
DELETE FROM W;
INSERT INTO W SELECT j,count(*) FROM YNN GROUP BY j;
UPDATE W SET w=w/(select n from model);
12. DELETE FROM C;
INSERT INTO C SELECT l,j,avg(YV.val) FROM YV,YNN
WHERE YV.i=YNN.i GROUP BY l,j;
DELETE FROM R;
INSERT INTO R SELECT C.l,C.j,avg( power((YV.val-C.val),2) )
FROM C,YV,YNN WHERE YV.i=YNN.i and YV.l=C.l and YNN.j=C.j GROUP BY
C.l,C.j;
UPDATE model set dif_avg_q=abs((SELECT sum(W*R.val) FROM R,W WHERE
R.j=W.j)-avg_q);
UPDATE model SET avg_q=(SELECT sum(W*R.val) FROM R,W WHERE
R.j=W.j),iteration=iteration+1;
Los pasos E y M deben ejecutarse hasta alcanzar el número de iteraciones u
obtener una diferencia de error deseada. Estos valores son observables en la tabla
model.
Para la versión optimizada, el código es muy semejante, variando un poco el
cálculo de los pasos E y M. Los cambios se muestran a continuación.
Dentro del paso de inicialización, en vez de crear las tablas W, C y R se crea una
sola, WCR. Además, la inicialización que se hacia en C, ahora se efectúa en WCR
DROP TABLE WCR;
CREATE TABLE WCR (l int,j int,W real,C real,R real);
INSERT INTO WCR
SELECT 1,1,0,y1,1 FROM CH WHERE j=1
...
UNION SELECT 3,1,0,y3,1 FROM CH WHERE j=1;
INSERT INTO WCR
SELECT 1,2,0,y1,1 FROM CH WHERE j=2
...
UNION SELECT 3,2,0,y3,1 FROM CH WHERE j=2;
El paso E ahora de calcula de esta manera. En esta ocasión, los cálculos
estadísticos se llevan sobre NMQ.
/* E step */
DELETE FROM YD;
INSERT INTO YD SELECT YV.i,WCR.j,sum( power((YV.val-WCR.C),2) )
FROM YV,WCR WHERE YV.l=WCR.l GROUP BY YV.i,WCR.j;
DROP TABLE YNN;
CREATE TABLE YNN AS (SELECT YD.i,YD.j
FROM YD,(SELECT i,min(distance) AS mindistance FROM YD GROUP BY i)YMIND
WHERE YD.i=YMIND.i and YD.distance=YMIND.mindistance);
13. DELETE FROM NMQ;
INSERT INTO NMQ
SELECT l,j,sum(1.0) AS N,sum(YV.val) AS M,sum(YV.val*YV.val) AS Q
FROM YV,YNN WHERE YV.i=YNN.i
GROUP BY l,j;
El paso M ahora utiliza a NMQ para actualizar a WCR. W se debe actualizar por
cada grupo que se desea formar.
UPDATE WCR SET
W=(select N from NMQ, WCR WHERE (NMQ.l=WCR.l AND NMQ.j=WCR.j)AND
NMQ.j=1 group by N) WHERE WCR.j=1;
...
UPDATE WCR SET
C=CASE WHEN (select N from NMQ, WCR WHERE (NMQ.l=WCR.l AND
NMQ.j=WCR.j)AND NMQ.j=1 group by N)>0
THEN (select M/N from NMQ WHERE NMQ.l=1 AND NMQ.j=1)
ELSE C END
R=CASE WHEN (select N from NMQ, WCR WHERE (NMQ.l=WCR.l AND
NMQ.j=WCR.j)AND NMQ.j=1 group by N)>0
THEN (select Q/N - power((M/N),2) from NMQ WHERE NMQ.l=1 AND NMQ.j=1)
ELSE R END
WHERE WCR.l=1 AND WCR.j=1;
...
UPDATE WCR SET
C=CASE WHEN (select N from NMQ, WCR WHERE (NMQ.l=WCR.l AND
NMQ.j=WCR.j)AND NMQ.j=2 group by N)>0
THEN (select M/N from NMQ WHERE NMQ.l=3 AND NMQ.j=2)
ELSE C END
R=CASE WHEN (select N from NMQ, WCR WHERE (NMQ.l=WCR.l AND
NMQ.j=WCR.j)AND NMQ.j=2 group by N)>0
THEN (select Q/N - power((M/N),2) from NMQ WHERE NMQ.l=3 AND NMQ.j=2)
ELSE R END
WHERE WCR.l=3 AND WCR.j=2;
UPDATE WCR SET W=W/(select n from model);
UPDATE model set dif_avg_q=abs((SELECT sum(W*R) FROM WCR)-avg_q);
UPDATE model SET avg_q=(SELECT sum(W*R) FROM WCR),iteration=iteration+1;
De igual manera, los pasos E y M se repiten hasta que el algoritmo converja.
Referencias
[1] Carlos Ordonez, “Programming the K-means Clustering Algorithm in SQL”.
Publicado en KDD’04, del 22 al 25 de agosto de 2004, Seattle, Washington, USA.