Lineáris Regresszió a Boston Ház Adatkészlet

Kredit: http://www.wbur.org/radioboston/2013/09/18/bostons-housing-challenge

A korábbi blog, Nem vonatkozik az alapokat, lineáris regresszió, illetve gradiens süllyedés. Ahhoz, hogy gyakorlati lineáris regressziót kapjunk, egy eredeti adatkészletet fogunk használni, és alkalmazzuk a megtanult fogalmakat.

fogjuk venni a ház adathalmaz, amely információkat tartalmaz a különböző házak Boston. Ezek az adatok eredetileg az UCI gépi tanulási adattár részét képezték, most pedig eltávolításra kerültek. Ezeket az adatokat a scikit-learn könyvtárból is elérhetjük. Ebben az adatkészletben 506 minta és 13 jellemző változó található. A cél az, hogy megjósoljuk a ház árainak értékét az adott funkciók felhasználásával.

Tehát kezdjük el.

először importáljuk a szükséges könyvtárakat.

ezután a házadatokat a scikit-learn könyvtárból töltjük be, és megértjük.

kinyomtatjuk a boston_dataset értékét, hogy megértsük, mit tartalmaz. print(boston_dataset.keys()) ad

dict_keys()
  • adatok: tartalmazza a különböző házak adatait
  • cél: a ház árai
  • feature_names: a jellemzők nevei
  • DESCR: leírja a

jellemzők használataboston_dataset.DESCRaz összes funkció leírása az alábbiakban található:

CRIM: Per capita crime rate by town
ZN: Proportion of residential land zoned for lots over 25,000 sq. ft
INDUS: Proportion of non-retail business acres per town
CHAS: Charles River dummy variable (= 1 if tract bounds river; 0 otherwise)
NOX: Nitric oxide concentration (parts per 10 million)
RM: Average number of rooms per dwelling
AGE: Proportion of owner-occupied units built prior to 1940
DIS: Weighted distances to five Boston employment centers
RAD: Index of accessibility to radial highways
TAX: Full-value property tax rate per $10,000
PTRATIO: Pupil-teacher ratio by town
B: 1000(Bk — 0.63)², where Bk is the proportion of by town
LSTAT: Percentage of lower status of the population
MEDV: Median value of owner-occupied homes in $1000s

a ház árai, amelyeket a MEDV változó jelez, a fennmaradó jellemző változók, amelyek alapján megjósoljuk a ház értékét.

az adatokat most a pd.DataFramehasználatával töltjük be egy pandas adatbázisba. Mi akkor a nyomtatás az első 5 sor az adatok a head()

láthatjuk, hogy a célérték MEDV hiányoznak az adatok. Létrehozunk egy új oszlopot a célértékekről, majd hozzáadjuk a dataframe-hez.

adat előfeldolgozás

az adatok betöltése után jó gyakorlat Annak megállapítása, hogy vannak-e hiányzó értékek az adatokban. Az egyes funkciók hiányzó értékeinek számát A isnull()

azonban ebben az adatkészletben Nincsenek hiányzó értékek az alábbiak szerint.

div>

feltáró Adatelemzés

feltáró adatelemzés nagyon fontos lépés a modell kiképzése előtt. Ebben a részben néhány vizualizációt fogunk használni, hogy megértsük a célváltozó kapcsolatát más funkciókkal.

először ábrázoljuk a MEDVcélváltozó eloszlását. A distplot függvényt a seaborn könyvtárból fogjuk használni.

azt látjuk, hogy az értékek MEDV osztják általában néhány kiugró értéket.

ezután létrehozunk egy korrelációs mátrixot, amely méri a változók közötti lineáris kapcsolatokat. A korrelációs mátrix a pandas dataframe könyvtár corr függvényével alakítható ki. A korrelációs mátrix ábrázolásához a heatmap függvényt használjuk A seaborn könyvtárból.

a korrelációs együttható -1-től 1-ig terjed. Ha az érték közel van az 1-hez, akkor azt jelenti, hogy erős pozitív korreláció van a két változó között. Ha közel van -1-hez, a változók erős negatív korrelációval rendelkeznek.

megfigyelések:

  • a lineáris regressziós modell illesztéséhez kiválasztjuk azokat a funkciókat, amelyek nagy korrelációt mutatnak a MEDVcélváltozóval. A korrelációs mátrix látjuk, hogy a RM erős pozitív korrelációt MEDV (0.7), ahol, mint a LSTAT magas negatív korreláció a MEDV(-0.74).
  • a lineáris regressziós modell funkcióinak kiválasztásában fontos szempont a több-linearitás ellenőrzése. A RADTAX jellemzők korrelációja 0,91. Ezek a tulajdonságpárok erősen korrelálnak egymással. Nem szabad ezeket a funkciókat együtt kiválasztani a modell képzéséhez. Ellenőrizze ezt a magyarázatot. Ugyanez vonatkozik a DIS és AGE funkciókra, amelyek korrelációja -0,75.

a fenti megfigyelések alapján RM és LSTAT jellemzőinkként. Egy scatter telek lássuk, hogy ezek a funkciók változnak MEDV.

Megfigyelések:

  • Az árak emelkedése, mint az érték RM lineárisan nő. Kevés kiugró adat van, és úgy tűnik, hogy az adatok 50-re vannak korlátozva.
  • az árak általában csökkennek az LSTAT növekedésével. Bár nem úgy tűnik, hogy pontosan egy lineáris vonalat követ.

az adatok előkészítése a modell

LSTAT és RM oszlopok segítségével np.c_ a numpy könyvtár által biztosított.

az adatokat képzési és tesztkészletekre osztjuk

ezután az adatokat képzési és tesztkészletekre osztjuk. A minta 80% – ával képezzük a modellt, a fennmaradó 20% – kal teszteljük. Ezt azért tesszük, hogy felmérjük a modell teljesítményét láthatatlan adatokon. Az adatok megosztásához atrain_test_split függvényt használjuk, amelyet a scikit-learn library biztosít. Végül kinyomtatjuk a képzési és tesztkészletünk méretét annak ellenőrzésére, hogy a felosztás megfelelően történt-e.

(404, 2) 
(102, 2)
(404,)
(102,)

A modell

képzéséhez és teszteléséhez a scikit-learn LinearRegression modellünket mind a képzési, mind a tesztkészleteken használjuk.

modellértékelés

MODELLÉRTÉKELÉSÜNKET RMSE és R2-pontszám alapján értékeljük.

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

Ez jó kezdeni. A közelgő blogokban megvizsgáljuk a modell teljesítményének növelését.

a teljes Jupyter Notebook itt található.

következtetés

ebben a történetben a lineáris regresszió fogalmát alkalmaztuk a Boston házadatkészletén. Azt javasoljuk, hogy próbálja ki más adatbázisok is.

itt van néhány hely, ahol adatokat kereshet

  • https://www.kaggle.com/datasets
  • https://toolbox.google.com/datasetsearch

  • https://archive.ics.uci.edu/ml/datasets.html

Köszönjük az olvasást!!

a sorozat következő részében a polinom regressziót fedjük le. Ne nézd ezt a helyet több.

Related Posts

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük