Hoe lineaire regressie voor machine learning te implementeren?



Dit artikel behandelt het concept van lineaire regressie voor machine learning met verschillende terminologieën en een use-case om lineaire regressie te implementeren.

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?

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.

voorbeeld-lineaire regressie in machine learning - edureka

Soorten regressie

De volgende zijn soorten regressie.



  1. Eenvoudige lineaire regressie
  2. Polynomiale regressie
  3. Ondersteuning van vectorregressie
  4. Beslissingsboomregressie
  5. 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 gegevensDe aanname van lineariteit tussen afhankelijke en onafhankelijke variabelen
Makkelijker te implementeren, interpreteren en efficiënter te trainenHet is vaak behoorlijk gevoelig voor lawaai en overfitting
Het behandelt overfitting redelijk goed met behulp van dimensionale reductie-technieken, regularisatie en kruisvalidatieLineaire regressie is vrij gevoelig voor uitschieters
Een ander voordeel is de extrapolatie buiten een specifieke datasetHet 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:

  1. Het laden van de gegevens
  2. De gegevens onderzoeken
  3. De gegevens snijden
  4. Train en splits gegevens
  5. Genereer het model
  6. 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.