▶ 통계학과 머신러닝
→ 데이터가 형성하고 있는 패턴을 이야기할 때 '확률'을 사용
▶ 선형 회귀 알고리즘(Linear Regression)
→ 종속 변수 y와 한 개 이상의 독립 변수 x와의 선형 상관 관계를 모델링하는 기법
→ 오차가 가장 적은 y = f(x) 함수를 찾는 문제 (※ f(x) = mx + b)
▷ 기계가 학습하는 방법
① 아무렇게나 그리기
② 정답 비교하기
③ 선 조정하기
④ 학습 완료
★ 최적의 Cost Function 값을 찾아라!
※ Cost Function : Regression Line 값과 실제 데이터의 차이를 비용으로 계산한 함수
▶ 선형 회귀 모델링
- total data = train : test = 8 : 2
→ 충분한 데이터로 학습한 후 미리 확보했던 테스트 데이터를 모델에 넣어봤을 때 얼마나 정확하게 판단하는지 확인
▷ train.csv
train.csv의 컬럼을 보면 마지막 컬럼이 medv인 것을 확인할 수 있다.
▷ test.csv
반면, test.csv의 컬럼을 보면 medv가 존재하지 않는다.
→ total data = train.csv
→ 이 데이터를 train과 test로 나누고 학습한 결과 모델을 test.csv에 적용하면 예측하는 predicted medv 값이 나오는 것
→ 즉, 정답지가 제공되지 않은 데이터셋을 의미
▷ Boston_lm
sklearn : 학습한 것이 잘 되었는지 안 되었는지를 평가하는 것과 관련된 기능
학습에 사용할 수 있는 feature의 개수는 정답지인 medv를 제외한 13가지
총 333개의 row와 15개의 컬럼이 존재
Series(1차원)로 나오지 않도록 .to_frame()을 이용하여 변경해주어야 함
전체 row 개수인 333에서 60개를 뺀 273을 x_train에, 나머지를 x_test에 넣어주기 (train 데이터를 쪼개는 과정)
- x_train과 y_train의 row 개수는 같아야 함
- x_test와 y_test의 row 개수는 같아야 함
- x_train x_test의 컬럼 개수는 같아야 함
fit/train ← x_train + y_train
model ← predict(x_test)
y_predict와 y_test를 비교해보기
Mean Squared error : 45.95 → 오류의 합, 값이 크면 클수록 좋지 않음
즉, crim이라는 요인은 집값을 결정하는 중요한 요인이 아님을 알 수 있음
가장 좋은 결과 값을 갖는 feature은 lstat이라는 요인이었다.
▶ 기초 통계학과 특징 공학
▷ 통계학과 머신러닝
통계학 : 데이터에서 의미를 찾아내는 학문
머신러닝 : 데이터에서 찾은 의미를 활용하기 위한 학문
→ 예측을 하려면 데이터의 특성을 파악할 줄 알아야 함
▷ 데이터의 중심 경향
① 평균값 : 모든 수를 더한 값을 개수로 나누기
② 중간값 : 가운데에 있는 값
③ 최빈값 : 데이터에서 가장 많이 나타나는 값
④ 범위 : 데이터 상한값 - 데이터 하한값
⑤ 사분위수 : 데이터를 네 개의 조각으로 나눈 값
▷ 데이터의 변이와 분포
- 변이 : 데이터의 평균값으로부터 얼마나 떨어져 있는가?
- 분산 : 평균값으로부터의 거리를 제곱해서 평균을 구한 값
- 표준편차 : 분산에 제곱근을 씌운 값 → 평균값으로부터의 거리
▷ 기초 통계 이론
- 조건부 확률 : 어떤 사건 B가 일어났을 때 사건 A가 일어날 확률
☆ 베이즈 정리 : 두 확률 변수의 사전 확률과 사후 확률 사이의 관계를 나타내는 정리
- 정규 분포 (=가우시안 분포)
- 왜도 : 데이터의 대칭 정도(어느 쪽에 치우쳤는지)
- 첨도 : 정규분포 대비 봉우리의 솟음 정도(봉우리가 어느 정도로 솟아있는지)
- 확률 밀도 함수(PDF) vs 누적 분포 함수(CDF)
▷ 머신러닝과 통계
① 기본 통계 수치 확인
- 기본 수치만 살펴보더라도 데이터의 분포와 대략적인 특성 추측 가능
- 데이터 특성 정보를 특징에 바로 사용하는 것도 가능
② 특징 공학
- 편향된 데이터는 중심을 맞춰주고, 특징 범위가 차이가 많이 나면 정규화를 시켜줌
- 모델 정확도와 성능에 큰 영향을 주는 특징 공학에도 통계 지식이 필수
③ 특징으로 사용하기
- 평균, 중간값, 범위, 최빈값, 사분위값, 첨도, 왜도는 생각보다 많은 정보를 줌
▷ 특징 공학
→ 로우 데이터를 예측 모델의 기저에 있는 문제들을 잘 표현해주는 특징들로 변환하여 처음 보는 데이터에 대한 모델 정확도를 향상시켜 주는 방법
▷ 특징 공학 프로세스
① 관찰
- 데이터의 형식은 무엇인가?
- 에러가 없는가?
- 데이터 단위는?
② 전처리
- 형식화 : 분석 목적에 맞는 적절한 파일 형식으로 변환, 데이터베이스에 저장
- 정제 : 문제 해결에 도움이 되지 않는 데이터는 제거, 누락된 데이터 처리
- 샘플링 : 초기 실험에는 일부 데이터만 선택해서 모델링을 할 필요가 있음 (학습시간↑)
③ 추출
- 데이터가 알고리즘이 처리하기에 너무 많은 정보를 담고 있는 경우 특징만 뽑아내야 함
④ 구현
- 직접 특징을 추출하는 방법 → 데이터 구조와 기저 정보에 대한 깊은 이해가 필요
⑤ 변환
- 스케일링 : 전처리 후 데이터의 단위는 제각각 → 범위를 0~1 값으로 치환해 주는 것이 이상적
- 분해 : 하나의 특징이 복잡한 여러 개념을 포함하는 경우 여러 개의 특징으로 분리하거나 선택적 추출
- 결합 : 두 가지를 동시에 고려했을 때 더 큰 의미를 가지는 특징들은 하나의 특징으로 결합
- 변환 : 특징 변수를 모델에 사용할 수 있는 데이터 형식으로 변환
⑥ 선택
- 문제 해결에 도움이 되지 않는 특징은 과감히 버리고 중요도가 높은 특징만 선택
- 적은 속성은 모델의 복잡도를 감소시키고, 모델을 단순화 해 줌 (← 좋은 특징)
- 관련성 : 특징이 모델의 성능에 영향을 미치는 정도를 판단하기 위한 수치
- 유용성 : 주어진 모델에서 에러를 최소화하는 것과 관련된 수치
'WINS STUDY > AI 사이버보안' 카테고리의 다른 글
Week05_악성코드 (0) | 2022.07.13 |
---|---|
Week04_모델 평가 지표 (0) | 2022.07.13 |
Week03_파이썬 라이브러리 (0) | 2022.06.25 |
Week02_머신러닝 (0) | 2022.06.04 |
Week01_인공지능 시대와 정보 보안 (0) | 2022.05.27 |