Sdílet prostřednictvím


Rozdělení dat pomocí doporučátoru Rozdělení

Důležité

Podpora studia Machine Learning (Classic) skončí 31. srpna 2024. Doporučujeme do tohoto data přejít na službu Azure Machine Learning.

Od 1. prosince 2021 nebude možné vytvářet nové prostředky studia Machine Learning (Classic). Do 31. srpna 2024 můžete pokračovat v používání stávajících prostředků studia Machine Learning (Classic).

Dokumentace ke studiu ML (Classic) se vyřazuje z provozu a v budoucnu se nemusí aktualizovat.

Tento článek popisuje, jak používat možnost Recommender Split v modulu Rozdělení dat v Machine Learning Studiu (klasickém). Tato možnost je užitečná, když potřebujete připravit trénovací a testovací datové sady pro použití s modelem doporučení. Tyto modely vyžadují nejen konkrétní formát, ale může být velmi obtížné rozdělit hodnocení, uživatele a položky vyváženým způsobem bez speciálních nástrojů.

Poznámka

Platí pro: Machine Learning Studio (classic)

Podobné moduly s přetahováním jsou k dispozici v Azure Machine Learning návrháři.

Možnost Doporučené rozdělení tento proces usnadňuje tím, že se zeptáte na typ modelu doporučení, se který pracujete: například doporučíte položky, navrhnete hodnocení nebo najdete související uživatele? Potom rozdělí datovou sadu podle zadaných kritérií, jako je například způsob zpracování studených uživatelů nebo studených položek.

Když rozdělíte datové sady, modul vrátí dvě datové sady, jednu určenou pro trénování a druhou pro testování nebo vyhodnocení modelu. Pokud vstupní datová sada obsahuje jakákoli další data na instanci (například hodnocení), zachovají se ve výstupu.

Obecné informace o dělení dat pro experimenty strojového učení najdete v tématu

Další možnosti v modulu Rozdělit data podporují různé způsoby rozdělení dat:

Dělení datové sady používané modelem doporučení

Možnost Doporučené rozdělení je k dispozici speciálně pro data používaná k trénování systémů doporučení.

Než použijete tuto možnost, ujistěte se, že jsou vaše data v kompatibilním formátu. Doporučovač funguje za předpokladu, že datová sada se skládá pouze z párů uživatelských položek nebo trojitých hodnot hodnocení uživatelských položek. Podrobnosti najdete v části Požadavky na vstupní data v tomto článku.

  1. Přidejte do experimentu modul Rozdělit data a připojte ho jako vstup k datové sadě, kterou chcete rozdělit.

  2. V části Režim rozdělování vyberte Recommender split (Doporučovací rozdělení).

  3. Pokud chcete řídit rozdělení hodnot, nastavte následující možnosti. Zadejte procento reprezentované jako číslo v rozmezí od 0 do 1.

    • Jen zlomek uživatelů školení: Určete podíl uživatelů, kteří mají být přiřazeni pouze k trénovací sadě dat. To znamená, že řádky by se nikdy nepoužíl k otestování modelu.

    • Zlomek hodnocení testovacích uživatelů pro trénování: Určete, že se některá část hodnocení uživatelů, která jste shromáždili, může použít k trénování.

    • Zlomek studených uživatelů: Studení uživatelé jsou uživatelé, se kterými se systém ještě nesetkají. Vzhledem k tomu, že systém o těchto uživatelích nemá žádné informace, jsou obvykle cenné pro trénování, ale předpovědi můžou být méně přesné.

    • Zlomek studených položek: Studené položky jsou položky, se kterými se systém předtím nesetkají. Vzhledem k tomu, že systém o těchto položkách nemá žádné informace, jsou cenné pro trénování, ale předpovědi můžou být méně přesné.

    • Zlomek ignorování uživatelů: Tato možnost umožňuje doporučovaterovi ignorovat některé uživatele, což vám umožní vytrénovat model na podmnožině dat. To může být užitečné z důvodů výkonu. Zadáte procento uživatelů, které se mají ignorovat.

    • Zlomek ignorování položek: Doporučovač může ignorovat některé položky a trénovat model na podmnožině dat. To může být užitečné z důvodů výkonu. Určíte procento položek, které se budou ignorovat.

  4. Odebrání občas vytvářených studených položek: Tato možnost je obvykle nastavená na nulu, aby se zajistilo, že všechny entity v testovací sadě jsou zahrnuté v trénovací sadě.

    Položka je "občas studená", pokud ji pokryje pouze testovací sada a nebyla explicitně zvolena jako studená. Takové položky je možné vytvořit podle kroků (4) a (6) v algoritmu popsaném v části How Recommender Data is Split (Rozdělení dat doporučení).

  5. Náhodné seed pro doporučovač: Zadejte hodnotu předsíní, pokud chcete data pokaždé rozdělit stejným způsobem. V opačném případě jsou vstupní data ve výchozím nastavení náhodně rozdělena pomocí systémové hodnoty hodin jako předsíně.

  6. Spusťte experiment.

Příklady

Příklady rozdělení sady hodnocení a funkcí používaných pro trénování nebo testování modelu doporučení doporučujeme, abyste si prohlédněte názorný postup, který je součástí tohoto ukázkového experimentu v Azure AI Gallery: Doporučení filmů

Technické poznámky

Tato část obsahuje podrobnosti o implementaci, tipy a odpovědi na nejčastější dotazy.

Požadavky na vstupní data

Doporučovač funguje za předpokladu, že datová sada se skládá pouze z párů uživatelských položek nebo trojitých hodnot hodnocení uživatelských položek. Proto modul Rozdělit data nemůže pracovat s datovými sadami, které mají více než tři sloupce, aby nedocházelo k záměně s daty typu funkce.

Pokud datová sada obsahuje příliš mnoho sloupců, může se zobrazit tato chyba:

Chyba 0022: Počet vybraných sloupců ve vstupní datové sadě se nerovná x

Jako alternativní řešení můžete některé sloupce odebrat pomocí možnosti Vybrat sloupce v datové sadě. Sloupce můžete později přidat zpět pomocí modulu Přidat sloupce.

Případně pokud vaše datová sada obsahuje mnoho funkcí, které chcete v modelu použít, rozdělte datovou sadu pomocí jiné možnosti a model natrénování pomocí trénování modelu, a ne Train Matchbox Recommender (Trénování doporučovače matchboxu).

Podrobné informace o podporovaných formátech dat najdete v tématu Trénování doporučování Matchboxu.

Tipy k používání

  • Pokud datová sada neobsahuje alespoň dva řádky, dojde k chybě.

  • Pokud zadáte číslo jako procento nebo pokud použijete řetězec, který obsahuje znak "%", hodnota se interpretuje jako procento.

    Všechny procentuální hodnoty musí být v rozsahu (0, 100) a nesmí obsahovat hodnoty 0 a 100.

  • Zadáte-li číslo nebo procento, které je číslo s plovoucí desetinnou čárkou menší než jedno, a nepoužívejte symbol procenta (%), je číslo interpretováno jako proporcionální hodnota.

Podrobnosti o implementaci

Při rozdělování dat na trénovací a testovací sady pro použití s modelem doporučení se používá následující algoritmus:

  1. Požadovaný zlomek ignorovaných položek se odebere se všemi přidruženými pozorováními.

  2. Požadovaný zlomek studených položek se přesune do testovací sady se všemi přidruženými pozorováními.

  3. Požadovaný zlomek ignorovaných uživatelů, kteří zůstanou po prvních dvou krocích, se odebere se všemi přidruženými pozorováními.

  4. Požadovaný zlomek studených uživatelů, kteří zůstanou po prvních dvou krocích, se přesune do testovací sady se všemi přidruženými pozorováními.

  5. Požadovaný podíl uživatelů pouze pro trénování, kteří zůstanou po prvních dvou krocích, se přesune do trénovací sady se všemi přidruženými pozorováními.

  6. Pro každého uživatele, který zůstane po všech předchozích krocích, se požadovaný podíl hodnocení testovacích uživatelů pro trénování přesune do trénovací sady a zbytek se přesune do testovací sady.

    Alespoň jedno pozorování se vždy přesune do trénovací sady pro každého uživatele.

  7. V případě požadavku lze instance, které jsou přidruženy k příležitostně vytvářeným studeným položkám, odebrat z testovací sady.

    Položka se říká, že je "občas studená", pokud ji pokryje pouze testovací sada a nebyla explicitně zvolena jako studená. Tyto položky je možné vytvořit podle kroků (4) a (6).

    Předpokládanou možností je, že požadovaný počet studených uživatelů a položek je nastaven na nulu. Tím se zajistí, že všechny entity v testovací sadě budou součástí trénovací sady.

Viz také

Rozdělení datovéčásti a rozdělení