Utvärdera rekommenderare

Viktigt

Stödet för Machine Learning Studio (klassisk) upphör den 31 augusti 2024. Vi rekommenderar att du byter till Azure Machine Learning innan dess.

Från och med den 1 december 2021 kan du inte längre skapa nya Machine Learning Studio-resurser (klassisk). Du kan fortsätta att använda befintliga Machine Learning Studio-resurser (klassisk) till och med den 31 augusti 2024.

Dokumentationen om ML Studio (klassisk) håller på att dras tillbaka och kanske inte uppdateras i framtiden.

Utvärderar noggrannheten för modellförutsägelser för rekommenderare

Kategori: Machine Learning/Utvärdera

Anteckning

Gäller endast för: Machine Learning Studio (klassisk)

Liknande dra och släpp-moduler är tillgängliga i Azure Machine Learning designer.

Modulöversikt

I den här artikeln beskrivs hur du använder modulen Evaluate Recommender i Machine Learning Studio (klassisk) för att mäta noggrannheten för förutsägelser som görs av en rekommendationsmodell. Med den här modulen kan du utvärdera fyra olika typer av rekommendationer:

  • Klassificeringar som förutsägs för en viss användare och ett visst objekt

  • Objekt som rekommenderas för en viss användare

  • En lista över användare som har relaterats till en viss användare

  • En lista över objekt som har relaterats till ett visst objekt

När du skapar förutsägelser med hjälp av en rekommendationsmodell returneras något olika resultat för var och en av dessa förutsägelsetyper som stöds. Modulen Evaluate Recommender tar bort typen av förutsägelse från kolumnformatet för den poängade datauppsättningen. Den poängade datauppsättningen kan till exempel innehålla:

  • trippel med användarobjektklassificering
  • användare och deras rekommenderade objekt
  • användare och deras relaterade användare
  • objekt och deras relaterade objekt

Modulen tillämpar även lämpliga prestandamått baserat på vilken typ av förutsägelse som görs.

Tips

Lär dig allt du behöver veta om upplevelsen från slutet av att skapa ett rekommendationssystem i den här självstudien från .NET-utvecklingsteamet. Innehåller exempelkod och diskussion om hur du anropar Machine Learning från ett program.

Skapa rekommendationsmotor för .NET-program med Machine Learning

Så här konfigurerar du Evaluate Recommender

Modulen Evaluate Recommender jämför förutsägelser från en rekommendationsmodell med motsvarande "grundsanning"-data. Till exempel skapar modulen Poängmatchning rekommenderare poängade datauppsättningar som kan analyseras med Evaluate Recommender.

Krav

Evaluate Recommender kräver följande datauppsättningar som indata.

Testa datauppsättningen

Testdatamängden innehåller data om "grundsanning" i form av trippelr av användarobjektsklassificering.

Om du redan har en datauppsättning som innehåller trippelr för användarobjektklassificering kan du använda modulen Dela upp data med alternativet RecommenderSplit för att skapa en träningsdatauppsättning och en relaterad testuppsättning från den befintliga datauppsättningen.

Poängad datauppsättning

Den poängsatte datamängden innehåller de förutsägelser som genererades av rekommendationsmodellen.

Kolumnerna i den här andra datauppsättningen beror på vilken typ av förutsägelse du utförde under bedömning. Till exempel kan den poängade datauppsättningen innehålla något av följande:

  • Användare, objekt och klassificeringar som användaren sannolikt skulle ge för objektet
  • En lista över användare och objekt som rekommenderas för dem
  • En lista över användare med användare som förmodligen liknar dem
  • En lista med objekt, tillsammans med smiliar-objekt

Mått

Prestandamått för modellen genereras baserat på typ av indata. Mer information finns i följande avsnitt:

Utvärdera förutsagda omdömen

När du utvärderar förutsagda klassificeringar måste den poängade datauppsättningen (den andra indatan till Evaluate Recommender) innehålla trippelr av användarobjekt som uppfyller dessa krav:

  • Den första kolumnen i datauppsättningen innehåller användaridentifierare.

  • Den andra kolumnen innehåller objektidentifierarna.

  • Den tredje kolumnen innehåller motsvarande klassificeringar för användarobjekt.

Viktigt

För att utvärderingen ska lyckas måste kolumnnamnen Uservara Item, Ratingrespektive .

Evaluate Recommender jämför klassificeringarna i datamängden med den förutsagda betygen för den poängräknade datauppsättningen och beräknar MEAN ABSOLUTE Error (MAE) och RMSE ( root mean squared error ).

De andra parametrarna i Evaluate Recommender har ingen effekt på utvärderingen av klassificeringsförutsägelser.

Utvärdera objektrekommendationer

När du utvärderar objektrekommendationen använder du en poängad datauppsättning som innehåller de rekommenderade objekten för varje användare:

  • Den första kolumnen i datauppsättningen måste innehålla användaridentifieraren.

  • Alla efterföljande kolumner ska innehålla motsvarande rekommenderade objektidentifierare, sorterade efter hur relevant ett objekt är för användaren.

    Innan du ansluter den här datauppsättningen rekommenderar vi att du sorterar datauppsättningen så att de mest relevanta objekten kommer först.

De andra parametrarna i Evaluate Recommender har ingen effekt på utvärderingen av objektrekommendationer.

Viktigt

För att Evaluate Recommender ska fungera måste kolumnnamnen vara User, Item 1, Item 2Item 3 och så vidare.

Evaluate Recommender beräknar den genomsnittliga normaliserade rabatterade kumulativa vinsten (NDCG) och returnerar den i utdatauppsättningen.

Eftersom det inte går att känna till den faktiska "faktiska sanning" för de rekommenderade objekten använder Evaluate Recommender klassificeringarna för användarobjekt i testdatamängden som vinster vid beräkningen av NDCG. Om du vill utvärdera modulen för bedömning av rekommenderare får du bara skapa rekommendationer för objekt med sanningsklassificeringar (i testdatamängden).

Utvärdera förutsägelser för relaterade användare

När du utvärderar förutsägelser för relaterade användare använder du en poängad datauppsättning som innehåller de relaterade användarna för varje användare av intresse:

  • Den första kolumnen måste innehålla identifierare för varje användare av intresse.

  • Alla efterföljande kolumner innehåller identifierare för de förutsagda relaterade användarna. Relaterade användare sorteras efter styrkan hos realtionship (den mest relaterade användaren först).

  • För att Evaluate Recommender ska fungera måste kolumnnamnen vara User, Related User 1, Related User 2Related User 3, och så vidare.

Tips

Du kan påverka utvärderingen genom att ange det minsta antalet objekt som en användare av intresse och dess relaterade användare måste ha gemensamt.

Evaluate Recommender beräknar den genomsnittliga normaliserade, rabatterade kumulativa vinsten (NDCG), baserat på Längd (L1 Sim NDCG) och Euclidean (L2 Sim NDCG) avstånd och returnerar båda värdena i utdatauppsättningen. Eftersom det inte finns någon faktisk sanning för de relaterade användarna använder Evaluate Recommender följande procedur för att beräkna de genomsnittliga NDCG:erna.

För varje användare av intresse i den poängade datauppsättningen:

  1. Hitta alla objekt i testdatamängden som har klassificerats av både användaren av intresse och den relaterade användaren som övervägs.

  2. Skapa två vektorer från klassificeringarna för dessa objekt: en för användaren av intresse och en för den relaterade användaren som är i fråga.

  3. Beräkna vinsten som likheten mellan de resulterande två klassificeringsvektorerna, vad gäller deras L1- eller L2-avstånd (Euclidean).

  4. Beräkna L1 Sim NDCG och L2 Sim NDCG med alla relaterade användares vinster.

  5. Medelvärde för NDCG-värdena för alla användare i den poängade datauppsättningen.

Med andra ord beräknas vinsten som likheten (normaliserade Kors eller euklidiska avstånd) mellan en användare av intresse (posten i den första kolumnen i den poängräknade datauppsättningen) och en viss relaterad användare (posten i den n:e kolumnen i den poängtagna datauppsättningen). Vinsten med det här användarparet beräknas med alla objekt för vilka båda objekten har klassificerats i ursprungliga data (testuppsättning). NDCG beräknas sedan genom att aggregera de enskilda vinsterna för en enskild användare av intresse och alla relaterade användare med hjälp av logaritmisk rabatt. Det innebär att ett NDCG-värde beräknas för varje användare av intresse (varje rad i den poängräknade datauppsättningen). Det tal som slutligen rapporteras är det aritmetiska medelvärdet för alla användare av intresse i den poängade datauppsättningen (d.v.s. dess rader).

För att utvärdera måste därför modulen för bedömning av rekommenderare endast förutsäga relaterade användare som har objekt med klassificeringar för grund sanning (i testdatamängden).

Utvärdera förutsägelser av relaterade objekt

När du utvärderar förutsägelsen av relaterade objekt använder du en poängad datauppsättning som innehåller de relaterade objekten för varje objekt av intresse:

  • Den första kolumnen måste innehålla identifierare för intressanta objekt.

  • Alla efterföljande kolumner ska innehålla identifierare för de förutsagda relaterade objekten, sorterade efter hur relaterade de är till det intressanta objektet (det mest relaterade objektet först).

  • För att Evaluate Recommender ska fungera måste kolumnnamnen vara Item, Related Item 1, Related Item 2Related Item 3, och så vidare.

Tips

Du kan påverka utvärderingen genom att ange det minsta antal användare som ett objekt av intresse och dess relaterade objekt måste ha gemensamt.

Evaluate Recommender beräknar den genomsnittliga normaliserade, rabatterade kumulativa vinsten (NDCG) baserat på Längd (L1 Sim NDCG) och Euclidean (L2 Sim NDCG) avstånd och returnerar båda värdena i utdatauppsättningen. Eftersom det inte finns någon faktisk sanning för de relaterade objekten beräknar Evaluate Recommender de genomsnittliga NDCG:erna enligt följande:

För varje objekt av intresse i den poängade datauppsättningen:

  1. Hitta alla användare i testdatamängden som har klassificerat både det intressanta objektet och det relaterade objektet som övervägs.

  2. Skapa två vektorer från klassificeringarna för dessa användare, en för det intressanta objektet och för det relaterade objektet som övervägs.

  3. Beräkna vinsten som likheten mellan de resulterande två klassificeringsvektorerna vad gäller deras L1- eller L2-avstånd (Euclidean).

  4. Beräkna L1 Sim NDCG och L2 Sim NDCG med hjälp av alla relaterade objekt.

  5. Medelvärde för NDCG-värden för alla intressanta objekt i den poängade datauppsättningen.

Med andra ord beräknas vinsten som likheten (normaliserade Kors eller euklidiska avstånd) mellan ett objekt av intresse (posten i den första kolumnen i den poängräknade datauppsättningen) och ett antaget relaterat objekt (posten i den n:e kolumnen i den poängräknade datauppsättningen). Vinsten med det här objektparet beräknas med hjälp av alla användare som har klassificerat båda dessa objekt i ursprungliga data (testuppsättning). NDCG beräknas sedan genom att aggregera de enskilda vinsterna för ett enskilt objekt av intresse och alla relaterade objekt med hjälp av logaritmisk rabatt. Det innebär att ett NDCG-värde beräknas för varje objekt av intresse (varje rad i den poängräknade datauppsättningen). Det tal som slutligen rapporteras är det aritmetiska medelvärdet för alla intressanta objekt i den poängade datauppsättningen (dvs. dess rader).

För att utvärdera måste därför modulen för bedömning av rekommenderare endast förutsäga relaterade objekt med sanningsklassificeringar (i testdatamängden).

Exempel

Exempel på hur rekommendationsmodeller används i Machine Learning finns i Azure AI Gallery:

Förväntade indata

Namn Typ Description
Testa datauppsättningen Datatabell Testa datauppsättningen
Poängad datauppsättning Datatabell Poängad datauppsättning

Modulparametrar

Name Intervall Typ Standardvärde Description
Minsta antal objekt som frågeanvändaren och den relaterade användaren måste ha klassificerat gemensamt >= 1 Integer 2 Ange det minsta antalet objekt som måste ha klassificerats av både frågeanvändaren och den relaterade användaren

Den här parametern är valfri
Minsta antal användare som frågeobjektet och det relaterade objektet måste ha klassificerats av gemensamt >= 1 Integer 2 Ange det minsta antalet användare som måste ha klassificerat både frågeobjektet och det relaterade objektet

Den här parametern är valfri

Utdata

Namn Typ Description
Metric Datatabell En tabell med utvärderingsmått

Undantag

Undantag Description
Fel 0022 Undantaget inträffar om antalet valda kolumner i indatauppsättningen inte är lika med det förväntade antalet.
Fel 0003 Undantaget inträffar om en eller flera indata är null eller tomma.
Fel 0017 Undantaget inträffar om en eller flera angivna kolumner har typen stöds inte av den aktuella modulen.
Fel 0034 Undantaget inträffar om det finns fler än ett omdöme för ett visst användarobjektpar.
Fel 0018 Undantaget inträffar om indatauppsättningen inte är giltig.
Fel 0002 Undantaget inträffar om en eller flera parametrar inte kunde parsas eller konverteras från den angivna typen till krävs av målmetodtypen.

En lista över fel som är specifika för Studio-moduler (klassisk) finns i Machine Learning felkoder.

En lista över API-undantag finns i Machine Learning REST API felkoder.

Se även

Träna Matchbox-rekommenderaren
Poängmatchningbox-rekommenderare