Lär dig funktionsteknik för datavetenskap och ML på 5 minuter

Är du redo att dyka in i världen av funktionsteknik för maskininlärning och dataanalys? Då har du kommit helt rätt!

Funktionsteknik är en avgörande kompetens för att utvinna värdefulla insikter från data. I den här snabba guiden bryter vi ner det i enkla, lättförståeliga delar. Så, låt oss sätta igång direkt och påbörja din resa mot att bemästra konsten att skapa effektiva funktioner!

Vad är Funktionsteknik?

När du utvecklar en maskininlärningsmodell för ett affärsrelaterat eller experimentellt problem, använder du data som presenteras i kolumner och rader. Inom dataanalys och ML-utveckling kallas kolumnerna för attribut eller variabler.

Specifika datapunkter, eller rader under dessa kolumner, kallas för observationer eller instanser. Kolumnerna eller attributen utgör funktionerna i en rådatauppsättning.

Dessa råa funktioner är sällan tillräckliga eller optimala för att träna en ML-modell. För att minska ”bruset” från insamlad metadata och förstärka unika signaler från funktioner, behöver du omvandla eller bearbeta metadatakolumner till mer effektiva funktioner genom funktionsteknik.

Exempel 1: Finansiell Modellering

Rådata för ML-modellträning

I exempelbilden ovan, med en exempeldel av data, är kolumnerna A till G funktioner. Värden eller textsträngar i varje kolumn längs raderna, såsom namn, insättningsbelopp, insättningsår, räntor, etc. är observationer.

Inom ML-modellering behöver du ta bort, lägga till, kombinera eller omvandla data för att skapa meningsfulla funktioner och minska storleken på den totala datamängden för modellträning. Detta är vad funktionsteknik handlar om.

Exempel på Funktionsteknik

I samma datauppsättning som tidigare nämnts, är funktioner som total anställningstid och total räntebelopp onödiga. Dessa tar upp mer utrymme och kan förvirra ML-modellen. Därför kan du reducera antalet funktioner från sju till fem.

Eftersom datamängder i ML-modeller ofta innehåller tusentals kolumner och miljontals rader, gör det stor skillnad för projektet att reducera ett par funktioner.

Exempel 2: AI Musikspelliste Generator

Ibland kan du skapa en helt ny funktion baserat på flera existerande funktioner. Anta att du skapar en AI-modell som automatiskt genererar musikspellistor baserat på tillfälle, smak, humör etc.

Du har nu samlat data om låtar och musik från olika källor och skapat följande databas:

I databasen ovan finns sju funktioner. Men eftersom ditt mål är att träna ML-modellen för att avgöra vilken låt eller musik som passar vilket evenemang, kan du slå ihop funktioner som Genre, Betyg, Takt, Tempo och Hastighet till en ny funktion kallad ”Anpassning”.

Nu, antingen genom expertis eller mönsterigenkänning, kan du kombinera vissa instanser av funktioner för att avgöra vilken låt som passar vilket tillfälle. Till exempel kan observationer som Jazz, 4.9, X3, Y3 och Z1 signalera till ML-modellen att låten ”Cras maximus justo et” passar i en användares spellista om de söker efter musik för avkoppling.

Typer av Funktioner i Maskininlärning

Kategoriska Egenskaper

Dessa är dataattribut som representerar distinkta kategorier eller etiketter. Du använder denna typ för att märka kvalitativa datauppsättningar.

#1. Ordinala Kategoriska Egenskaper

Ordinala egenskaper har kategorier med en meningsfull ordning. Till exempel har utbildningsnivåer som gymnasieexamen, kandidatexamen, masterexamen, etc. en tydlig hierarki, men det finns inga kvantitativa skillnader.

#2. Nominala Kategoriska Egenskaper

Nominala egenskaper är kategorier utan någon inbyggd ordning. Exempel kan vara färger, länder eller djurtyper. Här är skillnaderna enbart kvalitativa.

Array-Funktioner

Den här typen av funktion representerar data som är organiserade i matriser eller listor. Dataanalytiker och ML-utvecklare använder ofta Array-funktioner för att hantera sekvenser eller bädda in kategoriska data.

#1. Inbäddnings-Array-Funktioner

Inbäddningsmatriser omvandlar kategoriska data till täta vektorer. Det används ofta inom naturlig språkbehandling och rekommendationssystem.

#2. Lista Array-Funktioner

Listmatriser lagrar datasekvenser, till exempel listor över artiklar i en beställning eller en historik över åtgärder.

Numeriska Funktioner

Dessa funktioner används för att utföra matematiska operationer eftersom de representerar kvantitativa data.

#1. Intervall Numeriska Funktioner

Intervallfunktioner har konsekventa intervall mellan värden men saknar en absolut nollpunkt – till exempel temperaturdata. Här representerar noll en viss temperatur och inte en frånvaro av attributet.

#2. Förhållande Numeriska Funktioner

Förhållandefunktioner har konstanta intervall mellan värden och en absolut nollpunkt. Exempel är ålder, längd och inkomst.

Betydelsen av Funktionsteknik i ML och Datavetenskap

  • Effektiv funktionsextraktion förbättrar modellens noggrannhet, vilket gör förutsägelser mer pålitliga och värdefulla för beslutsfattande.
  • Noggrant funktionsval eliminerar irrelevanta eller redundanta attribut, vilket förenklar modeller och sparar beräkningsresurser.
  • Välkonstruerade funktioner avslöjar datamönster, vilket hjälper dataanalytiker att förstå komplexa samband inom datamängden.
  • Att anpassa funktioner till specifika algoritmer kan optimera modellens prestanda över olika maskininlärningsmetoder.
  • Välkonstruerade funktioner leder till snabbare modellträning och minskade beräkningskostnader, vilket effektiviserar ML-arbetsflödet.

Härnäst kommer vi att utforska den stegvisa processen för funktionsteknik.

Funktionsteknik Steg för Steg

  • Datainsamling: Det första steget är att samla in rådata från olika källor, som databaser, filer eller API:er.
  • Datarensning: När du har din data behöver du rensa den genom att identifiera och korrigera fel, inkonsekvenser eller extremvärden.
  • Hantera saknade värden: Saknade värden kan förvränga funktionslagret för ML-modellen. Om du ignorerar dem kommer din modell att bli partisk. Därför måste du undersöka och mata in saknade värden eller noggrant utelämna dem utan att påverka modellen.
  • Koda kategoriska variabler: Du behöver omvandla kategoriska variabler till numeriska format för maskininlärningsalgoritmer.
  • Skalning och normalisering: Skalning säkerställer att numeriska funktioner befinner sig på en konsekvent skala. Det förhindrar att funktioner med stora värden dominerar maskininlärningsmodellen.
  • Funktionsval: Detta steg hjälper dig att identifiera och behålla de mest relevanta funktionerna, minska dimensionaliteten och förbättra modellens effektivitet.
  • Skapande av funktioner: Ibland kan nya funktioner konstrueras utifrån befintliga för att fånga mer värdefull information.
  • Funktionstransformation: Transformationstekniker, som logaritmer eller effekttransformationer, kan göra din data mer lämpad för modellering.

Härnäst kommer vi att diskutera olika funktionsteknikmetoder.

Funktionsteknikmetoder

#1. Principal Component Analysis (PCA)

PCA förenklar komplexa data genom att hitta nya okorrelerade funktioner, så kallade huvudkomponenter. Du kan använda den för att reducera dimensionalitet och förbättra modellens prestanda.

#2. Polynomfunktioner

Att skapa polynomfunktioner innebär att addera potenser av befintliga funktioner för att fånga komplexa relationer i din data. Det hjälper din modell att förstå icke-linjära mönster.

#3. Hantering av Extremvärden

Extremvärden är ovanliga datapunkter som kan påverka prestandan hos dina modeller. Du behöver identifiera och hantera extremvärden för att förhindra snedvridna resultat.

#4. Log Transformation

Logaritmisk transformation kan hjälpa dig att normalisera data med en skev fördelning. Det minskar effekten av extrema värden, vilket gör datan mer lämpad för modellering.

#5. t-Distribuerad Stokastisk Granninbäddning (t-SNE)

t-SNE är användbart för att visualisera högdimensionell data. Det minskar dimensionaliteten och gör kluster mer synliga samtidigt som datastrukturen bevaras.

Med denna metod för funktionsextraktion representerar du datapunkter som punkter i ett lägre dimensionellt utrymme. Sedan placerar du liknande datapunkter som var nära varandra i det ursprungliga högdimensionella utrymmet så att de också är nära varandra i den lägre dimensionella representationen.

Den skiljer sig från andra dimensionsreducerande metoder genom att bevara strukturen och avstånden mellan datapunkter.

#6. One-Hot Encoding

One-hot-kodning omvandlar kategoriska variabler till binärt format (0 eller 1). Du får därmed nya binära kolumner för varje kategori. One-hot-kodning gör kategorisk data lämplig för ML-algoritmer.

#7. Räknekodning

Räknekodning ersätter kategoriska värden med hur många gånger de förekommer i datamängden. Detta kan fånga värdefull information från kategoriska variabler.

I den här metoden för funktionsteknik använder du frekvensen eller antalet för varje kategori som en ny numerisk funktion istället för att använda de ursprungliga kategorietiketterna.

#8. Funktionsstandardisering

Funktioner med större värden dominerar ofta funktioner med mindre värden. Därför kan ML-modellen lätt bli partisk. Standardisering förhindrar sådana orsaker till snedvridning i en maskininlärningsmodell.

Standardiseringsprocessen involverar vanligtvis följande två vanliga tekniker:

  • Z-Score Standardisering: Denna metod transformerar varje funktion så att den har ett medelvärde (genomsnitt) på 0 och en standardavvikelse på 1. Här subtraherar du medelvärdet för funktionen från varje datapunkt och dividerar resultatet med standardavvikelsen.
  • Min-Max-Skalning: Min-Max-skalning omvandlar data till ett specifikt område, vanligtvis mellan 0 och 1. Du kan åstadkomma detta genom att subtrahera minimivärdet för funktionen från varje datapunkt och dividera med omfånget.

#9. Normalisering

Genom normalisering skalas numeriska egenskaper till ett gemensamt intervall, vanligtvis mellan 0 och 1. Det bevarar de relativa skillnaderna mellan värden och säkerställer att alla funktioner är på samma villkor.

#1. Featuretools

Featuretools är ett Python-ramverk med öppen källkod som automatiskt skapar funktioner från tids- och relationsdatauppsättningar. Det kan användas med verktyg som du redan använder för att utveckla ML-pipelines.

Lösningen använder Deep Feature Synthesis för att automatisera funktionsteknik. Den har ett bibliotek med lågnivåfunktioner för att skapa funktioner. Featuretools har också ett API, vilket gör det idealiskt för exakt tidshantering.

#2. CatBoost

Om du söker ett bibliotek med öppen källkod som kombinerar flera beslutsträd för att skapa en kraftfull prediktiv modell, är CatBoost ett bra alternativ. Denna lösning ger korrekta resultat med standardparametrar, så du behöver inte lägga timmar på att finjustera dem.

CatBoost låter dig även använda icke-numeriska faktorer för att förbättra dina träningsresultat. Med den kan du även förvänta dig mer exakta resultat och snabbare förutsägelser.

#3. Feature Engine

Feature Engine är ett Python-bibliotek med flera transformatorer och utvalda funktioner som du kan använda för ML-modeller. Transformatorerna kan användas för variabeltransformation, skapande av variabler, datetime-funktioner, förbearbetning, kategorisk kodning, hantering av extremvärden och hantering av saknade data. Den kan automatiskt identifiera numeriska, kategoriska och datetime-variabler.

Feature Engineering Lärresurser

Onlinekurser och Virtuella Klasser

#1. Funktionsteknik för Maskininlärning i Python: Datacamp

Denna Datacamp-kurs om funktionsteknik för maskininlärning i Python gör det möjligt för dig att skapa nya funktioner som förbättrar prestandan hos din maskininlärningsmodell. Du kommer att lära dig hur du utför funktionsteknik och datamanipulation för att utveckla sofistikerade ML-applikationer.

#2. Funktionsteknik för Maskininlärning: Udemy

I Funktionsteknik för Maskininlärning lär du dig ämnen som imputering, variabelkodning, funktionsextraktion, diskretisering, datetime-funktionalitet, extremvärden, etc. Deltagarna lär sig också att arbeta med skeva variabler och hantera sällsynta, osedda och unika kategorier.

#3. Funktionsteknik: Pluralsight

Denna Pluralsight-utbildningsväg har totalt sex kurser. Dessa kurser hjälper dig att lära dig vikten av funktionsteknik i ML-arbetsflödet, sätt att tillämpa dess tekniker och funktionsextraktion från text och bilder.

#4. Funktionsval för Maskininlärning: Udemy

Med den här Udemy-kursen kan deltagarna lära sig om blandade funktioner, filter, omslag och inbäddade metoder, rekursiv eliminering av funktioner och uttömmande sökning. Den diskuterar också tekniker för funktionsval, inklusive de med Python, Lasso och beslutsträd. Kursen innehåller 5,5 timmars on-demand video och 22 artiklar.

#5. Funktionsteknik för Maskininlärning: Great Learning

Denna kurs från Great Learning introducerar dig till funktionsteknik samtidigt som du lär dig om över- och undersampling. Dessutom låter den dig utföra praktiska övningar på modellinställning.

#6. Funktionsteknik: Coursera

Gå med i Coursera-kursen för att använda BigQuery ML, Keras och TensorFlow för att utföra funktionsutveckling. Denna kurs på mellannivå täcker även avancerade funktionstekniker.

Digitala eller Inbundna Böcker

#1. Funktionsteknik för Maskininlärning

Den här boken lär dig hur du omvandlar funktioner till ett format som är lämpligt för maskininlärningsmodeller.

Den lär dig även principerna för funktionsteknik och praktisk tillämpning genom övningar.

#2. Funktionsteknik och Urval

Genom att läsa den här boken lär du dig metoderna för att utveckla prediktiva modeller i olika stadier.

Från den kan du lära dig tekniker för att hitta de bästa representationsformerna av prediktorer för modellering.

#3. Funktionsteknik på ett Enkelt Sätt

Boken är en guide för att förbättra förutsägelseförmågan hos ML-algoritmer.

Den lär dig att designa och skapa effektiva funktioner för ML-baserade applikationer genom att ge djupgående datainsikter.

#4. Feature Engineering Bookcamp

Den här boken behandlar praktiska fallstudier för att lära dig funktionstekniker för bättre ML-resultat och förbättrad dataanalys.

Genom att läsa denna bok säkerställer du att du kan leverera förbättrade resultat utan att lägga mycket tid på att finjustera ML-parametrarna.

#5. Konsten att Designteknik

Denna resurs fungerar som ett viktigt verktyg för alla dataanalytiker eller maskininlärningsingenjörer.

Boken använder en övergripande strategi för att diskutera grafer, texter, tidsserier, bilder och fallstudier.

Slutsats

Så här utför du funktionsteknik. Nu när du vet definitionen, den stegvisa processen, metoderna och tillgängliga lärresurser, kan du implementera detta i dina ML-projekt och se framgången!

Nästa steg är att kolla in artikeln om förstärkningsinlärning.