Gekissimo.net - Opi ansaitsemaan rahaa webilläsi Internetissä!

Käytännön opas lineaariseen erotteluanalyysiin binääriluokituksessa

Seuraava artikkeli auttaa sinua: Käytännön opas lineaariseen erotteluanalyysiin binääriluokituksessa

Linear Discriminant Analysis (LDA) on menetelmä datapisteiden erottamiseksi oppimissuhteiden avulla suuriulotteisten datapisteiden ja oppijalinjan välillä. Se pienentää suuriulotteiset tiedot lineaariseksi ulottuvuudeksi. LDA:ta käytetään myös työkaluna luokitteluun, mittojen pienentämiseen ja tietojen visualisointiin. LDA-menetelmä tuottaa usein vankat, kunnolliset ja tulkittavissa olevat luokitustulokset yksinkertaisuudestaan ​​huolimatta. Tässä artikkelissa meillä on LDA-kielto, joka keskittyy erityisesti sen luokitusominaisuuksiin. Alla on luettelo kohdista, joita käsittelemme tässä artikkelissa.

Sisällysluettelo

  1. Miksi lineaarinen erotteluanalyysi otettiin käyttöön?
  2. Tietoja lineaarisesta erotteluanalyysistä (LDA)
  3. LDA binääriluokittelulle Pythonille

Ymmärrämme, miksi Linear Discriminant Analysis (LDA) otettiin käyttöön luokittelua varten.

Miksi LDA otettiin käyttöön?

Ymmärtääksemme syyn LDA:n käyttöönotolle meidän on ensin ymmärrettävä, mikä meni vikaan Logistic Regressionissa. Logistinen regressiotekniikka kohtaa seuraavat rajoitukset:

  • Logistista regressiota käytetään perinteisesti binääriluokitus ongelmia. Vaikka se voidaan ekstrapoloida ja käyttää moniluokkaisessa luokittelussa, tämä tehdään harvoin.
  • Logistisesta regressiosta voi puuttua vakautta, kun luokat ovat hyvin erotettuja. Joten, on epävakaus, kun luokat ovat hyvin erillään.
  • Logistinen regressio on epävakaa, kun ominaisuuksia on vähemmän arvioitavia parametreja.

Kaikki yllä mainitut syyt logistisen regression epäonnistumiseen on korjattu LDA:ssa. Siirrymme artikkelissa pidemmälle, tutustutaanpa lyhyesti vertailuluokittimeemme, Lineaariseen erotteluanalyysiin (LDA).

Etsitkö täydellistä arkistoa tietotieteessä käytettävistä Python-kirjastoista, katso tästä.

Tietoja lineaarisesta erotteluanalyysistä (LDA)

Lineaarinen erotteluanalyysi on tekniikka binääristen ja ei-binaaristen ominaisuuksien luokitteluun käyttäen ja lineaarista algoritmia riippuvien ja riippumattomien piirteiden välisen suhteen oppimiseen. Se käyttää Fischerin kaavaa pienentämään datan ulottuvuutta niin, että se sopii lineaariseen ulottuvuuteen. LDA on monitoimialgoritmi, se on luokittelija, ulottuvuuden vähentäjä ja tietojen visualisoija. LDA:n tavoitteena on:

  • Vastaanottaja Minimoi luokkien välinen vaihtelu joka tarkoittaa mahdollisimman monen samanlaisen pisteen luokittelua yhteen luokkaan. Tämä varmistaa vähemmän luokitteluvirheitä.
  • Vastaanottaja maksimoida keskiarvon välinen etäisyys luokkien keskiarvo sijoitetaan niin pitkälle kuin mahdollista korkean luotettavuuden varmistamiseksi ennustamisen aikana.
🔥 Empfohlen:  Shopify vs. Amazon FBA: mikä alusta ansaitsee yrityksesi?

Kuvalinkki

Yllä olevassa esityksessä on kaksi luokitusta, jotka on luotu tiedoilla, joilla on kiinteä kovarianssi. Se selitetään lineaarisen suhdelinjan avulla.

Otetaan käyttöön LDA datassa ja tarkkaillaan tuloksia.

LDA binääriluokittelulle Pythonille

Linear Discriminant Analysis -paketti on sklearn-kirjastossa. Aloitetaan tuomalla joitain kirjastoja, joita aiotaan käyttää tässä artikkelissa.

Tuodaan kirjastoa

import pandat pd-muodossa import numpy as np tuonti matplotlib.pyplot as plt import seaborn as sns from sklearn.model_selection import train_test_split from sklearn.discriminant_analysis import LinearDiscriminantAnalysis from sklearn.datasets import make_classification from sklearn.datasets import make_classification osoitteesta sklearn.datasets score,confusion_matrix tuontivaroitukset warnings.filterwarnings(‘ohita’)

Tietojen lukeminen

df=pd.read_csv(“/content/drive/MyDrive/Datasets/heart.csv”) print(“rivien määrä=”,df.shape[0],”\nno of columns=”,df.shape[1]) df.head()

Ominaisuutta on yhteensä 14, mukaan lukien riippuva muuttuja “lähtö”. Nämä tiedot liittyvät sydänkohtauksen todennäköisyyden ennusteeseen.

Tietojen valmistelu harjoittelua varten

X=df.drop(‘lähtö’,akseli=1) y=df[‘output’]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0,30, random_state=42)

Jaa tiedot junaksi ja testaa vastaavasti suhteessa 70:30. Junan muoto sekä testistä riippuvat ja riippumattomat muuttujat on esitetty yllä.

LDA:n sovittaminen dataan

LDA = LinearDiscriminantAnalysis() LDA.fit(X_train, y_train) LDA_pred=LDA.predict(X_test)

Malli on nyt koulutettu harjoitustietojen perusteella ja siinä on ennustetut arvot testidatan perusteella. Katsotaanpa ennusteen tarkkuuden suorituskykytekijät.

Sekaannusmatriisin luominen

tn, fp, fn, tp = sekaannusmatriisi(lista(y_testi), lista(LDA_pred), etiketit=[0, 1]).ravel() print(‘Tosi positiivinen’, tp) print(‘Tosi negatiivinen’, tn) print(‘Väärin positiivinen’, fp) print(‘Väärä negatiivinen’, fn) ConfusionMatrixDisplay.from_predictions(y_test, LDA_pred) plt .näytä()

Yllä olevan sekavuusmatriisin avulla voimme laskea tarkkuus- ja palautuspisteet. Käytämme tähän ongelmaan tarkkuuspisteitä, koska se on positiivinen ennustettu arvo, joten tässä tapauksessa positiivinen on se, kuinka moni potilas kärsii sydänkohtauksesta.

Tarkkuuspisteiden laskeminen

print(“Tarkkuuspisteet”,tarkkuuspisteet(y_testi,LDA_pred)) Tarkkuuspisteet 0,82

Mallimme ennustaa 82 %:n tarkkuudella, että potilas kärsii sydänkohtauksesta. Tämä pistemäärä ei ole hyvä, koska lääketieteellisissä ongelmissa mallin on oltava 99 % varma päätöksestään. Joten mallin suorituskyvyn parantamiseksi tavoitteena on vähentää vääriä negatiivisia ja vääriä positiivisia, jotka tunnetaan myös tyypin 1 ja tyypin 2 virheinä. Tässä tapauksessa meidän pitäisi keskittyä enemmän väärään negatiiviseen vähentämiseen, koska he ovat niitä potilaita, jotka kärsivät tai tulevat kärsimään sydänkohtauksesta, mutta malli on luokitellut heidät negatiivisiksi (ei-sydänkohtauspotilaat).

🔥 Empfohlen:  Pitäisikö ruostetta kutsua epäonnistuneeksi ohjelmointikieleksi?

Lopullinen tuomio

Lineaarinen erotteluanalyysi käyttää etäisyyttä luokan keskiarvoon, joka on helpompi tulkita, käyttää lineaarista päätösrajaa luokituksen selittämiseen ja se vähentää ulottuvuutta. Tämän artikkelin käytännön toteutuksen avulla voimme ymmärtää, kuinka lineaarista erotteluanalyysiä käytetään luokituksessa.

Viitteet

Table of Contents