첫 번째로 자료의 형태에 대해 알아보겠다.
왜 자료의 형태를 알아야할까?
머신러닝은 데이터라는 디지털 자료를 바탕으로 수행하는 분석방식이다.
자료의 형태를 파악하는 것은 머신러닝을 사용하기 위한 필수 과정이다.
머신러닝을 사용할 때는 여러 가지 필요한 정보가 있을 수 있다.
이 중에서 첫 번째 물음은 자료의 형태를 파악해야만 알 수 있다.
이것을 알아야 어떤 머신러닝 모델을 사용할지, 데이터 전처리는 어떻게 할지와 같은 다음 파트로 넘어갈 수 있다.
자료 형태는 위와 같이 구분된다.
자료에는 수치형 자료가 있다. 이것은 수치로 측정이 가능한 자료로 키, 몸무게 등이 있다.
다음으로는 범주형 자료가 있다. 이것은 수치로 측정이 불가능한 자료로 성별, 지역등이 있다.
이런 자료 형태를 나눌 때 주의할 점이 있는데, 범주형 자료와 수치형 자료를 구분할 때 자료의 숫자 표현 가능여부로 구분하면 안된다는 것이다.
범주형 자료가 숫자로 표현되기도 하고 수치형 자료를 범주형 자료로 변환할 수도 있다.
그럼 먼저 범주형 자료에 대해 알아보겠다.
범주형 자료는 순위형 자료와 명목형 자료로 나뉠 수 있다.
순위형 자료는 순서에 의미가 있는 자료이고 명목형 자료는 순서에 의미가 없는 자료이다.
다음은 수치형 자료에 대해 알아보겠다.
수치형 자료는 연속형 자료와 이산형 자료로 나뉠 수 있다.
연속형 자료는 연속적인 관측값을 가지는 자료이고 이산형 자료는 비연속적(셀 수 있는) 관측값을 가지는 자료이다.
<범주형 자료의 요약>
범주형 자료는 다수의 범주가 반복해서 관측되거나 관측값의 크기보다 포함되는 범주에 관심이 있을 때 범주형 자료의 요약이 필요하다.
범주형 자료를 요약하게 되면 어떤 범주에 있는지 그 범주가 얼마나 중요한지에 대해서 요약하고 볼 수 있게 된다.
요약은 다음과 같이 한다.
1. 각 범주에 속하는 관측값의 개수 측정
2. 전체 대비 각 범주 비율 파악
3. 범주 간의 차이점 비교
이렇게 효율적으로 범주간의 차이점을 비교할 수 있게 되는 것이 범주형 자료를 요약하는 이유이다.
그러면 범주형 자료 요약에서 가장 대표적으로 쓰이는 도수분포표에 대해 알아보겠다.
위 정보를 바탕으로 도수분포표를 만들면 아래와 같다.
이 도수분포표에 대한 정의를 보겠다.
도수는 범주에 해당하는 수이다.
도수는 value_counts()라는 함수로 구할 수 있다.
상대도수는 도수를 전체 수에 대해 나눈 것으로 전체에 대해 범주가 차지하는 비율이다.
상대도수는 value_counts()에서 nomalize를 True로 하면 구할 수 있다.
누적 상대도수는 상대도수를 누적해서 더한 값이다.
그럼 이번에는 범주형 자료를 표 형태 말고 시각화하는 방법에 대해 알아보겠다.
시각화를 하면 각 범주들의 크기 차이를 잘 보여줄 수 있다.
시각화 방법에는 막대 그래프(Bar Chart)가 있다.
파이썬에서 막대그래프를 그릴 때는 plt.bar()로 그릴 수 있다.
막대 그래프를 그리게 되면 각 범주의 크기를 한눈에 파악하기 쉬운 장점이 있다.
막대 그래프의 특징을 보겠다.
실습 예제)
범주형 자료를 요약하기 위해 도수분포표를 출력해보기
A, B, C, D, E 이 다섯 명의 술자리 참여 횟수가 기록된 데이터를 저장한 파일인 drink.csv 파일을 이용하여 누가 제일 술자리에 자주 나왔는지 value_counts() 함수로 계산한 도수로 확인하라
drink.csv파일의 두 가지 구성 요소:
∎ Attend : 참석한 경우 1, 참석하지 않은 경우 0
∎ Name : 참석자의 이름
(참고 : value_counts() 함수는 pandas Series의 도수를 구하여 출력하는 함수이다. 아래와 코드를 사용하면 Name 열의 도수를 출력한다.
drink['Name'].value_counts() )
답↓
결과↓
실습 예제 2)
위 실습의 결과를 통해 막대 그래프를 그려라
답↓
결과↓
이번에는 수치형 자료의 요약에 대해 배워보겠다.
수치형 자료는 범주형 자료와 달리 수치로 구성되어 있어 통계값을 사용해 요약이 가능하다. 그래서 원래 시각적 자료로는 이론적 근거 제시가 쉽지 않은데 이 통계값을 이용해 단점을 보완할 수 있다.
따라서 대략적인 분포상태를 통계값만으로도 알 수 있다.
범주형 자료에서는 그래프를 그리고 도수분포표를 그려야지 어떤 분포인지 유추할 수 있었다. 하지만 수치형 자료에서는 통계값을 이용해서 좀 더 쉽게 유추할 수 있다.
그러면 이제 이 통계값에 대해 알아보겠다.
그 첫 번째로 평균에 대해 알아보겠다.
통계에서 평균이라는 값은 굉장히 많이 사용되는 값이기 때문에 수치형 자료를 요약할 때 제일 많이 사용되게 된다.
이 평균은 관측값들을 대표할 수 있다는 장점도 있지만 극단적으로 큰 값이나 작은 값의 영향을 많이 받는다는 단점도 있다.
파이썬에서 np.mean( array )로 array의 평균을 구할 수 있다.
다음으로는 퍼진 정도를 측도하는 분산과 표준편차이다.
평균 외에 분포가 퍼진 정도를 측도하는 수치로 분산, 표준편차가 가장 대표적이다.
예시)
평균이 값음에도 분산이 다르기 때문에 그래프가 다르게 나타난다.
예시2)
분산 값이 크면 클수록 평균으로부터 많이 떨어져있다고 볼 수 있다.
분산은 statistics 모듈의 variance( array )라는 함수를 이용해 array에 있는 element들의 분산을 구할 수 있다.
다음으로 표준편차다.
표준편차는 분산의 양의 제곱근이다.
표준편차는 statistics 모듈의 stdev( array )라는 함수를 이용해 array에 있는 element들의 분산을 구할 수 있다.
이번에는 히스토그램(Histogram)에 대해 알아보겠다.
지금까지 배운 통계값을 바탕으로 시각화하는 방법이다.
이 히스토그램은 수치형 자료의 범위를 나눠 막대그래프와 같은 방식으로 시각화하는 방법이다.
도수를 비교할 때 범주형 자료에서는 시각화 방법으로 막대그래프를 이용했고 여기 수치형 자료에서는 히스토그램을 사용한다.
히스토그램은 아래와 같다.
원래는 수치형 자료의 값들이 X축에 대응되는 것이 맞지만 히스토그램에서는 이 값들을 ‘계급’이라는 범주로 나누어 값들의 빈도수를 표현한다.
이 계급을 정하는 방법은 그리는 사람 마음이고 계급을 많이 만들면 만들수록 좀 더 촘촘하게 세분화 해서 그래프를 그릴 수 있다.
실습 예제)
수치형 데이터인 카페인 데이터를 히스토그램으로 시각화하라
답↓
plt.hist()에서 bins는 히스토그램을 구성하는 계급의 개수를 의미한다.
결과↓
'인공지능 공부' 카테고리의 다른 글
[2021 NIPA AI 교육 - 응용 / 머신러닝] 03 지도 학습 - 회귀 (0) | 2021.08.21 |
---|---|
[2021 NIPA AI 교육 - 응용 / 머신러닝] 02 데이터 전 처리하기 (1) | 2021.08.20 |
[2021 NIPA AI 교육 - 응용 / 머신러닝] 00 인공지능/머신러닝 개론 (2) | 2021.08.19 |
[2021 NIPA AI 교육 - 기본] 05 Matplotlib 데이터 시각화 (0) | 2021.08.11 |
[2021 NIPA AI 교육 - 기본] 04 데이터 조작 및 분석을 위한 Pandas 심화 (0) | 2021.08.09 |