Oleellinen lineaarinen algebra datatieteelle ja koneoppimiselle

Lähdesolmu: 1852280

Kuva Benjamin O. Tayo.

Lineaarinen algebra on matematiikan ala, joka on erittäin hyödyllinen datatieteessä ja koneoppimisessa. Lineaarinen algebra on tärkein matemaattinen taito koneoppimisessa. Suurin osa koneoppimismalleista voidaan ilmaista matriisimuodossa. Itse datajoukko on usein esitetty matriisina. Lineaarista algebraa käytetään tietojen esikäsittelyssä, tiedonmuunnoksessa ja mallin arvioinnissa. Tässä on aiheita, jotka sinun on tunnettava:

  • vektorit
  • matriisit
  • Transponoi matriisi
  • Käänteinen matriisi
  • Matriisin determinantti
  • Matriisin jäljitys
  • Pistetuote
  • ominaisarvot
  • Ominaisvektorit

Tässä artikkelissa havainnollistetaan lineaarisen algebran soveltamista datatieteessä ja koneoppimisessa käyttämällä teknisten varastojen tietojoukkoa, joka löytyy tätä.

1. Lineaarinen algebra tietojen esikäsittelyä varten

 Aloitamme havainnollistamalla, kuinka lineaarista algebraa käytetään tietojen esikäsittelyssä.

1.1 Tuo tarvittavat kirjastot lineaariselle algebralle

tuonti numero kuten np tuonti pandat as pd tuonti pylab tuonti matplotlib.pyplot as plt tuonti merenpoika kuin sns 

 

1.2 Lue tietoaineisto ja näyttöominaisuudet

data = pd.read_csv ("tech-stocks-04-2021.csv") data.head () 

 Pöytä 1. Valittujen osakekurssien hinnat ensimmäisten 16 päivän ajalta huhtikuussa 2021.

tulosta (data.shape) tulos = (11,5) 

 - data.shape -toiminnon avulla voimme tietää tietojoukkomme koon. Tässä tapauksessa tietojoukolla on 5 ominaisuutta (päivämäärä, AAPL, TSLA, GOOGL ja AMZN), ja jokaisella ominaisuudella on 11 havaintoa. Päivämäärä viittaa kaupankäyntipäiviin huhtikuussa 2021 (16. huhtikuuta saakka). AAPL, TSLA, GOOGL ja AMZN ovat Applen, Teslan, Googlen ja Amazonin päätöskurssit.

1.3 Tietojen visualisointi

Tietojen visualisoinnin suorittamiseksi meidän on määriteltävä sarakematriisit visualisoitavien ominaisuuksien osalta:

x = data ['päivämäärä'] y = data ['TSLA'] plt.plot (x, y) plt.xticks (np.array ([0,4,9]), ['1. huhtikuuta', '8. huhtikuuta ',' 15.]]) Plt.title ('Teslan osakekurssi (dollareina) huhtikuulle 2021', koko = 14) plt.show () 

Kuva 1. Teslan osakekurssi ensimmäisiltä 16 päivältä huhtikuussa 2021.

2. Kovarianssimatriisi

- kovarianssimatriisi on yksi tärkeimmistä matriiseista datatieteessä ja koneoppimisessa. Se tarjoaa tietoa ominaisuuksien välisestä yhteisliikkeestä (korrelaatiosta). Oletetaan, että meillä on ominaisuusmatriisi 4 ominaisuudet ja havainnot, jotka on esitetty kohdassa Taulukko 2:

Taulukko 2. Sisältää matriisin, jossa on 4 muuttujaa ja n havaintoa.

Ominaisuuksien välisten korrelaatioiden visualisoimiseksi voimme luoda sirontapariskuvan:

cols = data.columns [1: 5] print (cols) output = Hakemisto (['AAPL', 'TSLA', 'GOOGL', 'AMZN'], dtype = 'object') sns.pairplot (data [cols] , korkeus = 3.0) 

Kuva 2. Hajota pariliitos valitulle teknologiakannalle.

Ominaisuuksien välisen korrelaation määrän (monikollineaarisuus) kvantifioimiseksi voimme laskea kovarianssimatriisin käyttämällä tätä yhtälöä:

missä ja ovat ominaisuuden keskiarvo ja keskihajonta. Tämä yhtälö osoittaa, että kun ominaisuudet standardoidaan, kovarianssimatriisi on yksinkertaisesti pistetuote ominaisuuksien välillä.

Matriisimuodossa kovarianssimatriisi voidaan ilmaista 4 x 4 todellisena ja symmetrisenä matriisina:

Tämä matriisi voidaan diagonalisoida suorittamalla a yhtenäinen muutos, jota kutsutaan myös pääkomponenttianalyysin (PCA) muunnokseksi, saadakseen seuraavat:

Koska matriisin jälki pysyy muuttumattomana yhtenäisen muunnoksen aikana, havaitsemme, että diagonaalimatriisin ominaisarvojen summa on yhtä suuri kuin ominaisuuksien X sisältämä kokonaisvarianssi1, X2, X3ja X4.

2.1 Kovarianssimatriisin laskeminen teknisten osakkeiden osalta

sklearn.preprocessing-tuonnista StandardScaler stdsc = StandardScaler () X_std = stdsc.fit_transform (data [cols] .iloc [:, range (0,4)]. arvot) cov_mat = np.cov (X_std.T, bias = True) 

Huomaa, että tässä käytetään osaksi kansallista lainsäädäntöä standardoidun matriisin.

2.2 Kovarianssimatriisin visualisointi

plt.figure (figsize = (8,8)) sns.set (font_scale = 1.2) hm = sns.heatmap (cov_mat, cbar = True, annot = True, square = True, fmt = '. 2f', annot_kws = { 'koko': 12}, yticklabels = cols, xticklabels = cols) plt.title ('Kovarianssimatriisi, joka näyttää korrelaatiokertoimet') plt.tight_layout () plt.show () 

Kuva 3. Kovarianssimatriisikaavio valitulle teknologiakannalle.

Kuvasta 3 havaitaan, että AAPL korreloi voimakkaasti GOOGL: n ja AMZN: n kanssa ja heikosti TSLA: n kanssa. TSLA korreloi yleensä heikosti AAPL: n, GOOGL: n ja AMZN: n kanssa, kun taas AAPL, GOOGL ja AMZN korreloivat voimakkaasti keskenään.

2.3 Laske kovarianssimatriisin ominaisarvot

np.linalg.eigvals (cov_mat) output = taulukko ([3.41582227, 0.4527295, 0.02045092, 0.11099732]) np.sum (np.linalg.eigvals (cov_mat)) output = 4.000000000000006 np.trace (cov_mat) output = 4.000000000000001 

Huomaamme, että kovarianssimatriisin jälki on yhtä suuri kuin ominaisarvojen summa odotetusti.

2.4 Laske kumulatiivinen varianssi

Koska matriisin jälki pysyy muuttumattomana yhtenäisen muunnoksen aikana, havaitsemme, että diagonaalimatriisin ominaisarvojen summa on yhtä suuri kuin ominaisuuksien X sisältämä varianssi1, X2, X3ja X4. Siksi voimme määritellä seuraavat määrät:

 

Huomaa, että kun p = 4, kumulatiivisesta varianssista tulee yhtä kuin yksi odotetusti.

eigen = np.linalg.eigvals (cov_mat) cum_var = eigen / np.sum (eigen) print (cum_var) output = [0.85395557 0.11318237 0.00511273 0.02774933] print (np.sum (cum_var)) tulos = 1.0 

 Havaitsemme kumulatiivisesta varianssista (cum_var) että 85% varianssista sisältyy ensimmäiseen ominaisarvoon ja 11% toiseen. Tämä tarkoittaa, että kun PCA otetaan käyttöön, vain kahta ensimmäistä pääkomponenttia voitiin käyttää, koska nämä 97 komponenttia vaikuttavat 2 prosenttiin kokonaisvarianssista. Tämä voi olennaisesti vähentää ominaisuusalueen ulottuvuutta 4: stä 2: een, kun PCA toteutetaan.

3. Lineaarinen regressiomatriisi

Oletetaan, että meillä on tietojoukko, jolla on 4 ennustinominaisuutta ja n havaintoja, kuten alla on esitetty.

Taulukko 3. Sisältää matriisin, jossa on 4 muuttujaa ja n havaintoa. Sarake 5 on kohdemuuttuja (y).

Haluamme rakentaa moniregressiomallin y arvot (sarake 5). Mallimme voidaan siten ilmaista muodossa

Matriisimuodossa tämä yhtälö voidaan kirjoittaa muodossa

jossa X on (nx 4) ominaisuusmatriisi, w on (4 x 1) matriisi, joka edustaa määritettäviä regressiokertoimia, ja y on (nx 1) matriisi, joka sisältää kohdemuuttujan y n havaintoa.

Huomaa, että X on suorakulmainen matriisi, joten emme voi ratkaista yllä olevaa yhtälöä ottamalla käänteinen X.

Muuntaa X neliömatriisiksi, moninkertaistamme yhtälömme vasemman ja oikean puolen osaksi kansallista lainsäädäntöä of X, tuo on

Tämä yhtälö voidaan myös ilmaista

jossa

on (4 × 4) regressiomatriisi. Selvästi havaitsemme sen R on todellinen ja symmetrinen matriisi. Huomaa, että lineaarisessa algebrassa kahden matriisin tuloksen transponointi noudattaa seuraavaa suhdetta

Nyt kun olemme vähentäneet regressio-ongelmaa ja ilmaisseet sen reaalisen, symmetrisen ja käänteisen regressiomatriisin (4 × 4) muodossa R, on suoraviivaista osoittaa, että regressioyhtälön tarkka ratkaisu on silloin

Seuraavassa on esimerkkejä regressioanalyysistä jatkuvien ja diskreettien muuttujien ennustamiseksi:

Lineaarisen regressio-perusteet ehdottomille aloittelijoille

Perceptron-luokittelijan rakentaminen käyttämällä pienimmän neliösumman menetelmää

4. Lineaarinen diskriminanttianalyysi

Toinen esimerkki todellisesta ja symmetrisestä matriisista datatieteessä on Linear Discriminant Analysis (LDA) -matriisi. Tämä matriisi voidaan ilmaista muodossa:

jossa SW on ominaisuuden sisäinen sirontamatriisi ja Son ominaisuuksien välinen sirontamatriisi. Koska molemmat matriisit SW ja SB ovat todellisia ja symmetrisiä, tästä seuraa L on myös todellinen ja symmetrinen. Lävistäjä L tuottaa ominaisuuden alatilan, joka optimoi luokan erotettavuuden ja vähentää ulottuvuutta. Siksi LDA on valvottu algoritmi, kun taas PCA ei.

Lisätietoja LDA: n toteuttamisesta on seuraavissa viitteissä:

Koneoppiminen: ulottuvuuden vähentäminen lineaarisen erotteluanalyysin avulla

GitHub-arkisto LDA-käyttöönottoa varten Iris-tietojoukolla

Python-koneoppiminen, kirjoittanut Sebastian Raschka, 3. painos (luku 5)

Yhteenveto

Yhteenvetona olemme keskustelleet useista lineaarisen algebran sovelluksista datatieteessä ja koneoppimisessa. Teknisten varastojen tietojoukon avulla havainnollistimme tärkeitä käsitteitä, kuten matriisin koko, sarakematriisit, neliömatriisit, kovarianssimatriisi, matriisin siirtäminen, ominaisarvot, pistetuotteet jne. Lineaarinen algebra on olennainen työkalu datatieteessä ja koneessa oppiminen. Tietotieteestä kiinnostuneiden aloittelijoiden on siis perehdyttävä lineaarisen algebran keskeisiin käsitteisiin.

Related:

Lähde: https://www.kdnuggets.com/2021/05/essential-linear-algebra-data-science-machine-learning.html

Aikaleima:

Lisää aiheesta KDnuggets