DEA-sivujen sosiaalisen median suosion mittaaminen JAVA PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.

Sivujen sosiaalisen median suosion mittaaminen DEA: n kanssa JAVA: ssa

Edellisessä artikkelissa olemme keskustelleet Tietojenkäsittelyanalyysi tekniikkaa ja olemme nähneet, kuinka sitä voidaan käyttää tehokkaana ei-parametrisena sijoitusalgoritmina. Tässä blogiviestissä kehitämme JAVA: n Data Envelopment Analysis -toteutuksen ja käytämme sitä arvioidaksemme verkkosivujen ja artikkeleiden sosiaalista mediaa. Koodi on avointa lähdettä (GPL v3 -lisenssin alla), ja voit ladata sen vapaasti Github.

Päivitys: Datumbox Machine Learning Framework on nyt avoimen lähdekoodin ja ilmainen download. Katso paketti com.datumbox.framework.algorithms.dea nähdäksesi, kuinka Data Envelopment Analysis toteutetaan Javalla.

Data Envelopment Analysis -toteutus JAVA: ssa

Koodi on kirjoitettu JAVA: ssa ja se voidaan ladata suoraan Github. Se on lisensoitu GPLv3: lla, joten voit vapaasti käyttää sitä, muokata sitä ja levittää sitä vapaasti.

Koodi toteuttaa Tietojenkäsittelyanalyysi algoritmi käyttää lp_solve-kirjasto ratkaisemaan lineaarisen ohjelmoinnin ongelmat ja käyttää uutettua tietoa Verkko-SEO-analyysi indeksin avulla, jotta voidaan rakentaa yhdistetty sosiaalisen median suosimustieto verkkosivuille niiden osakkeiden perusteella Facebookissa, Google Plusissa ja Twitterissä. Kaikki algoritmin teoreettiset osat on käsitelty edellisessä artikkelissa, ja lähdekoodista löydät yksityiskohtaisia ​​javadoc-kommentteja toteutuksesta.

Seuraavassa on korkean tason kuvaus toteutuksen arkkitehtuurista:

1. lp_solve 5.5 -kirjasto

Eri lineaaristen ohjelmointiongelmien ratkaisemiseksi käytämme avoimen lähdekoodin kirjastoa nimeltä lp_solve. Erityinen lib on kirjoitettu ANSI C: ssä ja käyttää JAVA-kääreä kirjastomenetelmien kutsumiseen. Joten ennen koodin suorittamista sinun on asennettava lp_solve järjestelmääsi. Kirjaston binäärit ovat saatavilla molemmille Linux ja Windows ja voit lukea lisätietoja asennuksesta lp_solve -dokumentaatio.

Varmista, että tietty kirjasto on asennettu järjestelmään, ennen kuin yrität suorittaa JAVA-koodia. Kirjaston asennuksessa ja määrityksessä on ongelmia lp_solve -dokumentaatiossa.

2. DataEnvelopmentAnalysis-luokka

Tämä on DEA-algoritmin toteuttamisen pääluokka. Se toteuttaa julkisen menetelmän nimeltä estEfficiency (), joka ottaa tietueiden kartan ja palauttaa niiden DEA-pisteet.

3. DeaRecord-objekti

DeaRecord on erityinen objekti, joka tallentaa tietueemme tiedot. Koska DEA vaatii syötteen ja lähdön erottamisen, DeaRecord Object tallentaa tietomme erikseen siten, että DEA pystyy käsittelemään niitä.

4. SocialMediaPopularity-luokka

SocialMediaPopularity on sovellus, joka käyttää DEA: ta arvioidakseen sosiaalisen median verkkosivujen suosion Facebook-tykkäyksiinsä, Google + 1: een ja twiitteihinsä. Se toteuttaa kaksi suojattua menetelmää, laskeaPopularity () ja estimaattiPercentiles (), sekä kaksi julkista menetelmää: loadFile () ja getPopularity ().

CalcPopularity () käyttää DEA-toteutusta arvioidakseen sivujen pisteet heidän sosiaalisen mediansa perusteella. AssessPercentiles () -menetelmä saa DEA-pisteet ja muuntaa ne prosenttipisteiksi. Yleensä prosenttipisteitä on helpompi selittää kuin DEA-pisteitä; joten kun sanomme, että sivun suosioarvot ovat 70%, se tarkoittaa, että tietty sivu on suositumpi kuin 70% sivuista.

Jotta voimme arvioida tietyn sivun suosion, meillä on oltava tietojoukko muiden sivujen sosiaalisen median määrillä. Tämä on järkevää, koska jotta voit ennustaa, mikä sivu on suosittu ja mikä ei, sinun on voitava verrata sitä muihin verkkosivuihin. Tätä varten käytämme pientä anonymisoitua näytettä Web SEO Analytics -indeksistä, joka on annettu txt-muodossa. Voit luoda oman tietokannan purkamalla sosiaalisen median lukumäärän useammalta verkkosivulta.

LoadFile () -menetelmää käytetään yllä mainittujen DEA-tilastojen lataamiseen, ja getPopularity () -menetelmä on helppokäyttöinen menetelmä, joka saa Facebookin tykkäykset, Google + 1: t ja sivun twiitit ja arvioi sen suosion sosiaalisessa mediassa .

JAVA-toteutuksen käyttäminen Data Envelopment Analysis -ohjelmalla

Luokassa I on DataEnvelopmentAnalysisExample-luokassa 2 erilaista esimerkkiä koodin käytöstä.

Ensimmäisessä esimerkissä käytetään suoraan DEA-menetelmää organisaatioyksiköiden tehokkuuden arvioimiseksi niiden tuotoksen (ASIAKIRJAT, VASTAANOTOT, REQS) ja panoksen (PÖRSSITIEDOT, PALKAT) perusteella. Tämä esimerkki on otettu artikkelista DEAzone.com.

        Map<String, DeaRecord> records = new LinkedHashMap<>();
        
        records.put("Depot1", new DeaRecord(new double[]{40.0,55.0,30.0}, new double[]{3.0,5.0}));
        //...adding more records here...
        
        DataEnvelopmentAnalysis dea = new DataEnvelopmentAnalysis();
        Map<String, Double> results = dea.estimateEfficiency(records);
        System.out.println((new TreeMap<>(results)).toString());

Toinen esimerkki käyttää Social Media Popularity -sovellustamme arvioimaan sivun suosiota käyttämällä sosiaalisen median tietoja, kuten Facebook Likes, Google + 1s ja Tweets. Kaikki sosiaalisen median lukumäärät on merkitty tuotoksiksi ja välitämme DEA: lle tyhjän tulovektorin.

        SocialMediaPopularity rank = new SocialMediaPopularity();
        rank.loadFile(DataEnvelopmentAnalysisExample.class.getResource("/datasets/socialcounts.txt"));
        Double popularity = rank.getPopularity(135, 337, 9079); //Facebook likes, Google +1s, Tweets
        System.out.println("Page Social Media Popularity: "+popularity.toString());

Tarvittavat laajennukset

Annettu koodi on vain esimerkki siitä, kuinka DEA: ta voidaan käyttää sijoitusalgoritmina. Tässä on muutamia laajennuksia, jotka on tehtävä toteutuksen parantamiseksi:

1. Nopeuta toteutusta

Erityinen DEA-toteutus arvioi kaikkien tietokannan tietueiden DEA-pisteet. Tämän vuoksi toteutus on hidasta, koska tarvitsemme niin monien lineaaristen ohjelmointiongelmien ratkaisemisen kuin tietokannan tietueiden määrä. Jos emme vaadi kaikkien tietueiden pisteiden laskemista, voimme nopeuttaa suoritusta merkittävästi. Siten pieni algoritmin laajentaminen voi antaa meille paremman hallinnan siitä, mitkä tietueet tulisi ratkaista ja mitä tulisi käyttää vain rajoituksina.

2. Sosiaalisen median laskentatietokannan laajentaminen

Annettu sosiaalisen median laskentatietokanta koostuu 1111 näytteestä Web SEO Analytics -hakemistosta. Jotta voidaan arvioida tarkempi suosioarvio, tarvitaan suurempi otos. Voit luoda oman tietokannan arvioimalla sosiaalisen median lukumäärän useammalta verkkosivulta.

3. Lisäämällä sosiaalisen median verkkoja

Toteutus käyttää Facebook-tykkäyksiä, Google + 1: itä ja twiittien määrää artikkelin suosion arvioimiseksi. Siitä huolimatta muiden sosiaalisen median verkkojen mittarit voidaan helposti ottaa huomioon. Sinun tarvitsee vain rakentaa tietokanta, jossa sosiaalisen median laskelmat sinua kiinnostavista verkoista, ja laajentaa SocialMediaPopularity-luokkaa käsittelemään niitä vastaavasti.

Viimeiset kommentit täytäntöönpanosta

Jotta voisit laajentaa toteutusta, sinulla on oltava hyvä käsitys siitä, miten Tietojenkäsittelyanalyysi toimii. Tätä käsitellään edellisessä artikkelissa, joten muista lukea opetusohjelma ennen kuin jatkat muutoksiin. Lisäksi JAVA-koodin käyttämiseksi sinun on asennettava järjestelmääsi lp_solve-kirjasto (katso yllä).

Jos käytät toteutusta mielenkiintoisessa projektissa pudota meille rivi ja esitämme projektisi blogissamme. Jos pidät artikkelista, ota hetki ja jaa se Twitterissä tai Facebookissa.

Aikaleima:

Lisää aiheesta Datumbox