voidaan nähdä, että tavoitearvo MEDV
puuttuu tiedoista. Luomme uuden sarakkeen tavoitearvoja ja lisäämme sen datakehykseen.
tietojen esikäsittely
tietojen lataamisen jälkeen on hyvä käytäntö katsoa, onko aineistosta puuttuvia arvoja. Laskemme kunkin ominaisuuden puuttuvien arvojen määrän käyttämällä isnull()
tästä aineistosta ei kuitenkaan puutu arvoja kuten alla on esitetty.
experatory data analysis
experatory data analysis on erittäin tärkeä vaihe ennen mallin kouluttamista. Tässä osiossa käytämme joitakin visualisointeja ymmärtääksemme kohdemuuttujan suhdetta muihin ominaisuuksiin.
piirretään ensin kohdemuuttujan jakauma MEDV
. Käytämme distplot
funktiota seaborn
kirjastosta.
näemme, ettäMEDV
arvot jakautuvat normaalisti muutamien poikkeamien kanssa.
seuraavaksi luodaan korrelaatiomatriisi, joka mittaa muuttujien välisiä lineaarisia suhteita. Korrelaatiomatriisi voidaan muodostaa käyttämällä corr
funktiota pandas-dataframe-kirjastosta. Korrelaatiomatriisin kuvaamiseen käytetään heatmap
funktiota seabornin kirjastosta.
korrelaatiokerroin vaihtelee -1: stä 1: een. Jos arvo on lähellä arvoa 1, se tarkoittaa, että kahden muuttujan välillä on vahva positiivinen korrelaatio. Kun se on lähellä lukua -1, muuttujilla on vahva negatiivinen korrelaatio.
havainnot:
- soveltaaksemme lineaarista regressiomallia valitsemme ne ominaisuudet, joilla on suuri korrelaatio kohdemuuttujamme
MEDV
. Korrelaatiomatriisia katsomalla voidaan todeta, että RM
on vahva positiivinen korrelaatio MEDV
(0, 7) missä LSTAT
on suuri negatiivinen korrelaatio MEDV
(-0, 74.
- tärkeä seikka lineaarisen regressiomallin ominaisuuksien valinnassa on monikokolineaarisuuden tarkistaminen. Ominaisuuksien
RAD
TAX
korrelaatio on 0,91. Nämä ominaisuusparit korreloivat vahvasti keskenään. Meidän ei pitäisi valita molempia ominaisuuksia yhdessä mallin koulutukseen. Katso selitystä tästä. Sama koskee ominaisuuksia DIS
ja AGE
, joiden korrelaatio on -0,75.
edellä esitettyjen havaintojen perusteella otamme RM
ja LSTAT
ominaisuuksiksemme. Scatter-kuviota käyttäen katsotaan, miten nämä ominaisuudet vaihtelevat MEDV
.
observations:
- hinnat nousevat, kun RM: n arvo nousee lineaarisesti. Poikkeavia tekijöitä on vähän, ja tietojen yläraja näyttää olevan 50.
- hinnoilla on taipumus laskea LSTAT-arvon nousun myötä. Vaikka se ei näytä noudattavan aivan lineaarista linjaa.
aineiston valmistelu mallin koulutusta varten
yhdistämme LSTAT
ja RM
sarakkeet käyttäen np.c_
numpy-kirjaston toimittamia.
tietojen jakaminen koulutus-ja testisarjoihin
seuraavaksi jaetaan tiedot koulutus-ja testisarjoihin. Koulutamme mallia 80 prosentilla näytteistä ja testaamme loput 20 prosentilla. Teemme tämän arvioidaksemme mallin suorituskykyä näkymättömällä datalla. Tietojen jakamiseen käytämme train_test_split
funktiota, jonka tarjoaa scikit-learn library. Lopuksi tulostamme koulutus-ja testisarjamme koot varmistaaksemme, onko halkaisu tapahtunut oikein.
(404, 2)
(102, 2)
(404,)
(102,)
mallin harjoittelu ja testaus
käytämme scikit-learnin LinearRegression
mallimme kouluttamiseen sekä koulutus-että testisarjoissa.
mallin arviointi
arvioimme malliamme rmse: n ja R2-Scoren avulla.
The model performance for training set
--------------------------------------
RMSE is 5.6371293350711955
R2 score is 0.6300745149331701 The model performance for testing set
--------------------------------------
RMSE is 5.137400784702911
R2 score is 0.6628996975186952
tästä on hyvä aloittaa. Tulevissa blogeissa pohditaan keinoja mallin suorituskyvyn lisäämiseksi.
koko Jupyterin muistikirja löytyy täältä.
johtopäätös
tässä jutussa sovellimme lineaarisen regression käsitteitä Bostonin asuntoaineistoon. Suosittelen kokeilemaan myös muita aineistoja.
täältä voit etsiä tietoja
Kiitos lukemisesta!!
tämän sarjan seuraavassa osassa käsitellään polynomin regressiota. Katso tätä tilaa lisää.