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 Spreidingsplot 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 - Schaal


Schaalfuncties

Wanneer uw gegevens verschillende waarden en zelfs verschillende meeteenheden hebben, kan het moeilijk zijn om ze te vergelijken. Wat is kilogram in vergelijking met meters? Of hoogte ten opzichte van de tijd?

Het antwoord op dit probleem is schaalvergroting. We kunnen gegevens schalen naar nieuwe waarden die gemakkelijker te vergelijken zijn.

Kijk eens naar de onderstaande tabel, het is dezelfde dataset die we gebruikten in het hoofdstuk over meervoudige regressie , maar deze keer bevat de volumekolom waarden in liters in plaats van cm3 (1,0 in plaats van 1000) .

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

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

Het kan moeilijk zijn om het volume 1.0 te vergelijken met het gewicht 790, maar als we ze beide in vergelijkbare waarden schalen, kunnen we gemakkelijk zien hoeveel de ene waarde wordt vergeleken met de andere.

Er zijn verschillende methoden voor het schalen van gegevens, in deze tutorial zullen we een methode gebruiken die standaardisatie wordt genoemd.

De standaardisatiemethode gebruikt deze formule:

z = (x - u) / s

Waar zis de nieuwe waarde, xis de oorspronkelijke waarde, uis het gemiddelde en sis de standaarddeviatie.

Als u de gewichtskolom uit de bovenstaande gegevensset neemt, is de eerste waarde 790 en is de geschaalde waarde:

(790 - ) / = -2.1

Als u de volumekolom uit de bovenstaande gegevensset neemt, is de eerste waarde 1,0 en is de geschaalde waarde:

(1.0 - ) / = -1.59

Nu kunt u -2,1 vergelijken met -1,59 in plaats van 790 met 1,0 te vergelijken.

U hoeft dit niet handmatig te doen, de Python sklearn-module heeft een methode aangeroepen StandardScaler() die een Scaler-object retourneert met methoden voor het transformeren van datasets.

Voorbeeld

Schaal alle waarden in de kolommen Gewicht en Volume:

import pandas
from sklearn import linear_model
from sklearn.preprocessing import StandardScaler
scale = StandardScaler()

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

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

scaledX = scale.fit_transform(X)

print(scaledX)

Resultaat:

Merk op dat de eerste twee waarden -2,1 en -1,59 zijn, wat overeenkomt met onze berekeningen:

[[-2.10389253 -1.59336644]
 [-0.55407235 -1.07190106]
 [-1.52166278 -1.59336644]
 [-1.78973979 -1.85409913]
 [-0.63784641 -0.28970299]
 [-1.52166278 -1.59336644]
 [-0.76769621 -0.55043568]
 [ 0.3046118  -0.28970299]
 [-0.7551301  -0.28970299]
 [-0.59595938 -0.0289703 ]
 [-1.30803892 -1.33263375]
 [-1.26615189 -0.81116837]
 [-0.7551301  -1.59336644]
 [-0.16871166 -0.0289703 ]
 [ 0.14125238 -0.0289703 ]
 [ 0.15800719 -0.0289703 ]
 [ 0.3046118  -0.0289703 ]
 [-0.05142797  1.53542584]
 [-0.72580918 -0.0289703 ]
 [ 0.14962979  1.01396046]
 [ 1.2219378  -0.0289703 ]
 [ 0.5685001   1.01396046]
 [ 0.3046118   1.27469315]
 [ 0.51404696 -0.0289703 ]
 [ 0.51404696  1.01396046]
 [ 0.72348212 -0.28970299]
 [ 0.8281997   1.01396046]
 [ 1.81254495  1.01396046]
 [ 0.96642691 -0.0289703 ]
 [ 1.72877089  1.01396046]
 [ 1.30990057  1.27469315]
 [ 1.90050772  1.01396046]
 [-0.23991961 -0.0289703 ]
 [ 0.40932938 -0.0289703 ]
 [ 0.47215993 -0.0289703 ]
 [ 0.4302729   2.31762392]]


Voorspel CO2-waarden

De taak in het hoofdstuk Meervoudige regressie was om de CO2-uitstoot van een auto te voorspellen als je alleen het gewicht en het volume kende.

Wanneer de dataset is geschaald, moet u de schaal gebruiken wanneer u waarden voorspelt:

Voorbeeld

Voorspel de CO2-uitstoot van een auto van 1,3 liter die 2300 kilogram weegt:

import pandas
from sklearn import linear_model
from sklearn.preprocessing import StandardScaler
scale = StandardScaler()

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

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

scaledX = scale.fit_transform(X)

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

scaled = scale.transform([[2300, 1.3]])

predictedCO2 = regr.predict([scaled[0]])
print(predictedCO2)

Resultaat:

[107.2087328]