Datumboxi masinõppe raamistiku versioon 0.8.0 avaldas PlatoBlockchain Data Intelligence'i. Vertikaalne otsing. Ai.

Datumboxi masinõppe raamistiku versioon 0.8.0 on välja antud

Datumbox Framework v0.8.0 on väljas ja sisaldab mitmeid võimsaid funktsioone! See versioon toob kaasa uued eeltöötluse, funktsioonide valiku ja mudelivaliku algoritmid, uued võimsad salvestusmootorid, mis võimaldavad paremini juhtida mudelite ja andmekaadrite salvestamist/laadimist, mitu eelkoolitatud masinõppe mudelit ning palju mälu ja kiiruse täiustusi. Laadige see kohe alla saidilt Github or Maveni keskhoidla.

Versiooni 0.8.0 üks peamisi eesmärke oli täiustada raamistiku salvestusmehhanisme ja teha kettapõhine koolitus kättesaadavaks kõigile toetatud algoritmidele. Uued salvestusmootorid annavad parema kontrolli selle üle, kuidas ja millal mudeleid säilitatakse. Üks oluline muudatus on see, et mudeleid ei salvestata automaatselt pärast fit() meetodi lõpetamist, vaid selle asemel tuleb selgelt kutsuda meetod save(), mis annab mudeli nime. See võimaldab meil mitte ainult loobuda lihtsamatest ajutistest algoritmidest ilma serialiseerimisfaasi läbimata, vaid ka salvestada/laadida andmeraamid:

Configuration configuration = Configuration.getConfiguration();
Dataframe data = ...; //load a dataframe here

MaximumEntropy.TrainingParameters params = new MaximumEntropy.TrainingParameters();
MaximumEntropy model = MLBuilder.create(params, getConfiguration());
model.fit(data);
model.save("MyModel"); //save the model using the specific name
model.close();

data.save("MyData"); //save the data using a specific name
data.close();

data = Dataframe.Builder.load("MyData", configuration); //load the data
model = MLBuilder.load(MaximumEntropy.class, "MyModel", configuration); //load the model
model.predict(data);
model.delete(); //delete the model

Praegu toetame kahte salvestusmootorit: InMemory mootorit, mis on väga kiire, kuna see laadib kõik mällu, ja MapDB mootorit, mis on aeglasem, kuid võimaldab kettapõhist koolitust. Saate juhtida, millist mootorit kasutate, muutes oma datumbox.configuration.properties või saate konfiguratsiooniobjekte programmiliselt muuta. Igal mootoril on oma konfiguratsioonifail, kuid jällegi saate kõike programmiliselt muuta:

Configuration configuration = Configuration.getConfiguration(); //conf from properties file

configuration.setStorageConfiguration(new InMemoryConfiguration()); //use In-Memory engine
//configuration.setStorageConfiguration(new MapDBConfiguration()); //use MapDB engine

Pange tähele, et mõlemas mootoris on kataloogi seadistus, mis määrab, kus mudelid salvestatakse (inMemoryConfiguration.directory ja mapDBConfiguration.directory atribuudid konfiguratsioonifailides). Veenduge, et muudate neid, vastasel juhul kirjutatakse mudelid teie süsteemi ajutisse kausta. Konfiguratsioonifailide struktureerimise kohta lisateabe saamiseks vaadake Koodinäide projekti.

Kui uus salvestusmehhanism on paigas, on seda nüüd võimalik avalikult jagada eelkoolitatud mudelid mis hõlmavad tundeanalüüsi, rämpspostituvastuse, keeletuvastuse, teemade klassifikatsiooni ja kõiki muid Datumbox API kaudu saadaolevaid mudeleid. Nüüd saate lae alla ja kasutage oma projektis kõiki eelkoolitatud mudeleid ilma API-le helistamata ja ilma igapäevaste kõnede arvu piiramiseta. Praegu on avaldatud mudelid koolitatud InMemory mälumootori abil ja need toetavad ainult inglise keelt. Tulevaste väljaannete puhul kavatsen pakkuda tuge rohkemate keelte jaoks.

Uues raamistikus on paljude klasside avalikes meetodites mitmeid muudatusi (seetõttu ei ole see tagasiühilduv). Kõige märkimisväärsem erinevus on mudelite lähtestamise viisis. Nagu nägime varasemas koodinäites, ei ole mudelid otseselt instantseeritud, vaid mudeli loomiseks või laadimiseks kasutatakse MLBuilderi klassi. Treeningu parameetrid antakse otse ehitajale ja neid ei saa seadjaga muuta.

Veel üks täiustus on mudelivaliku läbiviimise viisis. V0.8.0 tutvustab uut mudelivaliku paketti, mis pakub kõiki vajalikke tööriistu meie mudelite toimivuse valideerimiseks ja mõõtmiseks. Mõõdikute alampaketis pakume kõige olulisemad klassifikatsiooni, klastrite, regressiooni ja soovituste valideerimismõõdikud. Pange tähele, et ValidationMetrics eemaldatakse igast individuaalsest algoritmist ja neid ei salvestata enam koos mudeliga. Raamistik pakub uut jaoturite alampaketti, mis võimaldab algset andmestikku jagada erinevate skeemide abil. Praegu tehakse K-kordsed jaotused klassi KFoldSplitter abil, samas kui andmestiku jagamine treening- ja testkomplektiks on saavutatav ShuffleSplitteriga. Lõpuks pakub raamistik mudeli kiireks kinnitamiseks klassi Validator. K-kordse ristvalideerimise saab läbi viia paari koodirea jooksul järgmiselt:

ClassificationMetrics vm = new Validator<>(ClassificationMetrics.class, configuration)
    .validate(new KFoldSplitter(k).split(data), new MaximumEntropy.TrainingParameters());

Uus eeltöötluspakett asendab vanad andmetransformaatorid ja annab parema kontrolli selle üle, kuidas me enne masinõppe algoritme andmeid skaleerime ja kodeerime. Numbriliste muutujate skaleerimiseks toetatakse järgmisi algoritme: MinMaxScaler, StandardScaler, MaxAbsScaler ja BinaryScaler. Kategooriliste muutujate tõeväärtusteks kodeerimiseks saate kasutada järgmisi meetodeid: OneHotEncoder ja CornerConstraintsEncoder. Uusi algoritme saate kasutada järgmiselt.

StandardScaler numericalScaler = MLBuilder.create(
    new StandardScaler.TrainingParameters(), 
    configuration
);
numericalScaler.fit_transform(trainingData);

CornerConstraintsEncoder categoricalEncoder = MLBuilder.create(
    new CornerConstraintsEncoder.TrainingParameters(), 
    configuration
);
categoricalEncoder.fit_transform(trainingData);

Teine oluline uuendus on asjaolu, et funktsioonide valiku pakett kirjutati ümber. Praegu keskenduvad kõik funktsioonide valiku algoritmid kindlatele andmetüüpidele, võimaldades erinevaid meetodeid omavahel aheldada. Selle tulemusena saavad klassid TextClassifier ja Modeler pigem funktsioonivalija parameetrite loendi kui ainult ühe.

Nagu varem mainitud, toetavad kõik algoritmid nüüd kettapõhist koolitust, sealhulgas need, mis kasutavad maatriksit (ainsaks erandiks on tugivektori masinad). Uus salvestusmootori mehhanism võimaldab isegi konfigureerida mõned algoritmid või andmeraamid nii, et need salvestatakse mällu, teised aga kettale. Mitmed kiiruse täiustused võeti kasutusele peamiselt tänu uuele salvestusmootori mehhanismile, aga ka üksikute algoritmide, näiteks DPMM-i perekonna algoritmide häälestamise tõttu.

Viimaseks, kuid mitte vähemtähtsaks, värskendab uus versioon kõik sõltuvused nende uusimateks versioonideks ja eemaldab mõned neist, näiteks Commons-lang ja lp_solve. Commons-lang, mida kasutati HTML-i sõelumiseks, asendatakse kiirema kohandatud HTMLParseri teostusega. lp_solve asendatakse puhta Java simplex-lahendajaga, mis tähendab, et Datumbox ei vaja enam operatsioonisüsteemi installitud konkreetseid süsteemiteeke. Lisaks pidi lp_solve minema, kuna see kasutab LGPLv2, mis ei ühildu Apache 2.0 litsentsiga.

Versioon 0.8.0 sisaldab raamistikus veel mitmeid uusi funktsioone ja täiustusi. Muudatuste üksikasjaliku ülevaate saamiseks vaadake muudatuste.

Ärge unustage kloonida koodi Datumbox Framework v0.8.0 Githubist, vaadake Koodinäited ja laadige alla eelkoolitatud masinõppe mudelid saidilt Datumboxi loomaaed. Ootan teie kommentaare ja ettepanekuid.

Ajatempel:

Veel alates Datumbox