데이터마이닝
데이터마이닝 필요성
데이터마이닝 프로세스
목적설정
데이터수집
데이터 정제
데이터마이닝 방법결정
모델결정
성능평가
적용
연관성 분석
분류 분석
군집 분석
예측분석
기술 통계학
추론 통계학
통계학을 통하여 머신러닝을 이해할 수 있음 - 머신러닝 모델들이 통계적인 기반으로 제작
모집단 : 분석 대상의 전체 데이터 (인구 총 조사, 반 전체 데이터 등)
표본집단 : 모집단의 한부분, 전체 데이터의 일부분
모수 : 모집단의 특징을 나타내는 수치값
통계량 : 표본의 특징을 나타내는 수치값으로, 모수 추정을 위해 사용 (평균, 중앙값, 최빈값, 분산 등)
정규분포 : 좌우가 대칭 평균, 중앙값, 평균이 같음
import numpy as np
from scipy import stats
data = np.random.randint(0,100,1000)
data
mean = np.mean(data)
median = np.median(data)
mode = stats.mode(data)
print(mean)
print(median)
print(mode[0][0],mode[1][0])
산포
분산
표준편차
범위
사분위수
IQR(Interquartile Range) : Q1과 Q3의 차이
from statistics import variance, stdev #분산, 표준편차
import numpy as np
data = np.random.randint(0,100,30)
data
var = variance(data)
print('분산 : ', var)
std = stdev(data)
print('표준편차',std)
range_ = max(data) - min(data)
print('범위',range_)
-> 범위 96
for index, temp in enumerate(range(0,101,25)) :
print(index + 1, '사분위 : ',np.percentile(data,temp))
->
1 사분위 : 3.0
2 사분위 : 18.25
3 사분위 : 27.5
4 사분위 : 67.75
5 사분위 : 99.0
print('IQR : ',np.percentile(data, 75) - np.percentile(data,25))
-> IQR : 49.5
통계적 가설검증 기법
귀무가설 : 대립가설과는 반대인 가설
대립가설 : 내가 밝히고자 하는 가설
귀무가설과 대립가설의 예
비가 오는 날에 매출차이가 나는가?
유의 수준 : 가설검정의 판단 기준이 되는 값 (0.05, 5%)
- p.value > 0.05 : 귀무가설 성립
- p.value < 0.05 : 대립가설 성립
T-검정
모집단의 분산이나 표준편차를 알지 못할 때, 표본으로부터 추정된 분산이나 표준편차를 이용하여 두 모집단의 평균의 차이를 알아보는 검정방법
집단의 수는 최대 2개까지 비교 가능하며 3개 이상인 경우 분산분석(ANOVA)를 사용
T-검정 종류
T-검정 예제
#성별간 성적 차이가 있는지에 대한 분석
import pandas as pd
import scipy.stats as stats #t-test를 위한 라이브러리
df = pd.read_csv('student-mat.csv')
df.head()
#성별 분포 확인
df_sex = df.values_counts('sex')
df_sex.plot(kind='bar')
#성별, 시험성적 데이터만 가져옴
exam = df[['sex','G1','G2','G3']]
#t-test를 남성과 여성을 구분
mdata = exam[exam['sex'] == 'M']
fdata = exam[exam['sex'] == 'F']
#남성 기술통계량
mdata.describe()
#여성 기술통계량
fdata.describe()
print('G1 t-test:',stats.ttest_ind(mdata['G1'],fdata['G1'],equal_var=True))
print('G2 t-test:',stats.ttest_ind(mdata['G2'],fdata['G2'],equal_var=True))
print('G3 t-test:',stats.ttest_ind(mdata['G3'],fdata['G3'],equal_var=True))
#3 과목에 대해서만 p-value가 0.5 이하임으로 유의미한 차이가 있는 것으로 보이고 나머지 과목은 유의미한 차이가 없다.
p-value
귤나무에서 수확한 귤한개의 무개가 최소 100g이 된다고 주장할때, 표본 15개를 추출하고 평균 무게를 확인했더니 95g이고, 표준편차는 3.5g이었다면, 유의수준 5%(0.05)로 위의 주장은 기각될까?
-> 귀무가설 : 귤의 무게는 100g 이상일 것이다.
-> 평균 : 95, 표준편차 3.5, 표본 15개
import numpy as np
from scipy import stats
mu = 100
mean = 95
sigma = 3.5
n = 15
#단일 표본 t 검증
#t통계량 구하기
t_s = (mean - mu) / (sigma/np.sqrt(float(n)))
t_s
t_point = stats.t.ppf(0.05, n-1)
print(t_point)
p_value = stats.t.sf(np.abs(t_s),n-1)
p_value #0.05보다 작은 값임으로 귀무가설 기각
정규분포
연속 확률 분포 중 하나로, 대표적인 분포 중 하나
정규분포는 평균과 표준편차 두 개의 파라미터로 모양이 결정되며, 종 모양의 대칭성을 가지고 있음
평균을 중심으로 대칭성
표준편차가 작을수록 분포가 좁아지고, 클수록 분포가 더 넓어짐
정규분포의 전체 면적은 1이며, 평균값을 중심으로 좌우 대칭으로 분포
중심극한정리에 따라, 독립적인 여러 확률 변수의 합이 정규분포를 따름
수학 시험이 정규분포를 따를 때 평균점수 63점 표준편차 12점인 경우 80점이상인 학생의 비율은?
import numpy as np
from scipy import stats
s = 80
mean = 63
sigma = 12
result = (s-mean) / sigma
result
p_val = 1-stats.norm.cdf(result)
p_val = p_val * 100
p_val #80점 이상은 7.8%
-> 7.829020354481742
두 개의 범주형 변수가 서로 독립인지 아니면 관련성이 있는지를 검증하는 통계분석
ex) 흡연 여부와 폐암 발생 여부라는 두 개의 범주형 변수가 있다면, 이 두 변수 사이에 독립성이 있는지를 검증
colab
https://colab.research.google.com/drive/14qDEC3_XdMl9aWspW4oXPxL-8-bhBeAZ?usp=sharing