INDEX
I. 엑셀 기초 고급함수
II. 엑셀로 이해하는 기초통계량과 머신러닝
1. EDA
평균 중앙값 분산 표준편차 왜도 첨도 상관관계 공분산 히스토그램 산점도 히트맵
2. 비지도 학습
K-means
3. 지도 학습
KNN, 회귀분석, 의사결정나무
4. 딥러닝
퍼셉트론, CNN
엑셀로 진행한 인공지능 빅데이터 분석 수업
I. 엑셀 고급함수
- 상대참조, 절대참조
- VLOOKUP 함수 / IF, IFerror 함수
- HLOOKUP함수
- 일반적으로 실무에서는 Vlookup 배열을 주로 활용함(잘 안 쓰인다는 말)
- SUMIF, COUNTIF, SUMPRODUCT
- SUMPRODUCT 는 조건이 2개 이상인 경우 사용하기 유용함.
II. 엑셀로 이해하는 기초통계량과 머신러닝
1. EDA
- 평균, 중앙값, 분산, 표준편차, 최소값, Q값, 최대값, IQR, 이상치
- 수염: 가상의 값, 최댓 값은 실값임
- 예) ‘성적의 90점 이상은 통과예요’라고 하는 가상의 기준을 의미함
- 왜도: 쏠린것
- 평균 등 데이터 분석 상 오류가 발생할 수 있으니 판단하는 지표.
- 이런 오류를 보완하기 위해 EDA를 진행하면서 LOG변환 등을 통해 정규분포에 가깝게 변환할 것인지를 판단한다.
- 첨도: 꼬리가 얼마나 많이 늘어지는가
- 상관계수:
- X가 움직일때 Y가 어느 방향으로 얼마만큼 움직이는지 파악하는 계수
- 산점도
- EDA 관련 엑셀 추가 기능 설치
- [파일]-[옵션]-[추가기능]-[엑셀추가기능]-”분석도구 팩”, “해 찾기 추가 기능” 추가하기
- 상관분석
2. 비지도 학습
- 엑셀에서는 주로 비지도 학습 분석 툴 활용 가능
머신러닝 vs 딥러닝
- 머신러닝: 정형 데이터 처리에 특화 - 숫자, 카테고리컬한 데이터
- 딥러닝: 비정형 - 텍스트, 이미지, 동영상
지도학습 vs 비지도학습
- 지도 학습은 답이 있고, 비지도 학습은 없다
- 지도학습
- 예1) 10만원 구매하고 9만원 하는 고객, 4개월 마다 구매를 해서 vip가 되었다 안되었다 하는 고객
- 비지도학습
- 예1) 고객관계관리(CRM) 고객A가 vip가 될 수 있을까?
- 예2) 따릉이 입지 설치, 가로등 설치
- 지도학습
1. K-means
- 임의의 그룹 k개를 설정하여 데이터가 어느 그룹에 속하는지 분류하는 분석
- 그 후 해당 그룹 내의 중심점을 재계산하여 반복 학습 시켜, 각 그룹의 분류를 재설정하고, 하나의 중심점으로 수렴하게끔 만든다.
3. 지도 학습
1. KNN
- 분류분석을 위한 알고리즘
- 주어진 조건의 위치에서 가장 가까운 거리에 있는 K개의 데이터를 뽑아 어떤 분류의 개수가 가장 많은지를 측정하여 해당값의 분류값을 결정하는 방식
- 회귀분석 사용시 K개의 가까운 데이터를 뽑은 다음 K개의 데이터가 가진 Y값의 평균을 구한다.
- 오차 존재 : 100% 맞추려고 노력하는거지, 100%가 맞는게 아니다
- KNN 성능이 좋은 편은 아님, 제일 심플한 알고리즘
- 변수 스케일링이 필요하다 → 정규화가 필요하다 or 표준편차분석이 필요함
- 전처리:
- 안하면 오류 발생: 결측치 처리, 차원일치, 카테코리컬 데이터의 원핫인코딩, NLP 딥러닝할 때 토큰화 및 인코딩
- 해주면 좋음 : 거리기반 알고리즘의 정규화(오차심함), 거리기반 아닌 알고리즘의 정규화, 데이터 축소(과적합 방지), 이상치 처리, CNN의 이미지 전처리
2. 회귀분석
- 예측값과 실제 DATA의 거리의 합이 가장 작은 것을 구한다
- 거리=오차
- 가장 거리가 작은 것이 합리적인 값
- Y=ax+b라고 했을때
- 학습은 a,b를 구하는 단계
- 예측은 ax+b가 고정이고 Y값을 구하는 단계
- 일반적으로 가중치값을 곱하고 절편을 더하여 계산값을 구하고, 실제 데이터 값인 거래금액과 비교하여 발생하는 계산 잔차들의 제곱의 합을 구하여 그 값이 최소값이 되게 함
- 결정계수는 아래와 같은 수식으로 계산됨
- SST(총 제곱의 합) = SSR(회귀값의 제곱의 합) + SSE(잔차 제곱값의 합) 일때
- 결정계수(R^2)= 1-(SSE/SST) = SSR/SST
- MSE, RMSE등을 바탕으로한 Loss Function(손실함수)가 기계를 위한 수치라면
- 계정계수를 바탕으로한 Evaluation Metric(평가지표)는 인간을 위한 수치에 해당함
3. 의사결정나무
- 변수 여러개 중에 어떤 변수를 제일 윗꼭지로 잡아줄거냐를 결정해 줘야함.
- 예) 나이를 기준으로 하면 10.5세, 10세, 11세 등 어느걸 기준으로 나눌 것인가
- 지니불순도:
- 가장 혼재되어 있는거(=50:50으로 나누면 불순도가 높은거)를 제일 낮출 수 있는게 좋은 분류기준
- 그래서 지니불순도가 0.5면 가장 안좋은거
- 지니불순도 = 1-(A클래스 개수/전체 개수)^2-(B클래스/전체)^2
- 랜덤포레스트, XG부스트 등과 관계있음
4. 딥러닝
1) 퍼셉트론
- 분류회귀와 유사한 구조
- 총 3단계로 구성되어 있음.
- y = w1 * x1 + w2 * x2 + … + wm * xm
- 1단계: 임의의 가중치를 바탕으로 값을 구하고 예측값과 오차를 구함.
- 2단계: y로나온 수치를 2단계에서 분류하고, 실제 값과 예측값의 분류가 일치하지 않는지 확인
- 3단계: 일치하지 않을 경우 제일 앞단으로 오차를 피드백하여 반복
- 일치한다고 끝나는게 아니라 해당 가중치가 다른 값들에도 동일하게 일치하게 적용하는지 확인함
- y = w1 * x1 + w2 * x2 + … + wm * xm
- 3단계에서 LEARNING RATE설정은 0.1~0.01 사이로 설정함.
- 0.1이면 값에 빠르게 도달하겠지만, 이게 작은 언덕에서는 지나쳐버리는 경우가 있기에 항상 0.1이 좋은 것은 아님.
- 그렇다고 너무 촘촘하면 작은 언덕도 넘어가지 못하는 경우가 있으니 상황에 따라 조정하여 설정하여야 함.
2) CNN
- 딥러닝은 레이어 구성임
- CNN은 특성 맵이라는 특수 구성으로 이루어짐
- 이미지 분석
- MLP(멀티 레이어 퍼셉트론)구조로는 이미지 분석 안될까?
- 생각보다 잘 나옴
- 근데 왜 CNN을 쓸까
- 더 잘 나오니까
- MLP쓰면 안된다라는 결론보다는 대체적으로는 CNN이 잘 나오기 때문에 쓰는 것.
- MLP(멀티 레이어 퍼셉트론)구조로는 이미지 분석 안될까?
- 왜 이런 구조를 갖는가
- 기본적인 구조는 독립적이라 서로 영향을 미치지는 않으나,
- 이미지를 이해할 때 하나만 보면 잘못된 결과값을 얻는 경우가 있어서
- 해당 값의 주변 값들도 같이 보는 것이 이 이미지를 이해하는데 더 효과적이지 않을까부터 시작해서 생겨난 기법
- 방법
- Input 값에 filter를 적용할 때, 그 비율이나 구성을 맞추기 위해 Padding을 통해 Input 데이터 바깥에 0의 데이터를 임의로 추가
- 이를 바탕으로 Feature Map이라는 결과값을 도출
- 해당 값에 가중치를 부여하여 Output을 도출하고 해당 값의 합과 Bias의 값이 해당 이미지의 값과 일치하는지 확인
- 일치하지 않다면 Output + Bias의 값이 해당 Input 그림의 값과 일치하도록 가중치를 조정하며 반복학습