minyeamer
Minystory
minyeamer
edit settings
전체 방문자
오늘
어제
  • Category List (97)
    • Books (5)
      • Book Reviews (1)
      • Paper Reviews (4)
    • Life (4)
      • Blog (3)
      • Item Reviews (0)
      • Thoughts (1)
    • Study (34)
      • 2022 (0)
      • AI SCHOOL (34)
      • References (0)
    • Tech (54)
      • Algorithm (46)
      • Projects (6)
      • Python (2)

Blog Menu

  • Home
  • Notice
  • Tags
  • Guest

Popular Posts

Recent Comments

Recent Posts

hELLO
minyeamer

Minystory

[AI SCHOOL 5기] 통계분석 실습 - 빈도 분석 & 기술통계량 분석
Study/AI SCHOOL

[AI SCHOOL 5기] 통계분석 실습 - 빈도 분석 & 기술통계량 분석

2022. 4. 2. 22:09

1. Chart

Pie Chart

df['column'].value_counts().plot(kind = 'pie')

Bar Chart

df['column'].value_counts().plot(kind = 'bar')


2. Descriptive Statistics

  • df['column'].max(): 최댓값 (행방향 기준: axis=1)
  • df['column'].min(): 최솟값
  • df['column'].sum(): 합계
  • df['column'].mean(): 평균
  • df['column'].variance(): 분산
  • df['column'].std(): 표준편차
  • df['column'].describe(): 기술통계량

3. 분포의 왜도와 첨도

  • df['column'].hist(): 히스토그램

  • df['column'].skew(): 왜도 (분포가 좌우로 치우쳐진 정도)
  • 왜도(Skewness): 0에 가까울수록 정규분포 (절대값 기준 3 미초과)
    우측으로 치우치면 음(negative)의 왜도, 좌측으로 치우치면 양(positive)의 왜도
  • df['column'].kurtosis(): 첨도 (분포가 뾰족한 정도)
  • 첨도(Kurtosis): 1에 가까울수록 정규분포 (절대값 기준 8 또는 10 미초과)
  • 왜도가 0, 정도가 1일 때 완전한 정규분포로 가정
  • sns.distplot(df['column'], rug=True): distribution plot
    rug: 막대 그래프를 표시할지 여부

  • sns.jointplot(x='column1', y='column2', data=df): 산점도와 히스토그램 한번에 표시

  • sns.jointplot(..., kind="kde"): 밀집된 분포 곡선을 표시


4. Outlier 탐지 및 제거

  • df.boxplot(column='column'): 데이터 전체에 걸쳐서 분포 밀집도를 표시

IQR 활용

  • IQR(Inter-Quantile Range): 바닥부터 75% 지점의 값 - 바닥부터 25% 지점의 값
  • 상한치: 바닥부터 75% 지점의 값 + IQR의 1.5배
  • 하한치: 바닥부터 25% 지점의 값 - IQR의 1.5배
  • 상한/하한치를 넘으면 Outlier로 판단
Q1 = df['column'].quantile(0.25)
Q3 = df['column'].quantile(0.75)

IQR = Q3 - Q1

df_IQR = df[ (df['column'] < Q3 + IQR * 1.5) & (df['column'] > Q1 - IQR * 1.5) ]
df_IQR.boxplot(column='column')

Outlier 제거 전후 분포 비교

Histogram

Joint-Plot


5. Log 함수를 활용한 데이터 스케일링

  • 왜도 혹은 첨도가 너무 큰 경우, Log 함수를 적용해 왜도/첨도를 낮춰주는 전처리를 적용
  • processed_df['log_column'] = np.log(processed_df['column'])

저작자표시 (새창열림)

'Study > AI SCHOOL' 카테고리의 다른 글

[AI SCHOOL 5기] 통계분석 실습 - A/B Test  (0) 2022.04.02
[AI SCHOOL 5기] 통계분석 실습 - T-Test & 상관관계 분석  (0) 2022.04.02
[AI SCHOOL 5기] 통계분석 실습 - Numpy & Pandas  (0) 2022.03.29
[AI SCHOOL 5기] 웹 크롤링 실습 - 웹 크롤링  (0) 2022.03.29
[AI SCHOOL 5기] 웹 크롤링 실습 - 셀레니움  (0) 2022.03.28
    'Study/AI SCHOOL' 카테고리의 다른 글
    • [AI SCHOOL 5기] 통계분석 실습 - A/B Test
    • [AI SCHOOL 5기] 통계분석 실습 - T-Test & 상관관계 분석
    • [AI SCHOOL 5기] 통계분석 실습 - Numpy & Pandas
    • [AI SCHOOL 5기] 웹 크롤링 실습 - 웹 크롤링
    minyeamer
    minyeamer
    Better than Yesterday

    티스토리툴바