Analítica de Negoci en el núvol: crea el teu propi quadre de comandament

 

El Cloud Computing segueix obrint-se camí en el món de les aplicacions empresarials, i cada vegada s'emmagatzemen més dades en el núvol. Els orígens de dades clàssics per a les plataformes de Business Intelligence i de Analítica de negoci són les bases de dades, però cada vegada tenim més dades desestructurades, no controlades per un motor relacional, als quals s'accedeix a través d'API's i aplicacions, i que també cal analitzar perquè poden ser de vital importància per al negoci.

 

Al portal developerWorks, d'IBM, he llegit l'article Cloud business analytics: Write your own dashboard, de Noah Gift, que explica la importància de dur l'Analítica de Negoci també al núvol, i aporta un petit exemple pràctic de com fer-ho.

L'he trobat tan interessant que m'ha semblat bona idea traduir-lo, així que aquí el teniu:

 

Analítica de negoci en el núvol: Crea el teu propi dashboard


Resum
L'analítica de negoci i la computació en el núvol són temes candents i complexos, i la idea de combinar pot semblar complicada. Però no es preocupi: L'autor aporta una visió simple a la complexa història de l'analítica de negoci, il·lumina els punts en comú que tots dos comparteixen, explica els beneficis que un entorn de cloud computing pot portar a la analitica de negoci (i viceversa) , i proporciona un exemple per escriure la seva pròpia aplicació d'analítica de negoci en el núvol.


 

En alguna de les seves etapes, l'avaluació de qualsevol nova tecnologia o procés ha d'incloure la pregunta "Què m'ofereix?" - Al final, qué aporta realment l'analítica de negoci en "el núvol"?

Ara les empreses de tecnologia, els dissenyadors de sistemes i els desenvolupadors han promogut diverses definicions lleugerament diferents de Cloud Computing, però gairebé totes coincideixen en aquests punts:

  1. La computació en el núvol permet a aplicacions i fins i tot sistemes complets separats compartir recursos de computació tradicionals.
  2. La computació en el núvol permet a sistemes i aplicacions compartir dades.
  3. La computació en el núvol aprofita el concepte de distribució per mantenir una alta disponibilitat.
  4. La computació en el núvol de TI té més avantatges respecte a les TI tradicionals, com la seva capacitat d'ampliació de recursos segons les necessitats i experiència de la organització interna de TI.
  5. Per a les companyies, un dels majors beneficis del Cloud Computing és la possibilitat d'ampliar l'abast dels productes, serveis o missatges d'una organització d'una manera planificada, i coneixent el cost per endavant.
  6. Els majors beneficis del cloud computing per als usuaris de productes i serveis són la capacitat de proporcionar accés transparent a programes on-demand.
  7. La computació en el núvol pot ser interna, externa, o una combinació d'ambdues.
  8. La majoria de les persones ja estan participant de la computació en el núvol cada vegada que inicien sessió a Internet ... només que és possible que no ho sàpiguen.

Definició #2: és la definició del criteri relacionat amb el cloud computing i analítica des d'una enorme biblioteca de dades interessants situats en el núvol, o ja disponibles per a sistemes en el núvol. L'estructura del núvol ofereix un contenidor de dades pràcticament il·limitat, l'entrada ideal per a una eina d'anàlisi.

I ja que les dades hi són fora, el pas següent és aprendre a analitzar on viuen. En aquest article, mostrarem com crear un quadre de comandament per començar amb l'analítica de negoci en el núvol, però en primer lloc, vull definir el meu concepte d'analítica de negocis.

 

Qué vol dir analítica de negocis?

Business Analytics pot significar moltes coses, igual que Cloud Computing. En el codi inclòs en aquest article, mostrarem un exemple analitzant correus electrònics d'atenció al client pel "to" de la correspondència de servei al client.

M'agrada utilitzar dos exemples per apuntar una definició d'analítica de negoci:

  • Robert McNamara i la introducció d'anàlisi de sistemes en les polítiques públiques (ara conegut com policy analysis).
  • La teoria de jocs, la teoria de IA, i l'anàlisi estadística.

McNamara i l'anàlisi de sistemes

L'analítica de negoci en la seva forma actual deu molt a l'esforç pioner de personatges com Robert McNamara, el vuitè secretari de Defensa dels EUA, amb els presidents Kennedy i Johnson, que va utilitzar l'anàlisi quantitativa per ajudar en l'esforç de la Segona Guerra Mundial. En la seva definició més àmplia, l'analítica de negoci és tot - que inclou eines, processos i tècniques - el que proporciona una anàlisi sobre dades de negoci. (D'aquí la part "negoci" d'analítica de negoci; canvia les dades a "científics" o "sociològics" i ja tens anàlisi que corresponen a diferents disciplines. Un mateix marc, diferents E/S).

Majoritàriament el nom de Robert McNamara es coneix per la seva associació amb les tragèdies de la guerra del Vietnam, però el seu llegat és més complex i amb més matisos del que es pot veure al obituari del New York Times com l' "arquitecte d'una guerra fallida. "

Després de rebre un MBA de Harvard en 1939, McNamara va aplicar l'anàlisi quantitativa als esforços de l'exèrcit en la Segona Guerra Mundial per analitzar l'eficiència dels bombarders B-29, com a part d'un equip d'elit anomenat Statistical Control. El 1946 es va unir a Ford com a part d'un equip de "Whiz Kids", que va aconseguir moltes millores amb moderns sistemes de control de gestió. Va ajudar a la tornada de la companyia Ford Motor, i en última instància es va convertir el 1960 en el primer president de Ford que no era de la família.

McNamara és, potser, un exemple de dos èxits potencials de l'analítica - produint rendibilitat efectiva en cost a Ford Motor Company - i la possible fallida de l'analítica de negoci - en no incloure certs conjunts d'entrada fonamentals en l'anàlisi de com dur a terme la guerra al Vietnam.

 

Jocs i anàlisi estadística

Hi ha programari d'analítica de negoci que fa ús de la teoria de la intel·ligència artificial (en forma de mineria de dades), la teoria de jocs (com el dilema del presoner i l'equilibri de Nash), i l'anàlisi estadística.

Intel·ligència artificial

Quan es combina la disciplina de la intel·ligència artificial amb la informàtica, s'arriba a la pràctica de la mineria de dades, que és simplement el procés d'extracció de patrons a partir de les dades.

Això no és un concepte nou. Aquí hi ha dos precursors de la mineria de dades que es van utilitzar per descobrir patrons en les dades:

El teorema de Bayes (Thomas Bayes, 1702-1761) mostra la relació entre dues probabilitats condicionals (la probabilitat de A donada l'ocurrència de B), que cadascuna és el revers de l'altra.

L'anàlisi de regressió (primera forma, el mètode de mínims quadrats, Adrien-Marie Legendre en 1805, Carl Friedrich Gauss en 1809) conté les tècniques per a la modelització i anàlisi de diverses variables (on una és depenent i els altres són independents), ideal per a la creació de models de predicció basats en patrons trobats en les dades.

La tecnologia informàtica (com la computació al núvol) ha incrementat la capacitat de recopilar, emmagatzemar, accedir i manipular dades. Gràcies als enormes volums de dades disponibles, l'anàlisi directe / manual de dades ara gairebé sempre es millora amb tècniques automatitzades de manipulació de dades d'algun nivell, com les xarxes neuronals, clustering, algoritmes genètics, arbres de decisió, i el suport de màquines vectorials.

A part del que és obvi -la mineria de dades permet a les persones ampliar la quantitat de dades utilitzades en l'anàlisi mitjançant el descobriment de patrons en grans quantitats de dades - per als objectius relacionats amb l'analítica de negoci en el núvol, el component de mineria de dades d'IA va molt bé per ajudar l'investigador a incorporar i integrar diferents tipus de dades, per exemple, tant dades estructurades com a dades no estructurats. (Per a més detalls, consulteu la publicació d'IBM Big Sheets technology.)

 

La teoria de jocs

La teoria de jocs és la branca de la matemàtica aplicada que tracta de captar matemàticament el comportament en situacions estratègiques on l'èxit d'un individu en la presa de decisions depèn de les decisions que altres participants prenguin.

"El dilema del presoner" és potser el problema més famós de la teoria de jocs. Es tracta d'un escenari en què l'estratègia "dominant" condueix a un resultat no òptim per a tots els involucrats. Això també es relaciona lleugerament amb el problema anomenat la "tragèdia dels comuns" en què l'interès propi assegura un resultat pitjor per a la comunitat.

Molts problemes de la teoria de jocs s'apliquen directament als processos de negoci. Per exemple:

  • "El dilema del presoner" demostra per què dues persones no haurien de cooperar, encara que tots dos tenen el major interès en fer-ho. En l'exemple clàssic, dos sospitosos són detinguts per la policia. La policia té proves suficients per a una condemna, i, després d'haver separat als presos, visita a cada un d'ells per oferir el mateix tracte. Si un dóna testimoni de l'acusació contra l'altre (no coopera) i l'altre roman en silenci (coopera), el desertor queda lliure i el còmplice silenciós rep els 10 anys de presó. Si ambdós romanen en silenci, els dos presos són condemnats a només sis mesos de presó per un càrrec menor. Si cada un traeix l'altre, cadascun rep una sentència de cinc anys. Cada presoner ha de triar trair a l'altre o romandre en silenci.
  • El "equilibri de Nash" (després de l'inventor John Forbes Nash) és una solució d'un joc entre dos o més jugadors en el qual se suposa que cada jugador coneix les estratègies d'equilibri dels altres jugadors i cap jugador pot guanyar canviant només la seva pròpia estratègia de manera unilateral. Si cada jugador ha triat una estratègia i cap jugador es pot beneficiar canviant la seva estratègia mentre els altres jugadors mantenen les seves, el conjunt actual d'opcions estratègiques i els guanys corresponents constitueixen un equilibri de Nash.
  • La "tragèdia dels comuns" és un dilema que sorgeix de la situació en què diversos individus, que actuen independentment, i única i racionalment atenent als seus propis interessos, finalment esgotaran un recurs compartit limitat fins i tot quan està clar que no interessa a llarg termini a cap de les persones.

El poder real que la teoria de jocs aporta a l'analítica en el núvol està en el paper del desenvolupament d'algoritmes en línia, algoritmes que poden processar peça per peça en sèrie (en l'ordre en què arriba l'entrada) sense tenir disponible l'entrada completa a l'inici del procés. Utilitzant aquest tipus d'algoritme, poden sorgir patrons a partir de l'anàlisi de dades existents i dades addicionals per es puguin prendre decisions ja en les primeres etapes de l'anàlisi, i després de revisar a mesura que hi hagi més dades disponibles.

L'anàlisi estadística

Els llenguatges de programació estadística, simplement definits com aquells dissenyats per a aplicacions estadístiques, són lògicament un important component de l'analítica de negoci en qualsevol entorn.

L'estàndard de facto per a l'anàlisi estadística programàtic és el llenguatge de programació R. R és una implementació del llenguatge de programació S en combinació amb la lèxica en entorns semàntics inspirat en Scheme; és part del projecte GNU i el seu codi font està disponible lliurement sota la llicència pública general de GNU. Les versions binàries precompilades estan disponibles per a diversos sistemes operatius. Es poden manipular objectes R directament amb C i codi Java.

El llenguatge de R proporciona moltes llibreries útils per a la realització d'anàlisis estadístics en conjunts de dades grans i petits.

Segons l'expert David Mertz - L'entorn de R no està destinat a ser un llenguatge de programació en si, sinó més aviat una eina interactiva per explorar conjunts de dades, incloent la generació d'una àmplia gamma de representacions gràfiques de les propietats de les dades .- "Statistical programming with R" series

 


Una qüestió oberta que afecta qualsevol nou desenvolupament de programari, és si té sentit la solució "faci-ho vostè mateix" o la de comprar fora de la plataforma. No respondré a aquesta pregunta en aquest article.

Ara donem una ullada a com començar en Python el teu propi programa de quadre de comandament analític.

  

Crea el teu propi quadre de comandament analític

En aquest exemple, es mostra com llegir un compte de correu electrònic, transformar les dades en parts etiquetades de l'informe, i després utilitzar aquesta informació per crear frases de tres paraules que s'ordenen per nombre d'ocurrències. (El codi Python està disponible en downloads.)

Finalment, aquestes dades es mostren en un gràfic utilitzant l'API de visualització de Google. A causa de que l'exemple de codi és llarg, es descompon en passos i s'explica cada etapa per separat. Podeu descarregar l'exemple del codi complet i fer la prova amb el vostre propi servidor de correu electrònic (com Gmail).

La figura 1 mostra la canalització del processament de dades.

  

Figura 1. El camí del processament de dades 

La tubería de proceso de datos

 

  1. Accés al servidor de correu electrònic. El Llistat 1 mostra cóm. 

    Llistat 1. Accés programat al seu programa de correu electrònic 

     

    import email
    
    username = "myaccount@example.com"
    password = "asecretpassword"
    server = "imap.example.com"
    folder = "INBOX"
    
    def connect_inbox():
    "Grab Data"
    mail=imaplib.IMAP4_SSL(server, 993)
    mail.login(username,password)
    mail.select(folder)
    status, count = mail.search(None, 'ALL')
    try:
    for num in count[0].split():
    status, data = mail.fetch(num, '(RFC822)')
    yield email.message_from_string(data[0][1])
    finally:
    mail.close()
    mail.logout()
    
    def get_plaintext(messages):
    """Retrieve text/plain version of message"""
    for message in messages:
    for part in message.walk():
    if part.get_content_type() == "text/plain":
    yield part
    
  2. En aquest fragment de codi, es realitza una connexió a un servidor IMAP i cada missatge és lliurat de nou a una altra funció que busca en el missatges contingut de tipus text pla, i després el torna.

  3. Transformació i etiquetatge de les parts de dades del missatge utilitzant Python Natural Language Toolkit. La llibreria Natural Language Toolkit s'utilitza per transformar el text en brut en frases, després en paraules, i finalment, en parells de paraules etiquetades amb funció en l'oració, com a verb, substantiu, etc. Aquesta informació s'utilitza llavors per crear una frase de tres paraules que consisteix en un verb a cada costat de la paraula "TO"; quan aquest patró coincideix, es retorna la frase de tres paraules juntament amb el sencer 1, perquè pugui ser sumarizada més tard (Llista 2). 

    Llistat.2. Etiquetatge i la transformació 

    Import nltk 

    def transform(messages): """Transforms data by tokensizing and tagging parts of speech""" for message in messages: sentences = nltk.sent_tokenize(str(message)) sentences = [nltk.word_tokenize(sent) for sent in sentences] sentences = [nltk.pos_tag(sent) for sent in sentences] yield sentences

    def three_letter_phrase(messages): """Yields a three word phrase with TO""" for message in messages: for sentence in message: for (w1,t1), (w2,t2), (w3,t3) in nltk.trigrams(sentence): if (t1.startswith('V') and t2 == 'TO' and t3.startswith('V')): yield ((w1,w2,w3), 1)

  4. Sumarització de les dades. Una sèrie de funcions utilitza l'estil MapReduce per extreure, particions, i després sumarizar l'aparició d'aquestes frases de tres paraules (Llista 3). Tingueu en compte que això està escrit en una forma totalment seqüencial, encara que amb una mica d'esforç podrien ser convertides per funcionar més en paral·lel. Per obtenir informació més detallada sobre MapReduce, consulteu Resources . 

    Llistat 3. Sumarizar les dades utilitzant MapReduce 

    def mapper():
        messages = connect_inbox()
        text_messages = get_plaintext(messages)
        transformed = transform(text_messages)
        for item,count in three_letter_phrase(transformed):
            yield item, count

    def phrase_partition(phrases): partitioned_data = defaultdict(list) for phrase, count in phrases: partitioned_data[phrase].append(count) return partitioned_data.items()

    def reducer(phrase_key_val): phrase, count = phrase_key_val return [phrase, sum(count)]

    def start_mr(mapper_func, reducer_func, processes=1): pool = Pool(processes) map_output = mapper_func() partitioned_data = phrase_partition(map_output) reduced_output = pool.map(reducer_func, partitioned_data) return reduced_output

     

  5. Ordenació dels resultats i utilizació de Google Chart API per mostrar els resultats en un gràfic circular (Llistat 4). 

    Llistat 4. Visualitzar els resultats 

    page_template = """
    <html>
    <head>
    <!--Load the AJAX API-->
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">

    // Load the Visualization API and the piechart package. google.load('visualization', '1', {'packages':['corechart']});

    // Set a callback to run when the Google Visualization API is loaded. google.setOnLoadCallback(drawChart);

    // Callback that creates and populates a data table, // instantiates the pie chart, passes in the data and // draws it. function drawChart() {

    // Create our data table. var data = new google.visualization.DataTable(); data.addColumn('string', '3 Word "To" Phrase'); data.addColumn('number', 'Occurances in Inbox'); data.addRows(%s

    );

    // Instantiate and draw our chart, passing in some options. var chart = new google.visualization.PieChart(document.getElementById('chart_div')); chart.draw(data, {width: 1000, height: 700, is3D: true, title: 'Customer Service Email Phrases'}); }</script></head>

    <body><!--Div that will hold the pie chart--><div id="chart_div"></div></body></html>

    """

    def print_report(sort_list, num=25): results = [] for items in sort_list[0:num]: phrase = " ".join(items[0]) result = [phrase, items[1]] results.append(result) page = page_template % results print page

    def main(): phrase_stats = start_mr(mapper, reducer) sorted_phrase_stats = sorted(phrase_stats, key=itemgetter(1), reverse=True) print_report(sorted_phrase_stats)

    Aquest últim pas de visualització és més fàcil del que sembla perquè els resultats de l'informe són simplement una cadena reemplaçada en una plantilla d'HTML i JavaScript. Com es pot veure a la Figura 2, els resultats es mostren netament en un gràfic circular.

Figura 2.  Els resultats en un gràfic circular 

Los resultados en un gráfico circular
 

Conclusió

En aquest article s'han repassat algunes de les teories que hi ha després de l'anàlisi quantitativa i anàlisi de negocis i es proporciona a més un exemple de codi de prova del concepte. Analitzant el "to" i "humor" de les converses, aquest exemple pot convertir fàcilment en un indicador de l'estat d'ànim dels clients per a una empresa que proporciona serveis al client. Amb una mica més de treball, pot connectar-se a qualsevol altre motor de lògica que es pot encadenar a un altre motor, i així successivament.

L'anàlisi de dades en el núvol és una ineludible futura direcció d'Internet; així com els negocis es dirigeixen de manera creixent cap a solucions en el núvol, la necessitat de crear o comprar programari d'analítica de negoci no farà sinó augmentar. Espero que aquest article li hagi donat algunes idees sobre el que pot desenvolupar per al seu negoci, ja sigui creant o comprant.

 


Font: Cloud business analytics: Write your own dashboard