Logistieke regressie met twee klassen
Belangrijk
De ondersteuning voor Azure Machine Learning-studio (klassiek) eindigt op 31 augustus 2024. U wordt aangeraden om vóór die datum over te stappen naar Azure Machine Learning.
Vanaf 1 december 2021 kunt u geen nieuwe resources voor Azure Machine Learning-studio (klassiek) meer maken. Tot en met 31 augustus 2024 kunt u de bestaande resources van Azure Machine Learning-studio (klassiek) blijven gebruiken.
- Zie informatie over het verplaatsen machine learning van ML Studio (klassiek) naar Azure Machine Learning.
- Meer informatie over Azure Machine Learning.
De documentatie van ML-studio (klassiek) wordt buiten gebruik gesteld en wordt in de toekomst mogelijk niet meer bijgewerkt.
Hiermee maakt u een logistic regression-model met twee klassen
Categorie: Machine Learning/ Model/classificatie initialiseren
Notitie
Van toepassing op: Machine Learning Studio (klassiek)
Vergelijkbare modules voor slepen en neerzetten zijn beschikbaar in Azure Machine Learning designer.
Moduleoverzicht
In dit artikel wordt beschreven hoe u de module Two-Class Logistic Regression in Machine Learning Studio (klassiek) gebruikt om een logistiek regressiemodel te maken dat kan worden gebruikt om twee (en slechts twee) resultaten te voorspellen.
Logistieke regressie is een bekende statistische techniek die wordt gebruikt voor het modelleren van veel soorten problemen. Dit algoritme is een leermethode onder supervisie ; Daarom moet u een gegevensset verstrekken die al de resultaten bevat om het model te trainen.
Meer informatie over logistieke regressie
Logistieke regressie is een bekende methode in statistieken die wordt gebruikt om de waarschijnlijkheid van een resultaat te voorspellen en is vooral populair bij classificatietaken. Het algoritme voorspelt de kans op het optreden van een gebeurtenis door gegevens aan te passen aan een logistieke functie. Zie de sectie Technische notities voor meer informatie over deze implementatie.
In deze module is het classificatiealgoritme geoptimaliseerd voor dichotomische of binaire variabelen. Als u meerdere resultaten moet classificeren, gebruikt u de module Multiclass Logistic Regression .
Logistieke regressie Two-Class configureren
Als u dit model wilt trainen, moet u een gegevensset met een label of klassekolom verstrekken. Omdat deze module is bedoeld voor problemen met twee klassen, moet het label of de klassekolom exact twee waarden bevatten.
De labelkolom kan bijvoorbeeld [Voted] zijn met mogelijke waarden van Ja of Nee. Of het kan [kredietrisico] zijn, met mogelijke waarden 'Hoog' of 'Laag'.
Voeg de module Two-Class Logistic Regression toe aan uw experiment in Studio (klassiek).
Geef op hoe u het model wilt trainen door de optie Trainer-modus maken in te stellen.
Enkele parameter: als u weet hoe u het model wilt configureren, kunt u een specifieke set waarden opgeven als argumenten.
Parameterbereik: als u niet zeker bent van de beste parameters, kunt u de optimale parameters vinden door meerdere waarden op te geven en de module Tune Model Hyperparameters te gebruiken om de optimale configuratie te vinden. De docent doorsteert meerdere combinaties van de instellingen en bepaalt de combinatie van waarden die het beste model produceert.
Geef voor Optimalisatietolerantie een drempelwaarde op die moet worden gebruikt bij het optimaliseren van het model. Als de verbetering tussen iteraties onder de opgegeven drempelwaarde komt, wordt het algoritme beschouwd als geconvergeerd op een oplossing en stopt de training.
Voor L1-regularisatiegewicht en L2-regularisatiegewicht typt u een waarde die moet worden gebruikt voor de regularisatieparameters L1 en L2. Een waarde die niet nul is, wordt aanbevolen voor beide.
Regularisatie is een methode om overfitting te voorkomen door modellen met extreme coëfficiëntwaarden te autoriseren. Regularisatie werkt door de boete die is gekoppeld aan coëfficiëntwaarden toe te voegen aan de fout van de hypothese. Een nauwkeurig model met extreme coëfficiëntwaarden zou dus meer worden geseraliseerd, maar een minder nauwkeurig model met meer voorzichtige waarden zou minder worden gedupaliseerd.
L1- en L2-regularisatie hebben verschillende effecten en toepassingen.
L1 kan worden toegepast op sparse modellen, wat handig is bij het werken met hoogdimensionale gegevens.
L2-regularisatie daarentegen verdient de voorkeur voor gegevens die niet verspreid zijn.
Dit algoritme ondersteunt een lineaire combinatie van L1- en L2-regularisatiewaarden: dat wil zeggen, als
x = L1
y = L2
en ,ax + by = c
en definieert vervolgens de lineaire periode van de regularisatietermen.Notitie
Wilt u meer informatie over L1- en L2-regularisatie? In het volgende artikel wordt beschreven hoe L1- en L2-regularisatie verschillen en hoe deze van invloed zijn op modelfitting, met codevoorbeelden voor logistieke regressie en neurale netwerkmodellen: L1- en L2-regularisatie voor Machine Learning
Er zijn verschillende lineaire combinaties van L1- en L2-termen ontworpen voor logistieke regressiemodellen: bijvoorbeeld elastic net regularization. We raden u aan om naar deze combinaties te verwijzen om een lineaire combinatie te definiëren die effectief is in uw model.
Geef voor Geheugengrootte voor L-BFGS de hoeveelheid geheugen op die moet worden gebruikt voor L-BFGS-optimalisatie .
L-BFGS staat voor 'beperkt geheugen Broyden-Termijn-Goldfarb-Shanno'. Het is een optimalisatiealgoritme dat populair is voor het schatten van parameters. Deze parameter geeft het aantal eerdere posities en kleurovergangen aan dat moet worden opgeslagen voor de berekening van de volgende stap.
Deze optimalisatieparameter beperkt de hoeveelheid geheugen die wordt gebruikt voor het berekenen van de volgende stap en richting. Wanneer u minder geheugen opgeeft, is de training sneller maar minder nauwkeurig.
Bij Willekeurige getal-seed typt u een geheel getal. Het definiëren van een seed-waarde is belangrijk als u wilt dat de resultaten over meerdere runs van hetzelfde experiment kunnen worden geproduceerd.
Selecteer de optie Onbekende categorische niveaus toestaan om een extra 'onbekend' niveau te maken in elke categorische kolom. Als u dit doet, worden alle waarden (niveaus) in de testset die niet beschikbaar zijn in de trainingsset toegewezen aan dit 'onbekende' niveau.
Voeg een getagde gegevensset toe aan het experiment en verbind een van de trainingsmodules.
Als u de modus Create train mode instelt op Single Parameter, gebruikt u de module Train Model .
Als u De modus Maken in stelt op Parameterbereik, gebruikt u de module Tune Model Hyperparameters .
Notitie
Als u een parameterbereik doorgeeft aan Train Model, wordt alleen de eerste waarde in de lijst met parameterbereiken gebruikt.
Als u één set parameterwaarden doorgeeft aan de module Tune Model Hyperparameters , worden de waarden genegeerd en worden de standaardwaarden voor de learner genegeerd wanneer er een bereik van instellingen voor elke parameter wordt verwacht.
Als u de optie Parameterbereik selecteert en één waarde voor een parameter ingeeft, wordt die ene waarde die u hebt opgegeven, gedurende de hele wisseling gebruikt, zelfs als andere parameters binnen een bereik van waarden veranderen.
Voer het experiment uit.
Resultaten
Nadat de training is voltooid:
Als u een samenvatting wilt zien van de parameters van het model, samen met de functiegewichten die u hebt geleerd tijdens de training, klikt u met de rechtermuisknop op de uitvoer van Hyperparameters trainen of Model afstemmen en selecteert u Visualiseren.
Als u voorspellingen wilt doen over nieuwe gegevens, gebruikt u het getrainde model en nieuwe gegevens als invoer voor de module Score Model .
Als u kruisvalidatie wilt uitvoeren voor een gelabelde gegevensset, verbindt u de gegevens en het ongetrainde model met Kruisvalidatiemodel.
Voorbeelden
Zie de volgende voorbeelden van hoe dit leeralgoritme wordt Azure AI Gallery:
Detectie van binnendringing in het netwerk: maakt gebruik van binaire logistieke regressie om te bepalen of een case een inbraak vertegenwoordigt.
Kruisvalidatie voor binaire classificatie: demonstreert het gebruik van logistieke regressie in een typische experimentele werkstroom, waaronder modelevaluatie.
Technische opmerkingen
Deze sectie bevat implementatiedetails, tips en antwoorden op veelgestelde vragen.
Gebruikstips
Logistieke regressie vereist numerieke variabelen. Wanneer u categorische kolommen als variabele gebruikt, worden de Machine Learning daarom intern geconver converteert naar een indicator matrix.
Voor datums en tijden wordt een numerieke weergave gebruikt. (Zie DateTime Structure (.NET Framework) - Opmerkingen voor meer informatie over datum/tijd-waarden.) Als u datums en tijden anders wilt verwerken, raden we u aan een afgeleide kolom te maken.
Implementatiegegevens
Logistieke regressie gaat uit van een logistieke distributie van de gegevens, waarbij de waarschijnlijkheid dat een voorbeeld tot klasse 1 behoort de formule is:
p(x;β0,…, βD-1)
Waar:
x
is een D-dimensionale vector die de waarden van alle functies van het exemplaar bevat.p
is de logistieke distributiefunctie.β{0},..., β {D-1}
zijn de onbekende parameters van de logistieke distributie.
Het algoritme probeert de optimale waarden voor te vinden door β{0},..., β {D-1}
de logboekkans van de parameters op basis van de invoer te maximaliseren. Maximalisatie wordt uitgevoerd met behulp van een populaire methode voor parameterschatting, BFGS met beperkt geheugen genoemd.
Onderzoek
Zie Scalable Training of L-1 Regularized Log-Linear Models (Schaalbare training van L-1 regularized Log-Linear Models) van Andrew en Gao voor meer informatie over de implementatie van dit algoritme.
Moduleparameters
Name | Bereik | Type | Standaard | Beschrijving |
---|---|---|---|---|
Optimalisatietolerantie | >= dubbel. Epsilon | Float | 0.0000001 | Geef een tolerantiewaarde op voor de L-BFGS-optimalisatie |
L1-regularisatiegewicht | >= 0,0 | Float | 1.0 | Het L1-regularisatiegewicht opgeven |
L2-regularisatiegewicht | >= 0,0 | Float | 1.0 | Het L2-regularisatiegewicht opgeven |
Geheugengrootte voor L-BFGS | >= 1 | Geheel getal | 20 | Geef de hoeveelheid geheugen (in MB) op die moet worden gebruikt voor de L-BFGS-optimalisatie |
Seed van willekeurig getal | Alle | Geheel getal | Typ een waarde om de generator voor willekeurige getallen te seeden die door het model wordt gebruikt. Laat deze leeg voor de standaardinstelling. | |
Onbekende categorische niveaus toestaan | Alle | Boolean-waarde | True | Geef aan of er een extra niveau moet worden gemaakt voor elke categorische kolom. Alle niveaus in de testset die niet beschikbaar zijn in de trainingsset, worden toegewezen aan dit extra niveau. |
Uitvoer
Naam | Type | Description |
---|---|---|
Niet-getraind model | ILearner-interface | Een ongetraind classificatiemodel |