jueves, 23 de febrero de 2017

HTML Gráfico de Barras



Gráfico de Barras con drilldown - Highcharts









<!DOCTYPE HTML>
<html>
     <head>
         <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
         <title>Highcharts Example</title>
         <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
         <style type="text/css">
${demo.css}
         </style>
          <script type="text/javascript">
$(function (){
    // Create the chart
    // http://jsfiddle.net/msxLqbt3/
    $("#container").highcharts({
    chart: {
        type: 'column'
    },
    title: {
        text: 'Browser market shares. January, 2015 to May, 2015'
    },
    subtitle: {
        text: 'Click the columns to view versions. Source: <a href="http://netmarketshare.com">netmarketshare.com</a>.'
    },
    xAxis: {
        type: 'category'
    },
    yAxis: {
        title: {
            text: 'Total percent market share'
        }

    },
    legend: {
        enabled: false
    },
    plotOptions: {
        series: {
            borderWidth: 0,
            dataLabels: {
                enabled: true,
                format: '{point.y:.1f}%'
            }
        }
    },

    tooltip: {
        headerFormat: '<span style="font-size:11px">{series.name}</span><br>',
        pointFormat: '<span style="color:{point.color}">{point.name}</span>: <b>{point.y:.2f}%</b> of total<br/>'
    },

    series: [{
        name: 'Brands',
        colorByPoint: true,
        data: [{
            name: 'Microsoft Internet Explorer',
            y: 56.33,
            drilldown: 'Microsoft Internet Explorer'
        }, {
            name: 'Chrome',
            y: 24.03,
            drilldown: 'Chrome'
        }, {
            name: 'Firefox',
            y: 10.38,
            drilldown: 'Firefox'
        }, {
            name: 'Safari',
            y: 4.77,
            drilldown: 'Safari'
        }, {
            name: 'Opera',
            y: 0.91,
            drilldown: 'Opera'
        }, {
            name: 'Proprietary or Undetectable',
            y: 0.2,
            drilldown: null
        }]
    }],
    drilldown: {
        series: [{
            name: 'Microsoft Internet Explorer',
            id: 'Microsoft Internet Explorer',
            data: [
                [
                    'v11.0',
                    24.13
                ],
                [
                    'v8.0',
                    17.2
                ],
                [
                    'v9.0',
                    8.11
                ],
                [
                    'v10.0',
                    5.33
                ],
                [
                    'v6.0',
                    1.06
                ],
                [
                    'v7.0',
                    0.5
                ]
            ]
        }, {
            name: 'Chrome',
            id: 'Chrome',
            data: [
                [
                    'v40.0',
                    5
                ],
                [
                    'v41.0',
                    4.32
                ],
                [
                    'v42.0',
                    3.68
                ],
                [
                    'v39.0',
                    2.96
                ],
                [
                    'v36.0',
                    2.53
                ],
                [
                    'v43.0',
                    1.45
                ],
                [
                    'v31.0',
                    1.24
                ],
                [
                    'v35.0',
                    0.85
                ],
                [
                    'v38.0',
                    0.6
                ],
                [
                    'v32.0',
                    0.55
                ],
                [
                    'v37.0',
                    0.38
                ],
                [
                    'v33.0',
                    0.19
                ],
                [
                    'v34.0',
                    0.14
                ],
                [
                    'v30.0',
                    0.14
                ]
            ]
        }, {
            name: 'Firefox',
            id: 'Firefox',
            data: [
                [
                    'v35',
                    2.76
                ],
                [
                    'v36',
                    2.32
                ],
                [
                    'v37',
                    2.31
                ],
                [
                    'v34',
                    1.27
                ],
                [
                    'v38',
                    1.02
                ],
                [
                    'v31',
                    0.33
                ],
                [
                    'v33',
                    0.22
                ],
                [
                    'v32',
                    0.15
                ]
            ]
        }, {
            name: 'Safari',
            id: 'Safari',
            data: [
                [
                    'v8.0',
                    2.56
                ],
                [
                    'v7.1',
                    0.77
                ],
                [
                    'v5.1',
                    0.42
                ],
                [
                    'v5.0',
                    0.3
                ],
                [
                    'v6.1',
                    0.29
                ],
                [
                    'v7.0',
                    0.26
                ],
                [
                    'v6.2',
                    0.17
                ]
            ]
        }, {
            name: 'Opera',
            id: 'Opera',
            data: [
                [
                    'v12.x',
                    0.34
                ],
                [
                    'v28',
                    0.24
                ],
                [
                    'v27',
                    0.17
                ],
                [
                    'v29',
                    0.16
                ]
            ]
        }]
    }
});
       var json = {};

       json.title = title;
       json.subtitle = subtitle;
       json.xAxis = xAxis;
       json.yAxis = yAxis;
       json.tooltip = tooltip;
       json.legend = legend;
       json.series = series;

       $('#container').highcharts(json);
});
</script>
    </head>
    <body>
<script src="https://code.highcharts.com/stock/highstock.js"></script>
<script src="https://code.highcharts.com/stock/modules/exporting.js"></script>
<script src="https://code.highcharts.com/highcharts.js"></script> 
<script src="https://code.highcharts.com/modules/drilldown.js"></script> 
<script src="https://code.highcharts.com/modules/data.js"></script>
<div id="container" style="height: 400px; min-width: 310px"></div>
    </body>
</html>









Conexion a Mongo desde PHP



https://www.youtube.com/watch?v=9gEPiIoAHo8

https://docs.mongodb.com/
https://docs.mongodb.com/ecosystem/drivers/
Descargar el release que se tenga instalado  y copiarlo en la carpeta
C:\wamp64\bin\php\php7.0.10\ext
Adicionar a php.ini en la seccion de extensiones de windows la siguiente linea y luego reiniar el servicio
extension=php_mongodb.dll

verificar que aparezca activo en http://localhost/?phpinfo=1

viernes, 17 de febrero de 2017

webscraping

webscraping



import requests
import time

def adquirir_datos():
    pagina=requests.get("http://www.fxstreet.es/cotizaciones/divisas-tiempo-real/?id=usdollar4%3busdmxn%3busdbsd%3busdcrc%3busddop%3busdkyd%3busdbbd%3busdjmd")
    texto=pagina.text

    lugar_max=texto.find("<td id=\"high_3212273\">")
    inicio_max=lugar_max+22
    final_max=inicio_max+7

    dato_max = texto[inicio_max:final_max]
    dato_max = dato_max.replace(",",".")
    max = float(dato_max)

    lugar_act=texto.find("<td id=\"last_3212273\">")
    inicio_act=lugar_act+22
    final_act=inicio_act+7

    dato_act = texto[inicio_act:final_act]
    dato_act = dato_act.replace(",",".")
    actual = float(dato_act)

    return max,actual

max_actual,cambio_actual =    adquirir_datos()

status =True
while status:
    max_nuevo,cambio_actual=adquirir_datos()
    if max_actual>max_nuevo:
        print("Hay un nuevo máximo",max_actual)
        max_actual = max_nuevo
    else:
        print("El máximo no ha cambiado es de ",max_actual)
        print("El cambio actual es de ",cambio_actual)
    time.sleep(10)

    pass

jueves, 16 de febrero de 2017

Conexion a Mongo desde Python

Conexion a Mongo desde Python

#pip install mongo

import pymongo
from pymongo import MongoClient
client = MongoClient()
db = client.test
# Insertar
db.users.insert_one({"name":"Roberto A."})
db.users.insert_many([{"name":"Juan"},{"name":"Pedro"}])
result = db.users.insert_one(
    {"name":"Juana","addres":"Carrera 36","zipcode":"10012","building":"1536"}
)

# ver Crear y consultar
print("Insertar y consultar"+"\n")
cursor=db.users.find()
for document in cursor:
    print(document)

db.users.update_one({"name":"Pedro"},{"$set":{"name":"Cristobal"}})
# Ver Modificar
print("Actualizar"+"\n")
cursor = db.users.find()
for document in cursor:
    print(document)

# Borrar
result = db.users.delete_one({"name":"Roberto A."})
print(result.deleted_count)
# Ver Borrar
print("Borrar"+"\n")
cursor=db.users.find()
for document in cursor:
    print(document)

Mongo

Instalación de Mongo y comandos básico





# Descargar mongodb community (la última versión)
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/
ver la version de windows desde el prompt
wmic os get caption
ver la arquitectura
wmic os get osarchitecture
1. https://www.mongodb.com/download-center#community
2. md c:\mongodb  # Escogerla como ruta de instalación
3. Ejecutar el instalador en custom para cambiar la ruta
4. md data
5. md data\db
6. md data\log

7. Cree el archivo dentro de la carpeta c:\mongodb
mongod.cfg
systemLog:
    destination: file
    path: c:\data\log\mongod.log
storage:
    dbPath: c:\data\db

8. "C:\mongodb\bin\mongod.exe" --config "C:\mongodb\mongod.cfg" --install
9. Adicionar a las variable path la ruta C:\mongodb\bin\

******************

10. mongod  Iniciar el servicio
11. mongo Conecta otra consola a la base de datos en otra terminnal ejecutar
12. db  //ver las bases de datos en uso actual(test)
13. use test
14. show dbs
help
db.stats()

Definir una colección llamada users  //
db.users.save( {name:"sandra"} )
db.users.save( [{name:"sandra"},{name:"andrea"}] )
db.users.find()
db.users.find( {name: "andrea"} )
db.users.update({name:"sandra"},{name:"andrea"})
db.users.remove({name:"sandra"})
db.users.remove({})

""" Metodo 2
use pruebaBD  // Base de datos Crea la base de datos  db
a={nombre:"juan"}
b={edad:50}
db.personas.insert(a)   //Coleccion personas  Esquema: db/coleccion
show dbs
db.personas.find()  // objetos  documentos
show collections
"""

martes, 14 de febrero de 2017

PYTHON Speech Recognition

Speech Recognition

# https://www.havenondemand.com/account/api-keys.html Obtener apikey
# https://dev.havenondemand.com/apis/recognizespeech#try Probar directamente en la pagina
import requests
apikey = "f8d28801-7b85-4734-bd6e-96a8c2d41319"
ligaVideo = "https://cdn1.capacitateparaelempleo.org/vidhosting/7w36zIa3we0.mp4"
#
lenguaje = "es-LA"
#lenguaje = "es-ES"
ligaPeticion = "https://api.havenondemand.com/1/api/async/recognizespeech/v1?url={0}&languaje={1}&apikey={2}"
ligaStatus = "https://api.havenondemand.com/1/job/status/{0}?apikey={1}"
ligaPeticion = ligaPeticion.format(ligaVideo,lenguaje,apikey)
print(ligaPeticion)

jsonRespuesta=requests.get(ligaPeticion).json()
print(jsonRespuesta)
print((jsonRespuesta)["jobID"])

# Obtner el Id de la tarea ejecutando el scrip y guardarlo en una variable
jobId = jsonRespuesta["jobID"]
ligaStatus = ligaStatus.format(jobId,apikey)
jsonRespuesta = requests.get(ligaStatus).json()
print(jsonRespuesta)
print((jsonRespuesta)["status"])

while True:
    status=jsonRespuesta["status"]
    if (status=="finished"):
        print(jsonRespuesta["actions"][0]["result"]["document"][0]["content"])
        break
    if (status=="failed"):
        print(jsonRespuesta["actions"][0]["errors"])
        break
    jsonRespuesta=requests.get(ligaStatus).json()
 

PYTHON FACEBOOK

PYTHON FACEBOOK



"'''
Se requiere obtener
1 Token
2 Id

sudo pip uninstall facebook
sudo pip uninstall facebook-sdk
sudo pip install facebook-sdk


facebook for developers
Herramientas y ayuda
Explorador de la API Graph

https://developers.facebook.com/tools/explorer/145634995501895/
Obtener token
Enviar para conseguier ID
'''

import facebook
import requests
token = "EAACEdEose0cBALuinBsE2zpZCozUtVge0lia5138JKTg9CZCk8WxmqqZCtaVcQWfqk7VT3TBMlr7PurhpSlV6erMINLJJC2G61iCeTSUvViCR794QIi35fZBQbZBVJ9NHFS8pwi3ZB96HKf32bFfBf5ukCzkGJ10eTCh4DOD8ZBDrFeaTMmkG09"
graph = facebook.GraphAPI(token)
cantidadComentarios = 100
Pageid = "10154271672698867"
cuentaLikes= 0
ListaComents = []
bandera = False
coments = graph.get_connections(Pageid,"feed")


while True:
    try:
        for coment in coments["data"]:
            lstComent=[]
            try:
                mensaje=coment["message"]
            except:
                continue
            cuentaLikes=0
            print(coment["from"]["name"])
            print(mensaje)
            while True:
                try:
                    for like in coment["likes","data"]:
                        cuentaLikes=cuentaLikes+1
                        coment[likes]=requests.get(coment["likes"]["paging"][next]).json()
                except:
                    break
        print(cuentaLikes)
        lstComent.append(mensaje)
        lstComent.append(cuentaLikes)
        ListaComents.append(lstComent)
        cuentaComentarios=cuentaComentarios+1
        print("")
        if(cuentaComentarios>=cantidadComentarios):
            bandera=True
            break
        coments=requests.get(coments["paging"]["next"]).json()
    except:
        break









Facebook Graph API Explorer (Tutorial) 

 

https://www.youtube.com/watch?v=F6I3ZrySRYE

JSON

Qué es JSON y cómo se utiliza

Es un formato simple de intercambio de datos. Se ha popularizado por su ligereza y facilidad de uso.

Los objetos inician { que continen propiedades con valores (cadenas de caracteres, números, listas u otros objeots)
Almacenar usuario con los paramentros: nombre, status y números de usuarios.
propieadad: usuarios

Ejemplo:

{"usuarios":[{"nombre":"Juan", "status":"online"},{"nombre":"Maria", "status":"offline"}],"cuentaUsuarios":2}

 Crear un archivo con nombre usuarios.json

o

{
"usuarios":[
{"nombre":"Juan", "status":"online"},
{"nombre":"Maria", "status":"offline"},
],
"cuentaUsuarios":2}

Uso en PYTHON

import json

fich = open("usuarios.json")
line = fich.readline()
print (line)
fich.close()
data = json.loads(line)
print(data)
usuarios = data["usuarios"]
print(usuarios)
print(data["usuarios"])
print(data["usuarios"][1]["nombre"])
print(data["usuarios"][1]["status"])

for usuario in usuarios:
    print(usuario["nombre"]+" , "+usuario["status"])


viernes, 10 de febrero de 2017

PYTHON GEOLOCALIZACION

https://developers.google.com/maps/documentation/javascript/examples/map-simple?hl=es-419


Obtener la clave API de Google

Claves de API

Interfaz de Programación de Apliaciones

Serie de instruciones que le indican al sistema como satisfacer la petición del usuario y vuelve con una respuesta. Diferentes disposivos o aplicaciones pueden comunicarse entre ellas.

SELECT

LIST

UPDATE

Cada servicio web de Google Maps requiere una clave de API o un id. de cliente. Las claves de API están disponibles de forma gratuita con una cuenta de Google en Google Developers Console. Para generar una clave de servidor para tu proyecto:
  1. Visita Google Developers Console e inicia sesión con una cuenta de Google.
  2. Selecciona un proyecto existente o crea un proyecto nuevo.
  3. Haz clic en Enable an API.
  4. Busca la API y configura su estado en “On”. Las bibliotecas de cliente para Google Maps Services acceden a las siguientes API:
    • Google Maps Directions API
    • Google Maps Distance Matrix API
    • Google Maps Elevation API
    • Google Maps Geocoding API (Convert addresses into geographic coordinates (geocoding), which you can use to place markers or position the map. This API also allows you to convert geographic coordinates into an address (reverse geocoding).
    •  Google Maps Roads API
    • Google Maps Time Zone API
  5. Una vez que habilites las API, haz clic en Credentials en el panel de navegación izquierdo de la Consola para desarrolladores.
  6. En "Public API access", haz clic en Create new Key.
  7. Selecciona Server Key.
  8. Si quieres limitar las solicitudes a una dirección IP específica, hazlo ahora.
  9. Haz clic en Create.
Tu clave de API debe tener 40 caracteres y comenzar con AIza.
Importante: Debes mantener esa clave de forma secreta en tu servidor.


Instalación y código fuente (Python)

pip install -U googlemaps
 
Este ejemplo usa la Google Maps Geocoding API.
# Replace the API key below with a valid API key.
gmaps
= googlemaps.Client(key='YOUR_API_KEY')
# Geocoding and address
geocode_result
= gmaps.geocode('1600 Amphitheatre Parkway, Mountain View, CA')
# Look up an address with reverse geocoding
reverse_geocode_result
= gmaps.reverse_geocode((40.714224, -73.961452))
# Request directions via public transit
now
= datetime.now()
directions_result
= gmaps.directions("Sydney Town Hall",
                                     
"Parramatta, NSW",
                                     mode
="transit",
                                     departure_time
=now)


Google Maps and Local Search APIs in Python


http://py-googlemaps.sourceforge.net/


gmplot

Plotting data on Google Maps, the easy way. A matplotlib-like interface to generate the HTML and javascript to render all the data you'd like on top of Google Maps. Several plotting methods make creating exploratory map views effortless. Here's a crash course:

https://github.com/vgm64/gmplot

matplotlib and basemap on Python 3.4.

https://www.youtube.com/watch?v=DfNeBoHEY-k&t=703s

Build a simple GIS web application using GeoDjango and Google Maps

http://invisibleroads.com/tutorials/geodjango-googlemaps-build.html


http://qingkaikong.blogspot.com.co/2016/02/plot-earthquake-heatmap-on-basemap-and.html
http://qingkaikong.blogspot.com.co/2016/02/query-usgs-catalog-online-and-plot.html
 

 

TUTORIAL MACHINE LEARNING

MÉTODO 1
Se requiere tener instalado:
Python (https://www.python.org/downloads/) 
//En este momento scipy solo funciona con la version 3.4, superiores no.
1. Instalar python 3.4
2 Instalar numpy   // Obligatorio para scikit
   pip install numpy
3 Descargar scipy de sourceforge/project, pero la versión para 3.4   //Obligario para scikit
4 Correr el ejecutable descargado
5. Instalar matplotlib 
   pip install matplotlib 
5 Instalar scikit
   pip install -U scikit-learn 
         o
pip install sklearn
MÉTODO 2
Instalar winpython que viene con las librerias ya instaladas, solo verifique que en las variables del sistema de windows este el directorio donde se instalo.
https://sourceforge.net/projects/winpython/

********************************************

PROGRAMA 1

WeightTextureLabel
150gBumpyOrange
170gBumpyOrange
140gSmoothApple
130gSmoothApple
Tenemos dos maneras de determinar la fruta: el peso y la textura. Estas son ambas características y una buena característica le ayudará a discriminar la fruta. La última columna en cada fila es una etiqueta, que es lo que identifica la fruta. Para nosotros, sólo hay dos posibilidades: Apple o Orange. Cada fila de la tabla es un ejemplo y toda la tabla es la información de entrenamiento. Cuantos más datos pongamos en los datos de entrenamiento, mejor será el clasificador.

Permite convertir esa tabla en algún código Python. Vamos a crear dos variables: características y etiquetas. Las características serán la información en las dos primeras columnas (las características) y las etiquetas contendrán los datos en la última columna. Otra forma de pensar en esto es que las características son la entrada al clasificador y las etiquetas son nuestra salida deseada.

from sklearn import tree
features = [[140, 1], [130, 1], [150, 0], [170, 0]]
labels = [0, 0, 1, 1]
clf = tree.DecisionTreeClassifier()
clf = clf.fit(features, labels)
print (clf.predict([[160, 0]]))

http://www.techtrek.io/machine-learning-part-1/


PROGRAMA 2
# importando pandas, numpy y matplotlib
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# importando los datasets de sklearn
from sklearn import datasets
boston = datasets.load_boston()
boston_df = pd.DataFrame(boston.data, columns=boston.feature_names)
boston_df['TARGET'] = boston.target
boston_df.head()
print (boston_df.head())


REFERNCIAS
http://relopezbriega.github.io/blog/2015/10/10/machine-learning-con-python/

https://www.youtube.com/watch?v=OGxgnH8y2NM&list=PLQVvvaa0QuDfKTOs3Keq_kaG2P55YRn5v




miércoles, 8 de febrero de 2017

1.1 BIG DATA Fundamentos, terminología y conceptos

DEFINICIÓNES

BIG DATA:
Es un campo orientado al análisis, procesamiento y almacenamiento de grandes colecciones de datos que, con frecuencia, provienen de distintas fuentes.
Las soluciones de Big Data pueden procesar grandes cantidades de datos que son recibidos a distintas velocidades, son muy variados y tienen numerosas incompatibilidades.

DATASET:
Grupos de datos relacionados. Cada grupo o miembro es llamado datum y comparte el mismo conjunto de atributos o propiea<de los otros miembore en el mismo dataset.
Una colección de archivos de imágenes en un directorio.
Tweets almacenados en un archivo plano
Un resumen de filas de una tabla almacenado en un archivo con formato CSV
Observaciones del clima almacenadas como archivos XML.

BENEFICIOS

Los resultados del procesamiento de la solución de Big Data pueden generar una gran variedad
de conocimientos y beneficios, por ejemplo:

  • Optimización operativa
  • Inteligencia accionable
  • Identificación de nuevos mercados
  • Predicciones precisas
  • Detección de errores y fraudes
  • Registros más detallados
  • Mejor toma de decisiones
  • Descubrimientos importantes

ANALISIS DE DATOS (DATA ANALYSIS):
Proceso de examinar datos para encontrar echos, relaciones, patrones, explicaciones y/o tendencias. El objetivo final del análisis de datos (Data Analysis) es respaldar la toma de decisiones.

ANALITICA DE DATOS (DATA ANALYTICS):
La analítica es la disciplina encargada comprender los datos, analizándolos mediante una
variedad de técnicas científicas y herramientas automatizadas, enfocada en el descubrimiento
de patrones y correlaciones ocultos.
Por lo general, el proceso de analítica implica filtrar grandes cantidades de datos sin procesar
ni estructurar, con el fin de extraer información significativa que pueda servir como datos de
entrada para identificar patrones, enriquecer los datos empresariales actuales o realizar
búsquedas a gran escala.
En general, la analítica facilita la toma de decisiones determinadas por datos, con un respaldo científico, de manera que estas decisiones puedan estar basadas en datos concretos y no solamente en la experiencia o la intuición.

  • En el ámbito científico, la analítica puede ayudar a identificar la causa de un fenómeno y mejorar la precisión de las predicciones.
  • En los entornos orientados a los negocios, los resultados de la analítica pueden disminuir
  • los costos operativos y facilitar la toma estratégica de decisiones.
  • En los entornos basados en servicios —como en las organizaciones del sector público—, la analítica puede ayudar a mejorar el enfoque orientado en la prestación de servicios de alta calidad, disminuyendo los costos.


Análisis Descriptivo: Responde a preguntas sobre eventos que ya ocurrieron. Los reportes son generalmente estáticos y muestran datos históricos que son presentados en forma de data grids o charts.


• ¿Cuál fue el volumen de ventas en los últimos 12 meses?

• ¿Cuál es el número de llamadas de apoyo recibidos según la clasificación de la gravedad y la localización geográfica?

• ¿Cuál es la comisión mensual obtenido por cada agente de ventas?
 







Análisis de Diagnóstico: Ayudan a determinar la causa de un fenómeno que ocurrió en el pasado usando preguntas que se enfocan en la razón del comportamiento del fenómeno.
Proveen más valor que el análisis descriptivo, pero requieren mas avanzadas habilidades.
Son vistos via herramientas de visualización interactiva, que permiten a los usuarios determinar patrones y tendencias.

• ¿Por qué las ventas del 2T menos que las ventas del 1T?

• ¿Por qué ha habido más llamadas de apoyo procedentes de la región oriental que occidental de la región?
 • ¿Por qué hubo un aumento en las tasas de reingreso de los pacientes durante los últimos tres meses?  



Análisis Predictivo: El objetivo es predecir un resultado basado en la historia conocida. Por ejemplo, si los clientes responderán positiva o negativamente a acciones comerciales determinadas. Predecir la probabilidad de un cliente de abandonar el servicio o producto basado en el estudio de las características de los clientes que ya abandonaron


Este tipo de análisis de implica el uso de grandes conjuntos de datos que constan de datos internos y externos y de diversas técnicas de análisis de datos. Proporciona un mayor valor y requiere un conjunto de habilidades más avanzadas que las dos analíticas descriptivos y de diagnóstico. Las herramientas utilizadas complejidades estadísticos de base generalmente abstractos, proporcionando interfaces de front-end fáciles de usar, como se muestra 



• ¿Cuáles son las probabilidades de que un cliente incumplimiento de un préstamo si han perdido un pago mensual?

• ¿Cuál será la tasa de supervivencia de los pacientes si se administra el medicamento B en lugar del medicamento A?

• Si un cliente ha comprado los productos A y B, ¿cuáles son las posibilidades de que también la compra del producto C?


 


Análisis Prescriptivo: Se encarga de  recomendar mejores acciones, basado en los resultados de modelos predictivos y descriptivos; y además presentando el potencial impacto de los resultados de las acciones recomendadas



• Entre los tres fármacos, que uno proporciona los mejores resultados?

• ¿Cuándo es el mejor momento para el comercio una acción en particular?

Varios resultados se calculan y se sugiere el mejor curso de acción para cada resultado. El enfoque se desplaza de motivos de asesoramiento y puede incluir la simulación de diferentes escenarios.


Este tipo de análisis de datos internos incorpora con datos externos. Los datos internos pueden incluir datos de ventas actuales e históricos, información de clientes, datos de productos y reglas de negocio. Los datos externos pueden incluir datos de medios sociales, las previsiones meteorológicas y gobierno- producido datos demográficos. analíticas prescriptivos implican el uso de reglas de negocio y grandes cantidades de datos internos y externos para simular los resultados y prescribir el mejor curso de acción, como se muestra 





BIG ANALITICS
Examinar datos masivos para encontrar patrones, correlaciones, tendencias de mercados y preferencias de los clientes.
Un analista de datos apoya la toma de decisiones en una organización al hacer esto genera inteligencia de negocios, sin embargo se dedica a datos estructurados y normalmente fuera de linea. Big data evoluciona la inteligencia de negocios porque brinda el cruce de lo convencional con datos no estructurados en tiempo real, mejorando la velocidad del análisis lo que permite a los directores actuar de inmediato para:
  • Reducir costos de operación
  • Mejorar la toma de decisiones 
  • Ofrecer nuevos productos y servicios
Oportunidades de ganancias, mejoras de servicios y genera eficiencia en las operaciones para dar ventaja sobre la competencia.

Científico de datos son los encargados de desarrollar modelos




Data lake: Es un repositorio central de datos brutos en sus formato natural, que facilita la colección de datos en vairias formas y esquemas, usualmente o object blobs ( Objects, objetos binarios grande) o archivos.

Teniendo esta arquitectura se tienen dos opociones: filtrar una parte del Data lake y manejar los datos procesados en un datawarehouse o desde la plataforma de los closter con herramientas que manejen lotes de información.

Web Scraping
Tecnicas para obtener datos de paginas web
Cuando se necesita datos de una página se copiar, pero requieren limpieza
Regex : para paginas web que no estan en formato html
Algoritmos de mineria de datos: Programas que detentan scripts y extraen su contenido
Parseo de html: Con ayuda de ciertos lenguajes recupera el contenido de paginas html
Aplicaciones o complementos: Son complementos o programas dedicados a hacer web scraping
Puede ser util para complementar analisis de negocios o tener más datos a utilizar en las aplicaciones







INTELIGENCIA DE NEGOCIOS (BI):
Es el proceso de comprender el funcionamiento de una empresa —para mejorar la toma de decisiones— al analizar los datos externos y los datos generados por sus procesos empresariales.
En la Inteligencia de negocios (BI), la analítica es aplicada a grandes cantidades de datos en toda la empresa.

Los resultados del análisis pueden ser usados ​​por la administración para dirigir el negocio en un esfuerzo para corregir los problemas detectados o de otra manera mejorar el desempeño organizacional. BI se aplica al análisis de grandes cantidades de datos en toda la empresa, que por lo general se ha consolidado en un almacén de datos de la empresa para ejecutar consultas analíticas

La salida de BI puede ser la superficie de un panel de control que permite a los administradores para acceder y analizar los resultados y potencialmente refinar las consultas analíticas para estudiar más a fondo los datos.



INDICADORES CLAVE DE DESEMPEÑO (KPI)
Es una forma de medir el éxito dentro de un contexto particular. Los KPI están estrechamente relacionados con los objetivos estratégicos de una empresa y generalmente son utilizados para:

  • Identificar áreas problemáticas, con el fin de adoptar medidas correctivas
  • Lograr el cumplimiento normativo

Cada KPI está basado en un indicador cuantificable que es identificado y acordado de antemano.



TIPOS DE BASES DE DATOS

SQL(ENTIDAD RELACIÓN)
Relacionales
Orientadas a objetos
Re lacionales orientadas a objetos
NOSQL
  •   Clave Valor ( Colección de pares de claves y valores)
  •   Documentos (Datos semistrucuturadas JSON, BSON (binario y el doble de tipo de datos que JSON)
  •   Columnas (Diseñadas para realizar consultas y manejar grande volumenes)
  •   Familias por columnas (cada fila puede tener una config diferente y cada registro es una columna de datos
  •   Grafos (La informacion se presenta como nodos en un grafo con relaciones entre sus aristas)
 Ventajas: El volumen de los datos crecen rapidamente, escalabilidad, demanda elevada por los    usuarios, el esquema de los datos no es homogeneo, codigo abierto.
 Desventas (soporte tecnico limitado, tecnologia nueva muchas actualizaciones ymejoras, herramientos no compatibles, pocos administradores y desarrolladores.

 

CARACTERÍSTICAS (5Vs)

VOLUMEN (VOLUME):
Múltiplos de bytes
Sistema Internacional (decimal)ISO/IEC 80000-13 (binario)
Múltiplo (símbolo)SIMúltiplo (símbolo)ISO/IEC
kilobyte (kB)103kibibyte (KiB)210
megabyte (MB)106mebibyte (MiB)220
gigabyte (GB)109gibibyte (GiB)230
terabyte (TB)1012tebibyte (TiB)240
petabyte (PB)1015pebibyte (PiB)250
exabyte (EB)1018exbibyte (EiB)260
zettabyte (ZB)1021zebibyte (ZiB)270
yottabyte (YB)1024yobibyte (YiB)280
Véase también: nibble • byte • sistema octa
  • Cualquier canción ocupa entre 2 y 9 MB
  • Los DVD tienen 4,4 GB de capacidad. Podríamos poner dentro unas 4 películas de buena calidad o 700-800 fotos con una calidad aceptable y cabrían unas 1000 canciones.  
  • En un disco duro de nuestro ordenador que ronda los 500 GB de media (los hay de más y menos capacidad) cabrían unas 400 películas de buena calidad, unas 102.400 fotos, 100.000 canciones y 1.048.576 de libros.  
  •  
  • Cada dia se generan 2.5 exabytes de datos (250 millones de DVDs)
  • Facebook 500 Tera bytes/día 
  • Telescopio SKA 10 petabytes/hora
  • twitter 100.000 tweets / min


VELOCIDAD (VELOCITY):
VARIEDAD (VARIETY)
1.- Web and Social Media: Incluye contenido web e información que es obtenida de las redes sociales como Facebook, Twitter, LinkedIn, etc, blogs.
2.- Machine-to-Machine (M2M): M2M se refiere a las tecnologías que permiten conectarse a otros dispositivos. M2M utiliza dispositivos como sensores o medidores que capturan algún evento en particular (velocidad, temperatura, presión, variables meteorológicas, variables químicas como la salinidad, etc.) los cuales transmiten a través de redes alámbricas, inalámbricas o híbridas a otras aplicaciones que traducen estos eventos en información significativa.
3.- Big Transaction Data: Incluye registros de facturación, en telecomunicaciones registros detallados de las llamadas (CDR), etc. Estos datos transaccionales están disponibles en formatos tanto semiestructurados como no estructurados.
4.- Biometrics: Información biométrica en la que se incluye huellas digitales, escaneo de la retina, reconocimiento facial, genética, etc. En el área de seguridad e inteligencia, los datos biométricos han sido información importante para las agencias de investigación.
5.- Human Generated: Las personas generamos diversas cantidades de datos como la información que guarda un call center al establecer una llamada telefónica, notas de voz, correos electrónicos, documentos electrónicos, estudios médicos, etc.

https://www.ibm.com/developerworks/ssa/local/im/que-es-big-data/Big-Data-Types.jpg

  • Datos estructurados: datos que tienen bien definidos su longitud y su formato, como las fechas, los números o las cadenas de caracteres. Se almacenan en tablas. Un ejemplo son las bases de datos relacionales y las hojas de cálculo.
  •  
  • Datos no estructurados: datos en el formato tal y como fueron recolectados, carecen de un formato específico. No se pueden almacenar dentro de una tabla ya que no se puede desgranar su información a tipos básicos de datos. Algunos ejemplos son los PDF, documentos multimedia, correos electrónicos o documentos de texto. Texto e imagenes.




  • Datos semiestructurados: datos que no se limitan a campos determinados, pero que contiene marcadores para separar los diferentes elementos. Es una información poco regular como para ser gestionada de una forma estándar. Estos datos poseen sus propios metadatos semiestructurados que describen los objetos y las relaciones entre ellos, y pueden acabar siendo aceptados por convención. Un ejemplo es el HTML, el XML o el JSON.  OPENDATA, twiter



VERACIDAD (VERACITY): Aumento de la incertidumbre respecto de la veracidad o calidad de los datos disponibles. Pueden ocasionar decisiones incorrectas- Falta de datos, ruido alteraciones

VALOR (VALUE): Es la medida de utilidad de los datos seleccionados para nuestros objetivos finales.



VARIABILITY
VISUALIZATION



MINERÍA DE DATOS:
Se refiere a la ciencia de recopilación de todos los datos del pasado y luego la búsqueda de patrones en los datos. Una vez que se encuentran, se validan mediante la aplicación de los patrones detectados a nuevos subconjuntos de datos. Es el proceso de buscar a través de conjuntos de datos existentes, relaciones entre ellos.


ECOSISTEMA DE BIG DATA
Manejo y almacenamiento de datos
 Fuentes de datos: Estructurados y no estructurados
 Nucleo de Big Data: Herramientas de administración de datos estructuras (ETL, Workflow y Systems tools) y arquitectura que proceso los datos distribuidos
 Administración de los datos operacionales: Datos operativos procesados y sin procesar
Análisis y aplicaciones
 Análitica de Big Data: Ambiente de desarrolo y los productos de análisis.
 Usuarios: Finales o Analistas de negocios
Flujo de trabajo - Proceso de aprovechamiento de datos masivos:


Analítica de Datos






















COMPONENTES DE BIG DATA
El ciclo de vida:
  • Registro y recolección de datos de varias fuentes
  • Filtro, enriquecimiento y clasificación de los datos
  • Análisis, modelado y predicción de los datos
  • Entrega y visualización de los datos

INFRAESTRUCTURA
CLUSTER
Conjuntos de computadores indepentientes pero interconectas entre si. A cada una se le conoce como nodo. Tienen las siguientes ventajas trabajo en paralelo (tolerancia a posibles fallas), alto rendimiento, soporte de altas cargas de trabajo y escalabilidad.
SOFTAWARE

SISTEMA DE ARCHIVOS DISTRIBUIDOS (DFS)
Hace que los datos en el cluster sehan divididos en bloques y sehan distribuidos en el mismo.
NUCLEO:: Mapea (cada elemento se convierte en una tupla) y reduce los datos (toma el conjunto de tupas conbinandolas para hacer un conjunto más pequeños.
Un conjunto de bibliotecas: que hacen que se pueda soportar varios subproyectos.
Componentes auxiliares se utilizan dependiento del caso de uso, apoyan infraestructura, analítica, aplicaciones y obtención de datos de distintas fuentes.


¿Qué es PaaS?

El concepto de Plataforma como Servicio (PaaS, Platform as a Service) es una categoría de servicios cloud que proporciona una plataforma y un entorno que permiten a los desarrolladores crear aplicaciones y servicios que funcionen a través de internet. Los servicios PaaS se alojan en la nube, y los usuarios pueden acceder a ellos simplemente a través de su navegador web.
El modelo PaaS permite a los usuarios crear aplicaciones de software utilizando herramientas suministradas por el proveedor. Los servicios PaaS pueden consistir en funcionalidades preconfiguradas a las que los clientes puedan suscribirse, eligiendo las funciones que deseen incluir para resolver sus necesidades y descartando aquellas que no necesiten. Así, los paquetes pueden variar desde un sencillo entorno que se maneje con el ratón y no requiera ningún tipo de conocimiento o instalación especial por el lado del usuario, hasta el suministro de opciones de infraestructura para desarrollo avanzado.
La infraestructura y las aplicaciones se gestionan en nombre del cliente, y se ofrece también soporte técnico. Los servicios se actualizan constantemente, mejorando las funcionalidades existentes y añadiendo otras nuevas. Los proveedores de PaaS pueden colaborar con los desarrolladores desde la concepción de sus ideas originales hasta la creación de las aplicaciones, llegando incluso hasta las fases de pruebas e implantación. Y todo eso se consigue utilizando un solo mecanismo gestionado.
Al igual que en la mayoría de las propuestas de servicios cloud, los servicios PaaS suelen facturarse como una suscripción en la que el cliente acaba pagando al final sólo por lo que realmente utiliza. Además, puede beneficiarse de las economías de escala que aporta el hecho de estar compartiendo una misma infraestructura física subyacente entre muchos usuarios, lo que se traduce en una reducción de costes.
Estas son algunas de las funcionalidades que pueden incluirse dentro de una propuesta de PaaS:
  • Sistema operativo
  • Entorno de scripting de servidor
  • Sistema de gestión de base de datos
  • Software de servidor
  • Soporte técnico
  • Almacenamiento
  • Acceso a la red
  • Herramientas de diseño y desarrollo
  • Hosting

¿Qué es IaaS?

El concepto de Infraestructura como Servicio (IaaS, Infrastructure as a Service) es uno de los tres modelos fundamentales en el campo del cloud computing, junto con el de Plataforma como Servicio (PaaS, Platform as a Service) y el de Software como Servicio (SaaS, Software as a Service). Al igual que todos los servicios cloud, IaaS proporciona acceso a recursos informáticos situados en un entorno virtualizado, la"nube" (cloud), a través de una conexión pública, que suele ser internet. En el caso de IaaS, los recursos informáticos ofrecidos consisten, en particular, en hardware virtualizado, o, en otras palabras, infraestructura de procesamiento. La definición de IaaS abarca aspectos como el espacio en servidores virtuales, conexiones de red, ancho de banda, direcciones IP y balanceadores de carga. Físicamente, el repertorio de recursos de hardware disponibles procede de multitud de servidores y redes, generalmente distribuidos entre numerosos centros de datos, de cuyo mantenimiento se encarga el proveedor del servicio cloud. El cliente, por su parte, obtiene acceso a los componentes virtualizados para construir con ellos su propia plataforma informática.
El modelo IaaS coincide con las otras dos modalidades de hosting cloud en que puede ser utilizado por los clientes empresariales para crear soluciones informáticas económicas y fáciles de ampliar, en las cuales toda la complejidad y el coste asociados a la administración del hardware subyacente se externaliza al proveedor del servicio cloud. Si la escala o el volumen de actividad del negocio del cliente fluctúan, o si la empresa tiene previsto crecer, puede recurrir al recurso cloud en el momento y de la manera en que lo necesite, en lugar de tener que adquirir, instalar e integrar hardware por su cuenta.
Estos son varios ejemplos representativos de aplicaciones concretas del modelo IaaS para una gran empresa:
  • Infraestructura corporativa; las redes internas de la empresa, como las clouds privadas y las redes locales virtuales, que utilizan recursos de red y de servidores agrupados en un repertorio común, donde la empresa puede almacenar sus datos y ejecutar las aplicaciones que necesite para su funcionamiento diario. Las empresas en crecimiento pueden ampliar su infraestructura a medida que aumente su volumen de actividad, mientras que las clouds privadas (accesibles sólo para la propia empresa) permiten proteger el almacenamiento y transferencia de los datos delicados que algunas empresas necesitan manejar.
  • Hosting cloud; alojamiento de las webs en servidores virtuales que funcionan sobre recursos comunes materializados físicamente en servidores físicos subyacentes. Una web alojada en una plataforma cloud, por ejemplo, puede beneficiarse de la redundancia que aporta la gigantesca escala de la red de servidores físicos y su escalabilidad en función de la demanda para afrontar cualquier punta inesperada de tráfico en su web.
  • Virtual Data Centers (VDC);  una red virtualizada de servidores virtuales interconectados que puede utilizarse para ofrecer funcionalidades avanzadas alojadas en un entorno cloud, para implementar la infraestructura informática de la empresa, o para integrar todas esas operaciones dentro de una implementación cloud pública o privada.

¿Qué es SaaS?

Con el concepto de Software como Servicio (SaaS, Software as a Service) se describe cualquier servicio cloud en el que los consumidores puedan acceder a aplicaciones de software a través de internet. Esas aplicaciones están alojadas "en la nube" y pueden utilizarse para una amplia variedad de tareas, tanto para particulares como para organizaciones. Google, Twitter, Facebook y Flickr son ejemplos de SaaS, en los cuales los usuarios pueden acceder a los servicios a través de cualquier dispositivo que pueda conectarse a internet. Los usuarios empresariales pueden utilizar aplicaciones para resolver necesidades muy diversas, desde la contabilidad y la facturación hasta el seguimiento de ventas, planificación, control de rendimiento y comunicaciones (por ejemplo, el correo web y la mensajería instantánea).
El modelo SaaS se conoce también a veces como "software a demanda", y la forma de utilizarlo se parece más a alquilar el software que a comprarlo. Con las aplicaciones tradicionales, el software se compra al principio como un paquete, y una vez adquirido se instala en el ordenador del usuario. La licencia del software puede también establecer limitaciones en cuanto al número de usuarios y/o dispositivos en los cuales puede instalarse. Por el contrario, los usuarios del Software como Servicio se suscriben al software, en lugar de comprarlo, generalmente por períodos mensuales. Las aplicaciones se compran y utilizan a través de internet, y los archivos se guardan en la nube, no en el ordenador del usuario.