반전공자

[1 Week] 데이터 전처리 / EDA (boston) 본문

BOAZ

[1 Week] 데이터 전처리 / EDA (boston)

하연01 2022. 1. 28. 02:24
데이터 다루기  _ Numpy, Pandas 

 

데이터 분석을 하기 위해서는 수집한 데이터를 자유자재로 다룰 수 있어야 한다. 

BOAZ 1주차 세션에서는 기본적인 넘파이, 판다스 기능을 알려주셨으니 활용해서 데이터를 다뤄보려 한다. 

 

 

필요한 패키지

 

import pandas as pd
import numpy as np

import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'AppleGothic' # 한글깨짐 방지

import seaborn as sns

from sklearn.datasets import load_iris, load_boston, load_diabetes

import warnings
warnings.filterwarnings(action='ignore') # 경고메세지 무시

 

 

load_boston을 데이터프레임화 

 

boston = load_boston()

df = pd.DataFrame(boston.data, columns=boston.feature_names)
df['Price'] = boston.target

데이터프레임으로 잘 만들어졌다!

 

 

변수 설명

 

CRIM 도시 별 1인 당 범죄율
ZN 25,000 평방비트 이상 부지에 대한 주거용지 비율
INDUS 도시 당 비소매 상업지역 면적 비율
CHAS 찰스강의 경계에 위치 유무 (1 : 찰스 강 경계에 위치 / 0 : 찰스 강 경계에 위치하지 않음)
NOX 일산화질소 농도
RM 주택 당 방 수
AGE 1940년 이전에 건축된 주택의 비율
DIS 직업센터의 거리
RAD 방사형 고속도로까지의 거리
TAX 재산세율
PTRATIO 학생/교사 비율
B 인구 중 흑인 비율
LSTAT 인구 중 하위 계층 비율
PRICE 주택 가격

 

변수 별 price와의 관계 시각화

 

for name in df.columns:
    print(name)
    plt.plot(df['%s'%name], df['Price'], 'b+')
    plt.show()

출력 예시

상관관계

 

df.corr()[['Price']].sort_values(by='Price', ascending=False)

 < 절댓값 기준 >
 0.8 ≤ r : 강한 상관
 0.6 ≤ r < 0.8 : 상관
 0.4 ≤ r < 0.6 : 약한 상관
 r ≤ 0.4 : 거의 상관 없다.

 

 

seaborn을 활용한 pairplot 그리기

 

sns.pairplot(df[['INDUS','RM','PTRATIO','LSTAT', 'Price']])
plt.show()

상관계수를 기준으로 몇 변수와 타겟변수만 추려 pairplot을 그린다.

경향성이 보이는 그래프가 몇몇 보인다. 

 

Q. 그래프 중 일직선을 그리는 그래프는 무엇을 뜻할까?

→ unique한 값이 적은 경우 (ex. 데이터 샘플 수는 400개인데, 해당 변수의 unique한 값은 60개 정도)

 

 

https://github.com/HayeonKang01/BOAZ/tree/분석세션

 

GitHub - HayeonKang01/BOAZ

Contribute to HayeonKang01/BOAZ development by creating an account on GitHub.

github.com

 

'BOAZ' 카테고리의 다른 글

BOAZ 18기 데이터 분석 합격 후기  (0) 2021.12.29