Seuraava artikkeli auttaa sinua: Opas automatisoituun aikasarjamallinnukseen FEDOTilla
Viime vuosina olemme nähneet erilaisten automatisoitujen koneoppimismenetelmien syntymistä. On olemassa AutoML:n viitekehykset ja kirjastot, jotka ovat yllättäneet tietotieteen toimijoiden yhteisön tuloksillaan. FEDOT on myös sellainen kehys, joka voi tarjota meille erilaisia automatisoidun koneoppimisen ominaisuuksia. Tässä artikkelissa keskustelemme FEDOTista automaattisessa koneoppimisessa ja käsittelemme myös esimerkin aikasarjamallintamisesta FEDOTin avulla. Tärkeimmät artikkelissa käsiteltävät kohdat on lueteltu alla.
Sisällysluettelo
- Mikä on FEDOT?
- Aikasarjamallinnus FEDOTilla
- Tuodaan tietoja
- Moduulien tuonti FEDOTista
- Tietojen käsittely FEDOTilla
- Tehtävän ja mallin määrittely
- Mallintamisen aloittaminen
- Ennusteiden tekeminen
- Putken visualisointi
Mikä on FEDOT?
FEDOT on kehys, joka tukee automatisoitua koneoppimismallinnusta ja on saatavilla avoimena lähdekoodina. Tämän kehyksen avulla voimme räätälöidä koneoppimismallinnusprosessien putkia. Tätä kirjastoa voidaan hyödyntää tosielämän ongelmiin yksinkertaisella ja automatisoidulla tavalla, jossa se hyödyntää erilaisia evolutionaarisia mallinnusmenetelmiä. Tämän viitekehyksen avulla voimme ratkaista luokitukseen, regressioon, klusterointiin ja aikasarjamallinnukseen liittyviä ongelmia.
Yksi asia, joka houkuttelee meitä tähän kehykseen, on se, että siinä on useita moduuleja, joita voidaan käyttää päästä päähän -mallinnukseen. Tämä viitekehys tarjoaa myös moduuleja perusprosesseihin, kuten tietojen esikäsittelyyn, ominaisuuksien suunnitteluun, mallien optimointiin jne. Tämän kehyksen avulla voimme myös rakentaa kaavioita, jotka voivat kertoa meille, mitä menettelyä minkä tahansa ongelman ratkaisemiseen käytetään, ja kehys noudattaa. Jotkut kehyksen muista ominaisuuksista ovat seuraavat:
- Viitekehyksen arkkitehtuuri on joustava luomaan koneoppimismalleja erilaisista datatyypeistä.
- Tämä kehys tukee perus- ja suosittuja koneoppimisen kirjastoja, kuten SK-Learn, Keras, Statsmodel jne.
- Tätä kehystä voidaan käyttää myös tiettyihin alueisiin liittyvien mallien upottamiseen putkiin, kuten ODE ja PDE.
- Tämän viitekehyksen avulla voimme mahdollistaa erilaisten mallien käytön ja lisätä mallinnusmenettelyjen selitettävyyttä.
Voimme asentaa tämän kehyksen käyttämällä seuraavia koodirivejä.
!pip asenna fedot
Asennuksen jälkeen olemme valmiita suorittamaan kaikki koneoppimistoiminnot FEDOTin avulla.
Aikasarjamallinnus FEDOTilla
Tässä osiossa tarkastellaan esimerkkiä siitä, kuinka voimme suorittaa aikasarjaanalyysin FEDOT-kirjaston avulla.
Tuodaan tietoja
Ennen toimenpiteen aloittamista meidän on hankittava aikasarjatiedot, tässä esimerkissä käytämme täältä löytyviä liikennetietoja. Tuodaan tiedot.
tuo pandat muodossa pd df = pd.read_csv(‘/content/drive/MyDrive/Yugesh/fedot/trafic.csv’, parse_dates=[‘datetime’]) df.head(10)
Lähtö:
‘
Tässä yllä olevassa lähdössä voimme nähdä, että tiedoissa on kaksi muuttujaa[datetime and value] joita tarvitaan aikasarjamallintamisessa.
Piirretään tämä data.
tuo matplotlib.pyplot muodossa plt pylabista tuo rcParams rcParams[‘figure.figsize’] = 18, 7 df.plot(‘datetime’, ‘value’,c=”magenta”) plt.show()
Lähtö:

Täällä näemme aikasarjamme, jossa meillä on ajoneuvojen arvot päivämäärineen. Nyt datan tuonnin jälkeen olemme valmiita käyttämään FEDOT-moduuleja aikasarjamallinnukseen.
Moduulien tuonti FEDOTista
osoitteesta fedot.api.main tuonti Fedot osoitteesta fedot.core.repository.tasks tuo Task, TaskTypesEnum, TsForecastingParams osoitteesta fedot.core.data.data tuonti InputData osoitteesta fedot.core.data.data tuonti train_test_data_setup osoitteesta fedot.core.repository.dataset_types tuoda DataTypesEnum
Yllä olemme kutsuneet FEDOT API:ta, tehtävien ratkaisumoduuleja, split-, sovi- ja ennustamismoduuleja sekä FEDOT-tietotyyppimoduulia.
Tietojen käsittely FEDOTilla
Valmistetaan tiedot FEDOT-moduulien mukaan.
Voimme ladata ja jakaa tietomme käyttämällä seuraavia koodirivejä
input_data = InputData.from_csv_time_series(tehtävä, ‘/content/drive/MyDrive/Yugesh/fedot/trafic.csv’, target_column=’value’) train_data, test_data = train_test_data_setup(input_data)
Tehtävän ja mallin määrittely
Tarkastetaan datan pituus.
Tulosta(f“Aikasarjan pituus – {len(df)}”)
Lähtö:

Tästä nähdään, että datamme pituus on 801. Eli 144 ennustearvoa riittää, joten seuraavassa määritellään mallinnustehtävä FEDOTin moduuleilla.
tehtävä = Tehtävä(TaskTypesEnum.ts_forecasting, TsForecastingParams(ennusteen_pituus=144))
Tässä edellä olemme määritelleet aikasarjaennustetehtävän, jossa saamme 144 ennustetta.
Mallinnusprosessin käynnistäminen
Aloitetaan malli käyttämällä FEDOT API:ta.
malli = Fedot(problem=’ts_forecasting’, task_params=task.task_params) chain = model.fit(features=train_data)
Lähtö:

Tässä yllä olevassa tulosteessa voimme nähdä, että hyperparametrien virityksen jälkeen tämä API on aloittanut mallinnuksen.
Ennusteiden tekeminen
Nyt meidän on tehtävä joitain ennusteita, jotka voidaan tehdä käyttämällä seuraavia koodirivejä.
ennuste = model.predict(features=test_data) ennuste
Lähtö:

Tässä näemme ennusteemme malleistamme. Nyt parempaa optimointia varten meidän on visualisoitava ennuste. Tämä voidaan tehdä käyttämällä seuraavia koodirivejä.
Määrittelee visualisoinnin funktio
tuo numpy as np kohteesta sklearn.metrics import mean_absolute_error traffic = np.array(df[‘value’]) def display_results(todelliset_aikasarjat, ennustetut_arvot, len_train_data, y_name=”Liikenteen määrä”): plt.plot(np.arange(0, len(todellinen_aika_sarja)), todellinen_aikasarja, label=”Todelliset arvot”, c=”vihreä”) plt .plot(np.arange(len_train_data, len_train_data + len(predicted_values)), ennustetut_arvot, label=”Predicted”, c=”blue”) # Piirrä musta viiva, joka jakaa taulukon junaksi ja testaa plt.plot([len_train_data, len_train_data],
[min(actual_time_series), max(actual_time_series)]c=”musta”, viivanleveys = 1) plt.ylabel(y_name, fontsize = 15) plt.xlabel(‘Aikaindeksi’, kirjasinkoko = 15) plt.legend(fontsize = 15, loc=”ylempi vasen”) plt .grid() plt.show() mae_value = keskiarvo_absoluuttinen_error(todellinen_aikasarja[len_train_data:]ennustetut_arvot) print(f’MAE-arvo: {mae_value}’)
Tulosten visualisointi

Täällä näemme ennusteet, jotka ovat lähellä testitietoja. Olemme myös laittaneet funktion absoluuttisten tulosten keskiarvot. Alla voimme nähdä MAE.

Kuten täällä näemme, olemme saaneet hyviä tuloksia tästä mallintamisesta.
Putken visualisointi
Tarkastellaan putkistoa, josta mallinnuksemme on lähtenyt.
chain.show() print(‘Haettu ketju:’) solmulle ketjussa.solmut: print(f'{solmu.operaatio}, params: {solmu.custom_params}’)
Lähtö:


Yllä olevasta tuotoksesta nähdään, että mallinnus on käynyt läpi aikasarjamallin harjaregression ja nähdään myös mitä parametreja mallintamiseen käytetään.
Viimeiset sanat
Tässä artikkelissa olemme keskustelleet FEDOTista, joka on avoimen lähdekoodin kehys automaattiseen koneoppimismallinnukseen. FEDOT-kehyksen avulla olemme nähneet esimerkin aikasarjamallintamisesta, jossa tulokset ovat erittäin tyydyttäviä.
Viitteet