De focus van draait om de invoer- en uitvoervariabelen met behulp van een algoritme om de uitkomst te voorspellen. Als er een nieuwe invoervariabele in beeld komt. Het lineaire regressie-algoritme in is een begeleide leertechniek om de mappingfunctie te benaderen om de beste voorspellingen te krijgen. In dit artikel zullen we leren over lineaire regressie voor machine learning. In deze blog komen de volgende onderwerpen aan bod.
- Wat is regressie?
- Soorten regressie
- Wat is lineaire regressie?
- Terminologieën voor lineaire regressie
- Voordelen en nadelen van lineaire regressie
- Gebruiksscenario's voor lineaire regressie
- Use case - Implementatie van lineaire regressie
Wat is regressie?
Het belangrijkste doel van regressie is de constructie van een efficiënt model om de afhankelijke attributen van een aantal attribuutvariabelen te voorspellen. Een regressieprobleem is wanneer de uitvoervariabele een reële of continue waarde is, d.w.z. salaris, gewicht, oppervlakte, enz.
We kunnen regressie ook definiëren als een statistisch middel dat wordt gebruikt in toepassingen zoals huisvesting, investeringen, enz. Het wordt gebruikt om de relatie tussen een afhankelijke variabele en een aantal onafhankelijke variabelen te voorspellen. Laten we eens kijken naar verschillende soorten regressietechnieken.
Soorten regressie
De volgende zijn soorten regressie.
- Eenvoudige lineaire regressie
- Polynomiale regressie
- Ondersteuning van vectorregressie
- Beslissingsboomregressie
- Willekeurige bosregressie
Eenvoudige lineaire regressie
Een van de interessantste en meest voorkomende regressietechnieken is eenvoudige lineaire regressie. Hierin voorspellen we de uitkomst van een afhankelijke variabele op basis van de onafhankelijke variabelen, de relatie tussen de variabelen is lineair. Vandaar het woord lineaire regressie.
Polynomiale regressie
Bij deze regressietechniek transformeren we de originele kenmerken in polynoomkenmerken van een bepaalde graad en voeren we er vervolgens regressie op uit.
Ondersteuning van vectorregressie
Voor regressie of SVR, we identificeren een hypervlak met maximale marge zodat het maximale aantal datapunten binnen die marges valt. Het lijkt veel op het algoritme voor de classificatie van vectormachines.
mysql_fetch_array
Beslissingsboomregressie
NAAR kan worden gebruikt voor zowel regressie als . In het geval van regressie gebruiken we het ID3-algoritme (Iterative Dichotomiser 3) om het splitsingsknooppunt te identificeren door de standaarddeviatie te verminderen.
Willekeurige bosregressie
Bij willekeurige bosregressie verzamelen we de voorspellingen van verschillende beslissingsboomregressies. Nu we de verschillende soorten regressie kennen, kunnen we eenvoudige lineaire regressie in detail bekijken.
Wat is lineaire regressie?
Eenvoudige lineaire regressie is een regressietechniek waarbij de onafhankelijke variabele een lineaire relatie heeft met de afhankelijke variabele. De rechte lijn in het diagram is de best passende lijn. Het belangrijkste doel van de eenvoudige lineaire regressie is om rekening te houden met de gegeven gegevenspunten en de best passende lijn uit te zetten om op de best mogelijke manier in het model te passen.
Voordat we verder gaan met hoe het lineaire regressie-algoritme werkt, laten we eens kijken naar enkele belangrijke terminologieën in eenvoudige lineaire regressie.
Terminologieën voor lineaire regressie
De volgende terminologieën zijn belangrijk om bekend te zijn voordat u verder gaat met het lineaire regressie-algoritme.
Kostenfunctie
De best passende lijn kan worden gebaseerd op de onderstaande lineaire vergelijking.
- De afhankelijke variabele die moet worden voorspeld, wordt aangegeven met Y.
- Een lijn die de y-as raakt, wordt aangeduid met het snijpunt b0.
- beenis de helling van de lijn, x staat voor de onafhankelijke variabelen die de voorspelling van Y bepalen.
- De fout in de resulterende voorspelling wordt aangegeven met e.
De kostenfunctie levert de best mogelijke waarden voor b0en Beenom de best passende lijn voor de gegevenspunten te maken. We doen het door dit probleem om te zetten in een minimalisatieprobleem om de beste waarden voor b te krijgen0en Been. De fout wordt in dit probleem geminimaliseerd tussen de werkelijke waarde en de voorspelde waarde.
We kiezen voor de bovenstaande functie om de fout te minimaliseren. We kwadrateren het foutverschil en tellen de fout op over alle datapunten, de verdeling tussen het totale aantal datapunten. Vervolgens geeft de geproduceerde waarde de gemiddelde kwadratische fout over alle gegevenspunten.
Het is ook bekend als MSE (Mean Squared Error), en we veranderen de waarden van b0en Beenzodat de MSE-waarde minimaal wordt afgerekend.
Gradient Afdaling
De volgende belangrijke terminologie om lineaire regressie te begrijpen is gradiënt afdaling. Het is een methode om b0en Beenwaarden om de MSE te verminderen. Het idee hierachter is om de b te blijven herhalen0en Beenwaarden totdat we de MSE tot het minimum verminderen.
Om b0en Beennemen we gradiënten uit de kostenfunctie. Om deze gradiënten te vinden, nemen we partiële afgeleiden met betrekking tot b0en Been. Deze partiële afgeleiden zijn de gradiënten en worden gebruikt om de waarden van b bij te werken0en Been.
Een lager leertempo ligt dichter bij het minimum, maar het kost meer tijd en in het geval van een hoger leertempo. De benodigde tijd is eerder, maar er is een kans om de minimumwaarde te overschrijden. Nu we klaar zijn met de terminologieën in lineaire regressie, laten we eens kijken naar enkele voor- en nadelen van lineaire regressie voor machine learning.
Voor-en nadelen
Voordelen | Nadelen |
Lineaire regressie presteert uitzonderlijk goed voor lineair scheidbare gegevens | De aanname van lineariteit tussen afhankelijke en onafhankelijke variabelen |
Makkelijker te implementeren, interpreteren en efficiënter te trainen | Het is vaak behoorlijk gevoelig voor lawaai en overfitting |
Het behandelt overfitting redelijk goed met behulp van dimensionale reductie-technieken, regularisatie en kruisvalidatie | Lineaire regressie is vrij gevoelig voor uitschieters |
Een ander voordeel is de extrapolatie buiten een specifieke dataset | Het is vatbaar voor multicollineariteit |
Gebruiksscenario's voor lineaire regressie
Verkoopvoorspellingen
Risico analyse
Huisvestingsapplicaties om de prijzen en andere factoren te voorspellen
Financieringsapplicaties om aandelenkoersen te voorspellen, investeringsevaluaties, enz.
Het basisidee achter lineaire regressie is om de relatie te vinden tussen de afhankelijke en onafhankelijke variabelen. Het wordt gebruikt om de best passende lijn te krijgen die de uitkomst met de minste fout voorspelt. We kunnen lineaire regressie gebruiken in eenvoudige praktijksituaties, zoals het voorspellen van de SAT-scores met betrekking tot het aantal studie-uren en andere doorslaggevende factoren.
Laten we met dit in gedachten een use case bekijken.
Use Case - Implementatie van lineaire regressie
Het proces vindt plaats in de volgende stappen:
- Het laden van de gegevens
- De gegevens onderzoeken
- De gegevens snijden
- Train en splits gegevens
- Genereer het model
- Evalueer de nauwkeurigheid
Laten we ingaan op de details van elk van de stappen om lineaire regressie te implementeren.
1. De gegevens laden
We kunnen beginnen met de basisdiabetesdataset die al aanwezig is in de sklearn (scikit-learn) datasetsmodule om onze reis te beginnen met lineaire regressie.
uit sklearn importeer datasets disease = datasets.load_diabetes () print (ziekte)
Uitgang:
2. Verkennen van de gegevens
Nadat we klaar zijn met het laden van de gegevens, kunnen we beginnen met het verkennen door simpelweg de labels te controleren met behulp van de volgende code.
print (disease.keys ())
Uitgang:
De bovenstaande code geeft alle labels van de dataset, hierna kunnen we de data opdelen zodat we de lijn aan het einde kunnen plotten. We zullen ook alle datapunten gebruiken, voorlopig snijden we kolom 2 uit de data.
importeer numpy als np disease_X = disease.data [:, np.newaxis, 2] print (disease_X)
Uitgang:
Na deze stap splitsen we de gegevens op in trein- en testset.
3. De gegevens splitsen
disease_X_train = disease_X [: - 30] disease_X_test = disease_X [-20:] disease_Y_train = disease.train [: - 30] disease_Y_test = disease.test [-20:]
Het volgende deel betreft het genereren van het model, dat onder meer het importeren van linear_model uit sklearn omvat.
4. Genereren van het model
uit sklearn import linear_model reg = linear_model.LinearRegression () reg.fit (disease_X_train, disease_Y_train) y_predict = reg.predict (disease_X_test)
Om de nauwkeurigheid van het model te evalueren, gebruiken we de gemiddelde kwadratische fout van de scikit-learn.
5. Evaluatie
accuratesse = mean_squared_error (disease_Y_test, y_predict,) print (accuratesse) weights = reg.coef_ intercept = reg.intercept_ print (gewichten, onderscheppen)
Uitgang:
Om duidelijker te zijn over hoe de datapunten eruit zien in de grafiek, laten we de grafieken ook plotten.
importeer matplotlib.pyplot als plt plt.scatter (disease_X_test, disease_Y_test) plt.plot (disease_X_test, y_predict) plt.show ()
Uitgang:
Om in dit scenario een nauwkeuriger model te krijgen, kunnen we de volledige gegevens gebruiken in plaats van alleen de kolom 2. Dat zou een nauwkeurigheid opleveren zoals hieronder weergegeven:
# breng een kleine wijziging aan in de bovenstaande code en verwijder de plotcode om fouten disease_X = disease.data te voorkomen
Uitgang:
Dit brengt ons bij het einde van dit artikel waar we hebben geleerd over lineaire regressie voor machine learning. Ik hoop dat je duidelijk bent met alles wat in deze tutorial met je is gedeeld.
Als je dit artikel over 'Lineaire regressie voor machine learning' relevant vond, bekijk dan het een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld.
Mocht u vragen tegenkomen, stel dan gerust al uw vragen in het commentaargedeelte van 'Lineaire regressie voor machine learning' en ons team zal u graag antwoorden.