Python -zelfstudie

Python HOME Python-intro Python Aan de slag Python-syntaxis Python-opmerkingen Python-variabelen Python-gegevenstypen Python-nummers Python-casting Python-snaren Python Booleans Python-operators Python-lijsten Python-tupels Python-sets Python-woordenboeken Python Als...Anders Python While-lussen Python voor lussen Python-functies Python Lambda Python-arrays Python-klassen/objecten Python-overerving Python-iterators Python-bereik Python-modules Python-datums Python-wiskunde Python JSON Python RegEx Python PIP Python proberen...Behalve Python-gebruikersinvoer Opmaak van Python-tekenreeksen

Bestandsbehandeling

Python-bestandsafhandeling Python-bestanden lezen Python bestanden schrijven/maken Python bestanden verwijderen

Python-modules

NumPy-zelfstudie Panda walkthrough Scipy-zelfstudie

Python Matplotlib

Matplotlib Intro Matplotlib Aan de slag Matplotlib Pyplot Matplotlib plotten Matplotlib-markeringen Matplotlib-lijn Matplotlib-labels Matplotlib-raster Matplotlib-subplots Matplotlib Scatter Matplotlib-repen Matplotlib-histogrammen Matplotlib-cirkeldiagrammen

Machinaal leren

Beginnen Gemiddelde mediane modus Standaardafwijking percentiel Gegevensdistributie Normale gegevensverdeling Scatterplot Lineaire regressie Polynomiale regressie Meervoudige regressie Schaal Trein/Test Beslissingsboom

Python MySQL

MySQL Aan de slag MySQL Database maken MySQL-tabel maken MySQL-invoeging MySQL Select MySQL Waar MySQL Bestel op MySQL verwijderen MySQL-droptabel MySQL-update MySQL-limiet MySQL Join

Python MongoDB

MongoDB Aan de slag MongoDB Database maken MongoDB Verzameling maken MongoDB invoegen MongoDB Zoeken MongoDB-query MongoDB Sorteren MongoDB verwijderen MongoDB Drop-collectie MongoDB-update MongoDB-limiet

Python-referentie

Python-overzicht Ingebouwde functies van Python Python-stringmethoden Methoden voor Python-lijst Python-woordenboekmethoden Python Tuple-methoden Methoden voor Python-sets Python-bestandsmethoden Python-trefwoorden Python-uitzonderingen Python-woordenlijst

Modulereferentie

Willekeurige module Verzoekmodule Statistiekmodule Wiskundige module cMath-module

Python-instructies

Lijstduplicaten verwijderen Een string omkeren Voeg twee nummers toe

Python-voorbeelden

Python-voorbeelden Python-compiler Python-oefeningen Python-quiz Python-certificaat

Machine learning - meervoudige regressie


Meervoudige regressie

Meervoudige regressie is als lineaire regressie , maar met meer dan één onafhankelijke waarde, wat betekent dat we een waarde proberen te voorspellen op basis van twee of meer variabelen.

Bekijk hieronder de dataset, deze bevat wat informatie over auto's.

Auto Model Volume Gewicht CO2
Toyota Aygo 1000 790 99
Mitsubishi Ruimte ster 1200 1160 95
Skoda Citigo 1000 929 95
Fiat 500 900 865 90
Mini Kuiper 1500 1140 105
VW Omhoog! 1000 929 105
Skoda Fabia 1400 1109 90
Mercedes Een klas 1500 1365 92
Ford fiesta 1500 1112 98
Audi A1 1600 1150 99
Hyundai I20 1100 980 99
Suzuki Snel 1300 990 101
Ford fiesta 1000 1112 99
Honda burgerlijk 1600 1252 94
Hyundai I30 1600 1326 97
Opel Astra 1600 1330 97
BMW 1 1600 1365 99
Mazda 3 2200 1280 104
Skoda snel 1600 1119 104
Ford Focus 2000 1328 105
Ford Mondeo 1600 1584 94
Opel insigne 2000 1428 99
Mercedes C-Klasse 2100 1365 99
Skoda Octavia 1600 1415 99
Volvo S60 2000 1415 99
Mercedes CLA 1500 1465 102
Audi A4 2000 1490 104
Audi A6 2000 1725 114
Volvo V70 1600 1523 109
BMW 5 2000 1705 114
Mercedes E-Klasse 2100 1605 115
Volvo XC70 2000 1746 117
Ford B-Max 1600 1235 104
BMW 2 1600 1390 108
Opel Zafira 1600 1405 109
Mercedes SLK 2500 1395 120

We kunnen de CO2-uitstoot van een auto voorspellen op basis van de grootte van de motor, maar met meervoudige regressie kunnen we meer variabelen invoeren, zoals het gewicht van de auto, om de voorspelling nauwkeuriger te maken.


Hoe werkt het?

In Python hebben we modules die het werk voor ons doen. Begin met het importeren van de Pandas-module.

import pandas

Leer meer over de Panda's-module in onze Panda's Tutorial .

Met de Pandas-module kunnen we csv-bestanden lezen en een DataFrame-object retourneren.

Het bestand is alleen bedoeld voor testdoeleinden, u kunt het hier downloaden: cars.csv

df = pandas.read_csv("cars.csv")

Maak vervolgens een lijst van de onafhankelijke waarden en noem deze variabele X.

Zet de afhankelijke waarden in een variabele met de naam y.

X = df[['Weight', 'Volume']]
y = df['CO2']

Tip: Het is gebruikelijk om de lijst met onafhankelijke waarden een hoofdletter X te geven en de lijst met afhankelijke waarden een kleine letter y.

We zullen enkele methoden uit de sklearn-module gebruiken, dus we zullen die module ook moeten importeren:

from sklearn import linear_model

Vanuit de sklearn-module zullen we de LinearRegression()methode gebruiken om een ​​lineair regressieobject te maken.

Dit object heeft een aangeroepen methode fit()die de onafhankelijke en afhankelijke waarden als parameters neemt en het regressieobject vult met gegevens die de relatie beschrijven:

regr = linear_model.LinearRegression()
regr.fit(X, y)

Nu hebben we een regressie-object dat klaar is om CO2-waarden te voorspellen op basis van het gewicht en het volume van een auto:

#predict the CO2 emission of a car where the weight is 2300kg, and the volume is 1300cm3:
predictedCO2 = regr.predict([[2300, 1300]])

Voorbeeld

Bekijk het hele voorbeeld in actie:

import pandas
from sklearn import linear_model

df = pandas.read_csv("cars.csv")

X = df[['Weight', 'Volume']]
y = df['CO2']

regr = linear_model.LinearRegression()
regr.fit(X, y)

#predict the CO2 emission of a car where the weight is 2300kg, and the volume is 1300cm3:
predictedCO2 = regr.predict([[2300, 1300]])

print(predictedCO2)

Resultaat:

[107.2087328]

We hebben voorspeld dat een auto met een motor van 1,3 liter en een gewicht van 2300 kg per gereden kilometer ongeveer 107 gram CO2 zal uitstoten.



Coëfficiënt

De coëfficiënt is een factor die de relatie met een onbekende variabele beschrijft.

Voorbeeld: als xis een variabele, dan 2xis xtwee keer. xis de onbekende variabele, en het getal 2is de coëfficiënt.

In dit geval kunnen we vragen om de coëfficiënt van gewicht tegen CO2 en om volume tegen CO2. Het antwoord of de antwoorden die we krijgen, vertelt ons wat er zou gebeuren als we een van de onafhankelijke waarden verhogen of verlagen.

Voorbeeld

Druk de coëfficiëntwaarden van het regressieobject af:

import pandas
from sklearn import linear_model

df = pandas.read_csv("cars.csv")

X = df[['Weight', 'Volume']]
y = df['CO2']

regr = linear_model.LinearRegression()
regr.fit(X, y)

print(regr.coef_)

Resultaat:

[0.00755095 0.00780526]

Resultaat uitgelegd

De resultatenarray vertegenwoordigt de coëfficiëntwaarden van gewicht en volume.

Gewicht: 0.00755095
Volume: 0.00780526

Deze waarden vertellen ons dat als het gewicht met 1 kg toeneemt, de CO2-uitstoot met 0,00755095 g toeneemt.

En als de motorinhoud (Volume) met 1 cm 3 toeneemt, neemt de CO2-uitstoot toe met 0,00780526 g.

Ik denk dat dat een eerlijke gok is, maar laat het testen!

We hebben al voorspeld dat als een auto met een 1300cm 3 motor 2300kg weegt, de CO2-uitstoot ongeveer 107g zal zijn.

Wat als we het gewicht met 1000 kg verhogen?

Voorbeeld

Kopieer het voorbeeld van eerder, maar verander het gewicht van 2300 naar 3300:

import pandas
from sklearn import linear_model

df = pandas.read_csv("cars.csv")

X = df[['Weight', 'Volume']]
y = df['CO2']

regr = linear_model.LinearRegression()
regr.fit(X, y)

predictedCO2 = regr.predict([[3300, 1300]])

print(predictedCO2)

Resultaat:

[114.75968007]

We hebben voorspeld dat een auto met een motor van 1,3 liter en een gewicht van 3300 kg per gereden kilometer ongeveer 115 gram CO2 zal uitstoten.

Waaruit blijkt dat de coëfficiënt van 0,00755095 correct is:

107.2087328 + (1000 * 0.00755095) = 114.75968