o 인공지능의 5가지 기능
1. 예측(Prediction): 데이터를 학습하고 패턴을 파악하여 결과를 예측한다. (시험범위)
2. 생성(Generation): 텍스트, 음성, 사진, 동영상 등을 생성한다.
3. 소통(Conversation): 기계에 대화 기능을 부여하여 질문과 답변한다.
4. 자동화(Automation): 사람에게 의지하지 않고 더 효율적인 방법을 찾는다.
5. 인식(Recognition): 대상의 특성을 인지하고 상황을 판단한다.
o 프로세스
- 문제정의
- 데이터수집
- 데이터 분석 및 전처리
- AI모델링
- AI적용
o 문제정의
* 알고리즘 유형 : 분류 Vs. 회귀
- 과제에 숫자를 예측하는 것이면 회귀, 그 외는 모두 분류(예:Y/N, 유지/해지)
* 데이터설명: 타겟변수(종속변수, output, Y)이 무엇인지 파악
- 그 외 데이터명과 칼럼명(영문)은 여기서 확인
o 데이터 분석 > 기초정보분석
* 전체 데이터에 대한 기본적인 통계 정보를 확인
데이터정보 | 설명 |
Number of variables | 전체 항목(컬럼) 수 → column 수 |
Number of observations | 전체 값(Value) 수 → row수 |
Missing Cells | 결측치, 값이 없음 |
Missing Cells(%) | 결측치 비율 |
Duplicated rows | 중복값 |
Duplicated rows(%) | 중복값 비율 |
유형 | 설명 |
Numeric | 셀 수 있는 데이터 |
Object | 문자 or 문자+숫자로 구성된 데이터 |
Category | 범주형 데이터 (성별, 혈액형 등) |
Timedeltas | 순서를 매길 수 있는 범주형 데이터 (날짜) |
Boolean | 논리값인 참과 거짓 중 하나로 표현 (TRUE/FALSE) |
* 항목별(칼럼) 데이터에 대한 기본적인 통계 정보를 확인: ★기술통계 용어 기억
기술통계 | |||
표현 | 설명 | 표현 | 설명 |
Size | 데이터수 | Zeros | 0 개수 |
Distinct | 중복 제거 후 항목수 | Zeros(%) | 0의 비중 |
Distinct(%) | 중복제거항목율 | Mean | 평균 |
missing | 결측수 | Median | 중앙값 |
Missing(%) | 결측율 | Sum | 합계 |
Minimum | 최소값 | Sd | 표준편차 |
Maximum | 최대값 | skewness | 편포도(비대칭한정도) |
- 분산(variance) : 데이터가 평균으로부터 떨어진 정도를 나타냄, 각 데이터에서 평균 뺀 값
- 표준편차(Standard Diviation): 데이터가 평균으로부터 떨어진 정도를 나타냄, 분산의 제곱근
- 편포도/왜도(Skewness): 데이터 분포가 정규분포 대비 비대칭한 정도
* 분위수 : Q1, Q3 등 값을 물어보는 질문 있음
분위수 | 설명 |
Min | 최소값 – 데이터 중 가장 작은 값 |
5-th per. | 5% 수준값 |
Q1 | 박스 하단의 선으로 데이터 분포상 25% 수준 값 |
Median | 중앙값(Q2), 박스 중간의 데이터 분포상 50%수준 값 |
Q3 | 박스 상단의 선으로 데이터 분포상 75% 수준 값 |
95-th per. | 95% 수준값 |
Max | 최대값 – 데이터 중 가장 큰 값 |
- IQR = Q1과 Q3 사이의 거리 = Q3 – Q1
[이상치 확인] 하단/상단 경계의 바깥에 있는 데이터
- 하단경계 = 박스 바깥의 하단에 있는 선, 하단 이상치 확인 = Q1-(1.5*IQR)
- 상단경계 = 박스 바깥의 상단에 있는 선, 상단 이상치 확인 = Q3+(1.5*IQR)
* 최빈값: 한 항목의 전체 데이터에서 가장 많은 값(value) 순으로 보여줌,
- Value: 값, 실제데이터
- Count(%): 그 값을 갖는 데이터의 개수(비중)
최빈값 (수치형예시) | ||
Value | Count | Count(%) |
2500 | 1407 | 17.79 |
1400 | 1167 | 14.76 |
5000 | 788 | 9.97 |
10000 | 706 | 8.93 |
최빈값 (이진분류 예시) | ||
Value | Count | Count(%) |
Satisfied | 1943 | 54.02 |
unsatisfied | 1654 | 45.98 |
o 데이터 분석 > 시각적 분석 : 실제화면에서 연습해봐야 함
* 산점도
* 히트맵: A와 가장 큰 양이 상관관계는 ?
- 선택항목을 제외하고 젤 진한 색 (빨강-양, 파랑-음)
* 박스차트: 1호러장르를 선호하는 2여성의 3호러 구매 금액 중앙값은? (분위수 질문들)
* 분포차트: 납부 금액이 000인 A고객, B고객의 차이는?
* 워드클라우드
o 데이터 가공
* 결측값 처리
- Most-frequent(최빈값): 데이터에서 가장 많이 나오는 값으로 변환
- Median: 중앙값으로 변환
- Mean: 평균값으로 변환
- Constant(상수): 내가 원하는 값으로 변환
* Scale 조정 (수치형 항목만)
- Min-Max Scaler: 모든 데이터를 최소값0~최대값1사이로 맞춤
- Standard Scaler: 데이터 이상치가 심할 경우 사용, 평균0 & 표준편차 1로 맞춤
* 데이터 변환 (Ordinal_encoder)
- 카테고리형 데이터를 Value(값)간 우선순위가 없도록 2차원배열로 변경해주는 작업
* 칼럼삭제
- 결측치 변환 등 작업 후 기존 항목은 삭제하면 시험 시 헷갈리지 않는다.
* 삭제 안해도 제외input으로 선택하면 됨
o AI모델 학습 > 머신러닝 학습
* 작업데이터 선택
* Data Parameter 선택
* 학습유형
* ML 모델 선택
- 다중선형회귀 Linear Regression
- 로지스틱회귀 Logistic Regression
- K-최근접 이웃 K Nearest Neighbour(KNN)
- Decision Tree
- Random Forest
- Light Gradient Boo…
* 모델 중 성능이 가장 좋은 것은? 대상 모델을 한번에 눌러서 실행하면 됨
o AI모델 학습 > 딥러닝 학습
* 작업데이터 선택
- Output 선택: 타겟변수(종속변수)
- 제외칼럼 선택: 결측치 작업 전 칼럼 등 제외 필요
* 칼럼 Parameter 설정
- Input 각 항목 별 Numerical(수치형), Binary(T/F), Category(범주형) 설정
* 임베딩크기(embedding_size)
* 드롭아웃(dropout): overfitting을 방지하기 위한 테크닉
- Output
구분 | 분류형 | 회귀형 (수치형) |
|
Binary 이진형 | Category 범주형 | ||
데이터유형 | Binary | Category | numericla |
모델유형 | Classifier 분류 | Classifier 분류 | Regressor 회귀 |
활성함수 | Sigmoid | softmax | activation |
. FC 레이어수: Hidden 레이어수, 1~2 (별도 지시 없으면 건들지 않는다.)
. FC 레이어 크기: 16~64 (별도 지시 없으면 건들지 않는다.)
* 학습 Parameter 설정
- Epoches: 1 epoches → 모든 데이터 셋을 1번 학습
- Batch size: Data를 분할하여 GPU를 활용해 병렬로 빠르게 학습
- Early Stop: 대표적인 Overfitting 방지 기법, Train Loss는 감소하나 Valid Loss가 감소하지 않는 시점에서 학습을 중지
- Optimizer: Loss함수의 최적의 Gradient값을 찾는 알고리즘
- Learning Rate: Gradinet를 위해 이동하는 보폭(대게 0.01, 0.001, 0.0001중 선택)
- 교차 검증 fold수
ㅇ AI 성능 평가
- Regressing Model 회귀모델
. MSE: 오차의 제곱의 합 1/n * ∑(실제값 – 예측값)2
. MAE: 오차의 절대값의 합 1/n * ∑|실제값 – 예측값|
- Classification Model 분류모델
. Accuracy(정확도): 각 Label별 정답갯수 / 전체 Lable갯수
. Recall(재현율): 내가 맞힌 1의 개수 / 전체 Data중 1의 개수
. Precisicon(정밀도): 전체 Data중 1의 개수 / 내가 1이라 예측한 개수
ㅇ 딥러닝 모델을 고도화하여 Accuracy 개선하기
- 변수변환, 변수선택, 파라미터 수정
* Epoch을 수정하여 고도화 : 증가시키면 보통 개선됨
- (회귀모델) MSE는 작을수록 개선된 값임
- (분류모델) Accuracy는 높을수록 개선된 값임
o AI모델 활용
* 분석하기
* 변수 영향도 확인: 모델에 가장 많은 영향을 미친 5개 항목을 보여줌
* 시뮬레이션
* 예측하기: 정해진 조건을 입력하여 결과를 예측함
댓글