Hvordan forutsi aksjekurs ved bruk av SVM

Hvordan forutsi aksjekurs ved bruk av SVM
Maskinlæring er en kunstig intelligensapplikasjon som forbedrer måten verden fungerer på hvert domene. I kjernen er det en algoritme eller modell som observerer mønstre i et gitt datasett og deretter spår de lærde mønstrene på generelle data. I lekmannsbetingelser er det ideen om at maskiner lærer et mønster og tilpasser seg gjennom erfaring for å ta nøyaktige og repeterbare beslutninger. Støttevektormaskinen er en populær ML -algoritme som vi vil bruke i dag for å forutsi aksjekurser. Det er flere fordeler med denne modellen, som vi vil diskutere og gå gjennom implementeringen av tilnærmingen.

Hva er et hyperplan?

Et hyperplan i N-dimensjonalt rom er et (n-1) -dimensjonalt underområde; Hvis plassen er tredimensjonalt, er hyperplanene de 2-dimensjonale planene. Et N-dimensjonalt rom spenner alltid med et sett med n lineært uavhengige vektorer, og det er alltid mulig å finne N gjensidig ortogonale vektorer som spenner over plassen. Det kan være eller ikke være i definisjonen av et begrenset dimensjonalt vektorrom, men det er et faktum som bevis kan finnes i nesten alle studenter lineær algebra lærebok.

Som et resultat er et hyperplan i N-rom spannert av N-1 lineært uavhengige vektorer og har en NTH-vektor (ikke i planet) ortogonal til det.

Hva er en støttevektormaskin?

Support Vector Machine (SVM) er en veiledet maskinlæring binær klassifiseringsalgoritme. Gitt et sett med to typer punkter i N-dimensjoner, genererer SVM en (N-1) dimensjonal hyperplan for å dele disse punktene i to grupper som vist nedenfor:

I figuren ovenfor vil SVM velge den røde linjen som den beste hyperplanen som skiller de blå og grønne klassene.

La oss anta at du har to typer punkter i et fly som kan separeres lineært. SVM vil finne en rett linje som deler disse punktene i to typer og er så langt borte fra dem alle som mulig. Denne linjen er kjent som et hyperplan, og den ble valgt slik at outliers ikke blir ignorert, og punkter i forskjellige klasser er så langt fra hverandre som mulig. Hvis punktene ikke kan skilles, bruker SVM en kjernetransformasjon for å øke dimensjonene til punktene.

Saken omtalt ovenfor var ganske grei fordi dataene var separerbare lineært - som vi så, kunne vi trekke en rett linje for å skille røde og blå punkter.

Hva om dataene ikke kan separeres lineært? Vi vil ikke kunne skille klassene ved å tegne et rett hyperplan. For å takle denne utfordringen, vil vi legge til en tredje dimensjon til datasettet. Vi hadde to dimensjoner frem til nå: x og y. Vi skaper en ny dimensjon og mandat om at den beregnes på en måte som er praktisk for oss: z = x2 + y2.

Dette vil skape et tredimensjonalt rom fra de tidligere punktene. Vi kan utlede fra figuren nedenfor at punktene til å begynne med ikke var lineært separerbare, men etter å ha brukt kjernefunksjonen, skilte vi enkelt datapunktene. Det er mange kjernefunksjoner tilgjengelig som du kan velge i henhold til brukssaken din.

Fordeler med SVM

  1. Bra for data der antall dimensjoner er mer enn antall datapunkter.
  2. Bra for både klassifisering og regresjon.
  3. Det er romoptimalisert.
  4. Den håndterer outliers.

Ulemper ved SVM

  1. Det er vanskelig å velge en "god" kjernefunksjon.
  2. Store datasett krever lang treningstid.
  3. Den endelige modellen er vanskelig å forstå og tolke, med variable vekter og individuell innvirkning.
  4. Vi kan ikke gjøre små kalibreringer til modellen fordi den endelige modellen ikke er lett synlig, noe som gjør det vanskelig å innlemme vår forretningslogikk.

Aksjepris Veibeskrivelse Prediksjon ved bruk av SVM

Aksjemarkedets prediksjoner blir gjort ved å forutsi den fremtidige verdien av et selskaps aksje eller et annet finansielt instrument som omsettes på en utveksling ved bruk av grunnleggende eller teknisk analyse.

Fordelen med prediksjon av aksjemarkedet er at det lar deg investere med omhu og lønnsomt.

Den første oppgaven for denne implementeringen er å importere alle biblioteker og moduler i skriptet vårt. Sklearn vil bli brukt til å bygge modellen, pandaer vil bli brukt til å håndtere datarammer, og Numpy er for lineær algebra. Nedenfor er den nødvendige importen som vi gjør:

Fra Sklearn.SVM import SVC
Fra Sklearn.Metrikk importerer nøyaktighet_score
Importer pandaer som PD
Importer numpy som NP

Neste oppgave er å lese datasettet fra filen. Filen vil være i ekstern lagring, og du kan laste ned datasettet herfra.

# Lese CSV -filen fra ekstern lagring
df = pd.read_csv ('Reliance.CSV ')

Tilordne datetime som indeksen for datarammen og slipp "dato" -kolonnen

# Lage dato som indekskolonne
df.indeks = PD.to_datetime (df ['date'])
# Slipp kolonnen som heter “Dato”
df = df.slipp (['date'], akse = 'kolonner')

Tilordne inngangsfunksjonene til en variabel

# Lag prediktorvariabler
df ['open-close'] = df.Åpent - DF.Lukk
df ['høy-lav'] = df.High - DF.Lav
# Lagre alle prediktorvariabler i en variabel x
X = df [['open-close', 'high-low']]
trykk (x.hode())

Tilordne målkolonne til en annen variabel

# Målvariabler
y = np.hvor (df ['lukk'].Shift (-1)> df ['Close'], 1, 0)
trykk (y)

Del datasettet i tog- og testprøver. Togprøvene vil bygge opp modellen, mens testprøvene vil identifisere modellens nøyaktighet.

split = int (0.9*Len (DF))
# Togdatasett
X_train = x [: split]
y_train = y [: split]
# Testdatasett
X_test = x [split:]
y_test = y [split:]

Lag SVM -modellen nå

# Støtte vektorklassifiserer
Model = SVC ().Fit (X_Train, Y_Train)

Du kan finne nøyaktigheten til denne modellen ved å bruke forskjellige beregninger.

For å forutsi signalet til aksjen, bruk metoden nedenfor.

df ['sig'] = modell.forutsi (x)

Konklusjon

Denne artikkelen gikk gjennom diskusjonen, fordelene og bruk av tilfeller av supportvektormaskiner. Det er en populær og romeffektiv algoritme for både klassifiserings- og regresjonsoppgaver, og den bruker geometriske prinsipper for å løse problemene våre. Senere implementerte vi også aksjekursretningsprediksjon ved bruk av SVM -algoritmen. Aksjekurs prediksjon er ekstremt nyttig i næringslivet, og når vi bruker automatisering for dette, skaper det mer hype for dette problemet.