멀티캠퍼스/Spring

231020 (금) Weka

세크레투스 2023. 10. 20. 15:02
반응형
SMALL

시스템은 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/

- 짝수 버전은 안정화 버전, 홀수 버전은 시험용 버전이다.

 

 

<분석할 데이터 획득>

https://www.openml.org/

www.kaggle.com  

https://dacon.io/

 

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보다 앞에 오기 때문이다.

반응형
LIST