여기참조해서 작성했음을 밝힙니다.


Weka란

ML하는데 있어서 기본 적인 툴, Java로 작성되어 있으며 오픈소스이다(여기서 다운로드)

다양한 종류의 ML알고리즘을 제공하며 간단하게 유명한 알고리즘들을 빠르게 돌려보고 싶을때 유용하다(앙상블 알고리즘 돌려보는데도 좋다)

단 커스터마이징이 커맨드라인 옵션 수준이라 나만의 모델을 만드는데 적합하지는 않은것 같다.


data입출력에 CSV와 유사한 ARFF포맷 사용

weka 실행 후 Explorer 누르고 Open file 누르고 설치폴더 data 안에 들어가면 기본적으로 제공되는 많은 arff 파일들을 살펴볼 수 있다.

추가적인 데이터는 여기서 살펴보면 좋다.

데이터 자체를 살펴보고 싶으면 Edit버튼을 누르고 보면 된다.

처음에 둘러보기 좋은 데이터는 iris 추천.. 꽃잎 length랑 width가 주어지고 class로 세가지 iris종류가 label되어 있는 자료이다.


Weka로 할 수 있는 것들

특정 인풋컬럼(feature)에 대해서 노말라이즈하기, 비주얼라이즈하기


Select Attributes 탭에서 feature selection 하기 (유의미한 컬럼 순으로 나열해서 필요없는 컬럼 제거하거나 할 수 있다)

Attribute Evaluator는 CorrelationAttributeEval이나 InfoGainAttributeEval 이런거 고르면 된다.


classification하기.. 

Classify탭에서 알고리즘 고르고 Start 버튼 누르면 된다. baseline performance는 ZeroR로 하면 좋다고 한다.(Zero Rule)

Zero Rule 알고리즘은 단순히 개수가 많은쪽 class로 몰빵해서 예측하는 알고리즘이라고 함

(classification이 아닌 regression의 경우는 평균값으로 예측한다고 함)

5 Top algorithms that you can use for classification include:

- Logistic Regression (functions.Logistic).

- Naive Bayes (bayes.NaiveBayes).

- k-Nearest Neighbors (lazy.IBk).

- Classification and Regression Trees (trees.REPTree).

- Support Vector Machines (functions.SMO).


regression하기..

Weka는 기본적으로 Classification에 강한 툴이지만 regression 알고리즘 및 샘플 데이터도 어느정도 제공한다.

여기서 regression용 추가 데이터 다운로드(jar파일이라 압축해제해야 arff파일들 나온다)

classfication과 마찬가지로 ZeroR로 베이스라인 성능 확인하고(Root mean squared error 등) 다음 알고리즘들 돌려보면 된다.

5 Top algorithms that you can use for regression include:

- Linear Regression (functions.LinearRegression).

- Support Vector Regression (functions.SMOReg).

- k-Nearest Neighbors (lazy.IBk).

- Classification and Regression Trees (trees.REPTree).

- Artificial Neural Network (functions.MultilayerPerceptron).


Ensemble하기..(classification, regression 둘 다 지원)

앙상블은 일종의 메타 알고리즘이라 어떤걸 sub알고리즘으로 사용할지 커맨드라인에서 지정해줘야함에 주의.. 기본적으로는 ZeroR로 세팅된 경우가 많아서 더욱 그렇다.

5 Top ensemble algorithms that you can use include:

- Bagging (meta.Bagging).

- Random Forest (trees.RandomForest).

- AdaBoost (meta.AdaBoost).

- Voting (meta.Voting).

- Stacking (meta.Stacking).


반응형

'AI, ML > ML' 카테고리의 다른 글

부스팅(boosting)  (0) 2019.05.28
Word2Vec  (0) 2019.04.24
1D CNN  (0) 2019.02.26
의사결정나무(Decision Tree)  (0) 2019.02.07
[데이터 전처리] clipping vs trimming  (0) 2019.01.04

+ Recent posts