티스토리 뷰

pd.cut() 연속형 변수를 범주형 변수(bins)로 변경하는 함수이다. 

value_counts() 범주형 변수의 유형값에 대한 개수를 구한다. 

hist() 히스토그램을 표시한다. 

출처: 《핸즈온 머신러닝》 2판(자료는 멘토님이 제공해주심)


원본 코드. 34행까지는 DAY 16과 동일하다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import os
import tarfile
import urllib
 
DOWNLOAD_ROOT = "https://raw.githubusercontent.com/rickiepark/handson-ml2/master/"
HOUSING_PATH = os.path.join("datasets""housing"
HOUSING_URL = DOWNLOAD_ROOT + "datasets/housing/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()
 
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()
 
housing["ocean_proximity"].value_counts()
 
housing.describe()
 
import numpy as np
 
housing["income_cat"= pd.cut(housing["median_income"], bins=[0.,1.5,3.0,4.5,6., np.inf], labels=[12345])
 
housing["income_cat"].value_counts()
 
housing["income_cat"].hist()
cs

38행에서 np.inf를 사용하고 있으므로 numpy를 불러와야 한다. 

import numpy as np

결과는 다음과 같다. 

모양을 조금 만지면 예쁘게 시각화 가능할 듯.