Data scientist/kaggle

[kaggle] house prise 를 통한 회귀분석(regression analysis) - 1 (데이터 탐색적 분석)

반응형

※이것은 개인적으로 공부를 해가면서 하는 부분이라 제가 하는 것이 정답은 아닙니다. 참고 정도로 부탁드립니다.

 

회귀 분석에 있어서 가장 기본적인 문제인 houes price를 해보았다. 

 

데이터는 kaggle에서 받아왔다.

 

www.kaggle.com/c/house-prices-advanced-regression-techniques

 

House Prices: Advanced Regression Techniques

Predict sales prices and practice feature engineering, RFs, and gradient boosting

www.kaggle.com

 

소스를 돌리는데 있어서는 구글 colab을 사용하였다.

 

데이터 탐색에는 아래와 같은 과정을 거친다.

1. 데이터를 임포트 하여 메모리에 올린다.

2. 데이터의 모양을 확인한다.

3. 데이터의 타입을 확인한다.

4. 데이터의 Null 값을 체크한다. 

5. 종속변수의 분포를 살펴본다.

6. 독립변수 - 명목형 변수의 분포를 살펴본다. 

7. 독립변수 - 수치형 변수의 분포를 살펴본다. 

8. 수치형, 명목형 변수 간의 관계를 파악한다. 




 


 

1.data import

 

import pandas as pd
import numpy as np
from sklearn.experimental import enable_iterative_imputer
from sklearn.impute import IterativeImputer
from sklearn.linear_model import LinearRegression
from impyute.imputation.cs import mice
from sklearn.model_selection import train_test_split

코드를 사용하는 데 있어서 기본적인 것을 import 했다. pandas와 numpy는 데이터를 다루는 데 사용하는 것을 넣어고 나머지는 차근차근 설명하도록 하겠다.

 

구글 드라이브와 colab을 연결하기 위해 구글 드라이브를 마운트 하는 작업을 하였다. 

 

 

test = pd.read_csv('/content/drive/My Drive/data/kaggle/house-prices/test.csv', encoding = 'cp949')
train = pd.read_csv('/content/drive/My Drive/data/kaggle/house-prices/train.csv', encoding = 'cp949')

그다음은 kaggle을 통해 받은 데이터를 colab에서 마운트를 통해 해당 파일을 불러왔다.

 

 


2. 데이터 모양 확인

데이터의 모양을 확인한다.

 


3. 데이터 타입 확인

해당 데이터를 다루는 데 있어서 가장 먼저 할 것은 데이터가 어떤지 확인하는 것부터이다. 나는 받아온 데이터를 확인하는 작업부터 시작하였다.

train.info()

 

info()라는 명령어를 쳤을 경우에 해당하는 데이터 프레임에 있는 칼럼들의 타입과 non-Null count를 볼 수 있다.

 

이 작업을 통해 데이터의 타입이 무엇이며 범주형인지 수치형인지에 대한 기본적인 파악을 한다.

 

또한 해당 변수에 대한 도메인 지식이 중요하다.

 

이 부분으로 인과관계를 알 수 있고 머신러닝을 하는 데 있어서 변수 생성이나 다양한 이점을 많이 가질 수 있다.

 

또한 각 칼럼들이 어떤 것인지 확인하는 작업이 필요하다.

 

 

# 컬럼

  • SalePrice - the property's sale price in dollars. This is the target variable that you're trying to predict.

  • MSSubClass: The building class

  • MSZoning: The general zoning classification

  • LotFrontage: Linear feet of street connected to property

  • LotArea: Lot size in square feet

  • Street: Type of road access

  • Alley: Type of alley access

  • LotShape: General shape of property

  • LandContour: Flatness of the property

  • Utilities: Type of utilities available

  • LotConfig: Lot configuration

  • LandSlope: Slope of property

  • Neighborhood: Physical locations within Ames city limits

  • Condition1: Proximity to main road or railroad

  • Condition2: Proximity to main road or railroad (if a second is present)

  • BldgType: Type of dwelling

  • HouseStyle: Style of dwelling

  • OverallQual: Overall material and finish quality

  • OverallCond: Overall condition rating

  • YearBuilt: Original construction date

  • YearRemodAdd: Remodel date

  • RoofStyle: Type of roof

  • RoofMatl: Roof material

  • Exterior1 st:

  • Exterior2 nd:

  • MasVnrType: Masonry veneer type

  • MasVnrArea: Masonry veneer area in square feet

  • ExterQual: Exterior material quality

  • ExterCond: Present condition of the material on the exterior

  • Foundation: Type of foundation

  • BsmtQual: Height of the basement

  • BsmtCond: General condition of the basement

  • BsmtExposure: Walkout or garden level basement walls

  • BsmtFinType1: Quality of basement finished area

  • BsmtFinSF1: Type 1 finished square feet

  • BsmtFinType2: Quality of second finished area (if present)

  • BsmtFinSF2: Type 2 finished square feet

  • BsmtUnfSF: Unfinished square feet of basement area

  • TotalBsmtSF: Total square feet of basement area

  • Heating: Type of heating

  • HeatingQC: Heating quality and condition

  • CentralAir: Central air conditioning

  • Electrical: Electrical system

  • 1 stFlrSF:

  • 2 ndFlrSF:

  • LowQualFinSF: Low quality finished square feet (all floors)

  • GrLivArea: Above grade (ground) living area square feet

  • BsmtFullBath: Basement full bathrooms

  • BsmtHalfBath: Basement half bathrooms

  • FullBath: Full bathrooms above grade

  • HalfBath: Half baths above grade

  • Bedroom: Number of bedrooms above basement level

  • Kitchen: Number of kitchens

  • KitchenQual: Kitchen quality

  • TotRmsAbvGrd: Total rooms above grade (does not include bathrooms)

  • Functional: Home functionality rating

  • Fireplaces: Number of fireplaces

  • FireplaceQu: Fireplace quality

  • GarageType: Garage location

  • GarageYrBlt: Year garage was built

  • GarageFinish: Interior finish of the garage

  • GarageCars: Size of garage in car capacity

  • GarageArea: Size of garage in square feet

  • GarageQual: Garage quality

  • GarageCond: Garage condition

  • PavedDrive: Paved driveway

  • WoodDeckSF: Wood deck area in square feet

  • OpenPorchSF: Open porch area in square feet

  • EnclosedPorch: Enclosed porch area in square feet

  • 3 SsnPorch:

  • ScreenPorch: Screen porch area in square feet

  • PoolArea: Pool area in square feet

  • PoolQC: Pool quality

  • Fence: Fence quality

  • MiscFeature: Miscellaneous feature not covered in other categories

  • MiscVal: $Value of miscellaneous feature

  • MoSold: Month Sold

  • YrSold: Year Sold

  • SaleType: Type of sale

  • SaleCondition: Condition of sale

 


 

4. 결측치 확인(NULL 값 확인)

 

그다음으로 확인한 것은 null의 개수이다. null은 결측치로서 데이터를 예측하는 데 있어서 반드시 처리가 필요한 부분이다.

 

train.isnull().sum()

전체적으로 봤을 때 많은 칼럼에서 null이 발생하였다.

 


5. 종속변수의 분포를 살펴본다.

distplot은 히스토그램과 kdeplot을 같이 그려주는 것입니다. 종속변수가 한쪽으로 치우쳐 있는 걸 볼 수 있다.


6. 독립변수 - 명목형 변수의 분포를 살펴본다. 

위와 같은 방법으로 명목형 변수를 찾고

 

 

barplot으로 해당 변수들을 확인한다.


7. 독립변수 - 수치형 변수의 분포를 살펴본다. 

 

해당 방법으로 명목형이 아닌 변수들을 구하고 

 

 

 

 

displot을 통해 분포를 확인한다.


8. 수치형, 명목형 변수 간의 관계를 파악한다. 

 

 

변수간의 상관관계를 본다. 기본은 피어슨이지만 스피어만도 사용한다.

 

이걸 heatmap으로 확인한다.

반응형

'Data scientist > kaggle' 카테고리의 다른 글

[kaggle] 간단한 kaggle 사용법  (0) 2020.10.22