끄적이는 기록일지

[머신러닝] 1.자료형태_(2) 범주형 자료 본문

AI실무

[머신러닝] 1.자료형태_(2) 범주형 자료

시시나브로 2021. 9. 12. 18:24
728x90
 

[머신러닝] 1.자료형태_(1)

* 머신러닝 : 데이터 자료를 바탕으로 수행하는 분석방식 → 자료의 형태를 파악하는 것은 머신러닝의 필수 과정이라 할 수 있습니다. 1. 자료형태 ① 수치형 자료(Numerical data) - 양적 자료 - 수치

kcy51156.tistory.com

 

 

1. 범주형 자료 

① 순위형 자료 (학점)

- 범주 사이의 순서에 의미가 있음

② 명목형 자료 (혈액형)

- 범주 사이의 순서에 의미가 없음

2. 범주형 자료 요약 필요성

- 다수의 범주가 반복해서 관측

- 관측값의 크기보다 포함되는 범주에 관심

≫ 요약한다면 효율적으로 범주 간의 차이점을 비교가능해짐.

3. 범주형 자료 표현 방법

① 도수분포표

- ooo 만족도 설문(100명)

  ID 만족도
1 a 매우만족
2 b 보통
··· ··· ···
100 z 보통

- 도수 : 각 범주에 속하는 관측값의 개수 value_counts()

- 상대도수 : 도수를 자료의 전체 개수로 나눈 비율 value_counts(normalize=True)

- 도수분포표 : 범주형 자료에서 범주와 그 범주에 대응하는 도수, 상대도수를 나열해 표로 만든 것

범주 도수 상대도수 누적
상대도수
매우만족 30 0.3 0.3
만족 10 0.1 0.4
보통 30 0.3 0.7
불만족 15 0.15 0.85
매우불만족 15 0.15 1.00

② 막대그래프

- 각 범주들의 크기 차이를 시각적으로 잘 보여줄 수 있는 방법

- 각 범주에서 도수의 크기를 막대로 그림

범주 도수
매우만족 30
만족 10
보통 30
불만족 15
매우불만족 15

4. 실습

1. drink.csv에서 참석한 사람 중 이름에 따른 도수를 계산한 코드를 입력하여 drink_freq 에 저장해보세요.

drink.csv
0.00MB

import pandas as pd 
import numpy as np

# drink 데이터 읽어오기 (A, B, C, D, E의 술자리 참여 횟수가 기록된 데이터를 저장한 파일)
drink = pd.read_csv("drink.csv")

"""
1. 도수 계산 
- 각각 이름별로 몇개씩(5개) 있는지 확인
drink_freq = drink['Name'].value_counts()
Attned 넣으면 참석한 횟수1, 불참 횟수0 확인가능

Attend값이 1인 사람들 이름별로 도수분포표 구할 것이므로 Name
"""
drink_freq = drink[drink['Attend']==1]['Name'].value_counts()

print("도수분포표")
print(drink_freq)



>>> 도수분포표
A    4
B    3
C    2
D    2
E    1
Name: Name, dtype: int64

2. 참석 비율(ratio)을 기준으로 막대그래프 막대의 크기를 다르게 하는 코드를 작성하여 출력하세요.

(술자리 참석 빈도의 도수를 한 눈에 보기 쉽도록 막대그래프)

import matplotlib.pyplot as plt
 
# 술자리 참석 상대도수 데이터 
labels = ['A', 'B', 'C', 'D', 'E']
ratio = [4,3,2,2,1]
    
#막대 그래프
fig, ax = plt.subplots()

"""
1. 막대 그래프를 만드는 코드를 작성해 주세요
"""
plt.bar(labels,ratio)


# 그래프 출력
print("막대그래프")
plt.show()

 

728x90
Comments