시스템은 JAVA으로,
빅데이터와 AI는 Python으로 개발하는 추세인데,
이 상이한 두 언어를 연동해야 할 때 Weka를 사용한다.
<금일 교육 내용>
- Weka 설치
- Titanic 데이터 분석
<주요 일정>
10월 27일 (금) 취업특강
10월 30일 (월) 오후 1시 MongoDB, Weka 평가
10월 31일 (화) ~ 12월 7일 (목) 팀프로젝트
<왜 Weka를 쓰는가?>
무료이고, 쉽다.
<AI (ML -> DL)>
인공지능은 기존에 사람이 많이 개입해서 만들었는데,
이것을 기계(컴퓨터)가 자동으로 학습하게 해서 최적의 기법을 찾아내게 하는 것이 바로 머신러닝이고,
더 나아가서 인공신경망을 만들어서 스스로 학습(지능적인 결정을)하게 하는 기법이 바로 딥러닝이다.
<지도학습>
데이터 안에 정답이 포함되어있다.
<비지도학습>
정답이 없이 훈련시키는 것.
데이터를 주면서 유사도를 알아서 찾아내서 두가지 그룹으로 구분지으라고 학습시키는 것이다.
입력을 하면 모델(수식)을 찾는 것이 핵심이다.
<지도학습과 비지도학습>
하나는 길이의 특성, 또 하나는 굵기의 특성이 있다.
(예 - 길이가 길고 굵기가 짧다면 애벌레, 길이가 짧고 굵기가 길다면 성충..)
이 특성들로 그래프가 그려지는데, 이때 생기는 선이 바로 모델(수식)이다.
이 모델은 식으로 표현할 수 있는데, 예를 들어서 ax + b와 같은 식으로 표현이 가능하다.
지도학습의 경우엔 오차를 계산할 수 있고, 오차가 줄어드는 방향으로 다시 학습시키는 것이 가능하다.
이 작업을 수없이 반복해서 모델을 만든다.
비지도학습의 경우엔 분류하는 특성이 엄청나게 많은 경우에 유용하게 쓸 수 있다.
계속해서 학습해서 오차범위가 많이 줄어들었을 때 훈련을 멈추기도 한다.
최적의 공식을 찾아내는 것을 모델이라고 한다.
<모델을 찾는 과정>
- DataSet
* Training Data : 훈련데이터(75%)
* Test Data : 검증데이터(25%)
<AI의 기본 학습원리>
- 많은 양을 주면 컴퓨터가 공부해서 공식을 찾아낸다.
- 회귀는 예측을 의미하며, 여기서 시계열 데이터는 시간의 흐름에 따른 예측 데이터를 말한다.
- 싱글(단일모델)
* Decision Tree : 연속된 if문으로 의사결정을 내리는 것을 말한다.
* SVM : 정확도 100% 로 나오는 직선의 갯수..? -> 수 없이 많이 나올 수 있다.
그 중에서 Support Vector Machine은 가장 최적의 직선을 모델로 삼는 것을 의미한다.
* KNN(K 근접 분류, K-Nearest Neighbor) : 비지도학습에 해당함. K는 분류 갯수, N은 얼마나 근접하는지를 의미한다.
그룹핑을 할 때 자주 쓰인다.
- 앙상블모델
* Decision Tree를 여러 개를 써서 각각의 데이터를 수집하는 것을 의미한다.
* 랜덤 포레스트 : Decision Tree를 여러개 써서 나온 데이터 중에서 어떤 것으로 결정을 할 것인지 투표하는 방식이다.
포레스트는 Tree가 여러 개 있기 때문에 그렇게 이름이 붙여졌다고 한다.
* xgBoost는 설명 안하고 넘어가심..
<AI 분석의 분류 - 챗봇+추천시스템>
<비지도(클러스터링 - 그룹핑)>
- 대표적인 클러스터링 : 스팸메일 분류, 뉴스 카테고리가 어디에 속하는지 부류 등..
<지도(회귀) - 선형회귀>
- 대표적인 선형회귀 : 주식예측, 집값예측
<data>
- numeric(*)
* days: categorical, factor(명목)
* temp: continuous data(연속)
- non-numeric
<분석할 데이터는 ㅓ모양, 테이블 모양이 되어야 한다>
* 여기서 ㅓ는 오타가 아니라 실제로 ㅓ 모양이 되어야 한다고 함.
- 맨 마지막 컬럼에 정답을 배치하기 때문에 ㅓ 모양임.
<Weka 설치(jdk -> weka순)>
https://sourceforge.net/pojects/weka/files/
- 짝수 버전은 안정화 버전, 홀수 버전은 시험용 버전이다.
<분석할 데이터 획득>
Kaggle: Your Machine Learning and Data Science Community
Kaggle is the world’s largest data science community with powerful tools and resources to help you achieve your data science goals.
www.kaggle.com
<AI 분석과정>
- 누락된 데이터 또는 잘못된 데이터가 있을 수 있으니 주의하자. (누락된 데이터를 결측치라고 부름.)
- 누락된 데이터를 제외시킬 것인지, 평균치로 무마시킬 것인지를 우리가 조정해줘야 함.
- 우리가 관심 가져야 할 분야 : 4 ~ 5단계
<Filter-NorminalToBinary (명목형을 one-hot 인코딩으로 변환)>
- 숫자가 아닌 데이터를 숫자화 시켜주는 것 :NormalToBinary
배열의 인덱스를 해당 값으로 처리해줌.
ex)
월, 화, 수, 목, 금, 토, 일 을 ONE-HOT 인코딩으로 표현하면?
월 [1 0 0 0 0 0 0]
화 [0 1 0 0 0 0 0]
수 [0 0 1 0 0 0 0]
목 [0 0 0 1 0 0 0]
금 [0 0 0 0 1 0 0]
토 [0 0 0 0 0 1 0]
일 [0 0 0 0 0 0 1]
<ZeroR이란..?>
아무것도 안쓰겠다는 뜻..
- 0번째 인덱스 값으로 몇퍼센트 확률이 나올지를 의미한다.
- 어떤 알고리즘을 쓰든 이 값보단 높게 나와야 함.
- 일종의 기준치 역할을 함.
<Basketball.csv 파일 인코딩>
C와 SG 컬럼을 각각 ONE-HOT Encoding을 하면 각각 1과 0으로 변환이 된다.
왜냐하면, 알파벳순으로 저장되어서 C가 SG보다 앞에 오기 때문이다.
'멀티캠퍼스 > Spring' 카테고리의 다른 글
231025 (수) (0) | 2023.10.25 |
---|---|
231019(목) - MongoDB (0) | 2023.10.20 |
231013 (금) NoSQL - MongoDB (0) | 2023.10.16 |
231012 (목) NoSQL - MongoDB (0) | 2023.10.13 |
검색 알고리즘 (0) | 2023.10.12 |