Utvärdera funktionsvikter
Du kan utvärdera hur viktig varje funktion var för personanpassningens maskininlärningsmodell genom att utföra en funktionsutvärdering av dina historiska loggdata. Funktionsutvärderingar är användbara för att:
- Förstå vilka funktioner som är viktigast eller minst viktiga för modellen.
- Brainstorma extra funktioner som kan vara till nytta för lärande, genom att härleda inspiration från vilka funktioner som för närvarande är viktiga i modellen.
- Identifiera potentiellt oviktiga eller icke-användbara funktioner som bör övervägas för ytterligare analys eller borttagning.
- Felsöka vanliga problem och fel som kan uppstå när du utformar funktioner och skickar dem till Personanpassning. Till exempel kan det vara problematiskt att använda GUID, tidsstämplar eller andra funktioner som vanligtvis är glesa . Läs mer om att förbättra funktioner.
Vad är en funktionsutvärdering?
Funktionsutvärderingar utförs genom träning och körning av en kopia av din aktuella modellkonfiguration på historiskt insamlade loggdata under en angiven tidsperiod. Funktioner ignoreras en i taget för att mäta skillnaden i modellprestanda med och utan varje funktion. Eftersom funktionsutvärderingarna utförs på historiska data finns det ingen garanti för att dessa mönster kommer att observeras i framtida data. Dessa insikter kan dock fortfarande vara relevanta för framtida data om dina loggade data har samlat in tillräcklig variabilitet eller icke-stationära egenskaper för dina data. Den aktuella modellens prestanda påverkas inte av att en funktionsutvärdering körs.
En funktionsviktspoäng är ett mått på funktionens relativa inverkan på belöningen under utvärderingsperioden. Funktionsviktspoäng är ett tal mellan 0 (minst viktigt) och 100 (viktigast) och visas i funktionsutvärderingen. Eftersom utvärderingen körs under en viss tidsperiod kan funktionsprioriteterna ändras när ytterligare data skickas till Personanpassning och när dina användare, scenarier och data ändras över tid.
Skapa en funktionsutvärdering
För att få poäng för funktionspri betydelse måste du skapa en funktionsutvärdering under en period med loggade data för att generera en rapport som innehåller funktionsprihetspoängen. Den här rapporten kan visas i Azure Portal. Så här skapar du en funktionsutvärdering:
- Gå till Azure Portal webbplats
- Välj din personanpassningsresurs
- Välj avsnittet Övervaka i sidonavigeringsfönstret
- Välj fliken Funktioner
- Välj "Skapa rapport" så ska en ny skärm visas
- Välj ett namn för rapporten
- Välj start- och sluttider för utvärderingsperioden
- Välj "Skapa rapport"
Därefter bör rapportnamnet visas i rapporttabellen nedan. Att skapa en funktionsutvärdering är en tidskrävande process, där tiden för slutförande beror på mängden data som skickas till Personanpassning under utvärderingsperioden. Medan rapporten genereras anger kolumnen Status "Körs" för utvärderingen och uppdateras till "Lyckades" när den har slutförts. Kom tillbaka regelbundet för att se om utvärderingen är klar.
Du kan köra flera funktionsutvärderingar under olika tidsperioder som personaliserarresursen har loggdata. Kontrollera att datakvarhållningsperioden är tillräckligt lång för att du ska kunna utföra utvärderingar av äldre data.
Tolka viktiga poäng för funktioner
Funktioner med hög prioritetspoäng
Funktioner med poäng med högre prioritet var mer inflytelserika för modellen under utvärderingsperioden jämfört med de andra funktionerna. Viktiga funktioner kan ge inspiration för att utforma ytterligare funktioner som ska ingå i modellen. Om du till exempel ser att kontextfunktionerna "IsWeekend" eller "IsWeekday" har stor betydelse för dagligvaruhandeln kan det vara så att helgdagar eller långhelger också kan vara viktiga faktorer, så du kanske vill överväga att lägga till funktioner som samlar in den här informationen.
Funktioner med låg prioritetspoäng
Funktioner med poäng med låg prioritet är bra kandidater för ytterligare analys. Inte alla funktioner för låga poäng är nödvändigtvis dåliga eller inte användbara eftersom låga poäng kan inträffa av en eller flera orsaker. Listan nedan kan hjälpa dig att komma igång med att analysera varför dina funktioner kan ha låga poäng:
Funktionen observerades sällan i data under utvärderingsperioden.
- Om antalet förekomster av den här funktionen är lågt jämfört med andra funktioner kan det tyda på att funktionen inte fanns tillräckligt ofta för att modellen skulle kunna avgöra om den är värdefull eller inte.
Funktionsvärdena hade inte mycket mångfald eller variation.
- Om antalet unika värden för den här funktionen är lägre än förväntat kan det tyda på att funktionen inte varierade mycket under utvärderingsperioden och inte ger någon större insikt.
Funktionsvärdena var för bullriga (slumpmässiga) eller för distinkta och gav lite värde.
- Kontrollera antalet unika värden i funktionsutvärderingen. Om antalet unika värden för den här funktionen är högre än förväntat, eller högt jämfört med andra funktioner, kan detta tyda på att funktionen var för bullrig under utvärderingsperioden.
Det finns ett problem med data eller formatering.
- Kontrollera att funktionerna är formaterade och skickas till Personanpassning på det sätt som du förväntar dig.
Funktionen kanske inte är värdefull för att modellera inlärning och prestanda om funktionspoängen är låg och orsakerna ovan inte gäller.
- Överväg att ta bort funktionen eftersom den inte hjälper din modell att maximera den genomsnittliga belöningen.
Om du tar bort funktioner med poäng med låg prioritet kan du påskynda modellträningen genom att minska mängden data som behövs för att lära dig. Det kan också potentiellt förbättra modellens prestanda. Detta är dock inte garanterat och ytterligare analys kan behövas. Läs mer om att utforma kontext- och åtgärdsfunktioner.
Vanliga problem och steg för att förbättra funktioner
Skicka funktioner med hög kardinalitet. Funktioner med hög kardinalitet är de som har många distinkta värden som sannolikt inte upprepas över många händelser. Personlig information som är specifik för en enskild person (till exempel namn, telefonnummer, kreditkortsnummer, IP-adress) bör till exempel inte användas med Personanpassning.
Skicka användar-ID:t Med ett stort antal användare är det osannolikt att den här informationen är relevant för personanpassningsinlärning för att maximera den genomsnittliga belöningspoängen. Att skicka användar-ID:t (även om det inte är personlig information) kommer sannolikt att lägga till mer brus i modellen och rekommenderas inte.
Funktionerna är för glesa. Värden är distinkta och förekommer sällan mer än några gånger. Exakta tidsstämplar ned till den andra kan vara mycket glesa. Det kan göras mer kompakt (och därför effektivt) genom att gruppera tider i "morgon", "middag" eller "eftermiddag", till exempel.
Platsinformation drar också vanligtvis nytta av att skapa bredare klassificeringar. En latitud-longitudkoordinat som Lat: 47.67402° N, Long: 122.12154° W är till exempel för exakt och tvingar modellen att lära sig latitud och longitud som distinkta dimensioner. När du försöker anpassa baserat på platsinformation hjälper det till att gruppera platsinformation i större sektorer. Ett enkelt sätt att göra detta är att välja en lämplig avrundningsprecision för lat-long-talen och kombinera latitud och longitud i "områden" genom att göra dem till en sträng. Till exempel ett bra sätt att representera Lat: 47.67402° N, Long: 122.12154° W i regioner cirka några kilometer bred skulle vara "plats":"34.3 , 12.1".
- Expandera funktionsuppsättningar med extrapolerad information Du kan också få fler funktioner genom att tänka på outforskade attribut som kan härledas från information som du redan har. Är det till exempel möjligt att en helg kontra veckodag framkallar ett annat beteende än användarna i en fiktiv anpassning av filmlistan? Tiden kan utökas till att ha attributet "weekend" eller "weekday". Driver nationella/regionala kultursemestrar uppmärksamhet på vissa filmtyper? Till exempel är ett "Halloween"-attribut användbart på platser där det är relevant. Är det möjligt att regnigt väder har betydande inverkan på valet av en film för många människor? Med tid och plats kan en vädertjänst tillhandahålla den informationen och du kan lägga till den som en extra funktion.
Nästa steg
Analysera principprestanda med en offlineutvärdering med Personanpassning.