본문

핸즈온 머신러닝 8일차 "가정검사와 데이터 추출 & 히스토그램"


2.2.3 가정검사

가정을 나열하고 검사합니다.

이 과정에서 심각한 문제를 일찍 발견할 수도 있습니다.

ex) 다음 컴포넌트에서 이 값이 그대로가 사용되지 않는 경우(저,중,고 카테고리 사용)라면 정확한 가격이 중요하지 않게 됩니다. 따라서 주어진 상황에서는 회귀보다 분류 작업이 맞게 됩니다. 만약 회귀 시스템이 구축된 이후에 이러한 사항을 발견하면 .. 마음이 힘들겠죠.. ㅠㅠ

2.3 데이터 가져오기

import os

import tarfile

from six.moves import urllib


DOWNLOAD_ROOT = "https://raw.githubusercontent.com/ageron/handson-ml/master/"

HOUSING_PATH = "datasets/housing"

HOUSING_URL = DOWNLOAD_ROOT + HOUSING_PATH + "/housing.tgz"


def fetch_housing_data(housing_url=HOUSING_URL, housing_path=HOUSING_PATH):

   if not os.path.isdir(housing_path):

       os.makedirs(housing_path)

   tgz_path =  os.path.join(housing_path, "housing.tgz")

   urllib.request.urlretrieve(housing_url, tgz_path)

   housing_tgz = tarfile.open(tgz_path)

   housing_tgz.extractall(path=housing_path)

   housing_tgz.close()

fetch_housing_data()


# 데이터를 추출하는 코드입니다. fetch_housingdata()를 호출하면 datasets/housing 디렉토리를 만들고 housing.tgz파일을 같은 디렉터리에 풀어 housing.csv파일을 만듭니다.


import pandas as pd


def load_housing_data(housing_path=HOUSING_PATH):

   csv_path = os.path.join(housing_path, "housing.csv")

   return pd.read_csv(csv_path)

# 데이터를 담은 판다스 데이터프레임 객체로 반환합니다.

housing = load_housing_data()

housing.head()

# 처음 다섯행을 확인 하는 코드입니다.


housing.info()

# info()는 데이터에 대한 간략한 설명과 전체 행수, 각 특성 데이터 타입과 null이 아닌 값의 개수를 확인하는데 유용합니다.


housing["ocean_proximity"].value_counts()

# 각 카테고리에 얼마나 많은 구역이 있는지 확인합니다.


housing.describe()

# 숫자형 특성의 요약 정보를 보여줍니다.


%matplotlib inline

import matplotlib.pyplot as plt

housing.hist(bins=50, figsize =(20,15))

plt.show()

# 히스토그램을 hist() 메서드로 호출할 수 있습니다.



스터디 중 필기한 내용으로 모든 참고자료는 핸즈온 머신러닝입니다.

아래 책을 클릭하시면 구매페이지로 이동합니다.


핸즈온 머신러닝


공감과 댓글은 글쓴이에게 큰 힘이 됩니다. 

마음에 드셨으면 공감과 댓글부탁드립니다.





댓글