1. WEKA 소개
- 세계에서 가장 많이 사용되는 데이터마이닝 패키지
2. 용어
- Data Set : 표 형식의 데이터를 의미
- Attribute(속성) : 표 형식에서 얻을 수 있는 data set 열(column)
- Instance(예제) : 표 형식에서 얻을 수 있는 data set 행(row)
- Scheme : 기계학습 알고리즘
3. 기계학습 알고리즘
1) Classify(분류)
ⓐ Bayes
- NaiveBayse - 나이브 베이지안 분류기
ⓑ Functions
- SimpleLinearRegression : 선형회귀분석(모든값이 수치값이어야함)
- MultilayerPerceptron : 신경망 알고리즘
ⓒ Lazy (Instance-Based Algorithm)
- k-nearest neighbor : k-최근접 이웃 알고리즘(가장 인접한 인스턴스의 클래스 값으로 새 인스턴스의 클래스 추천)
ⓓ Rules
- ZeroR : 다수의 클래스를 추천해주는 알고리즘
- OneR : 인스턴스에 대한 특정한 하나의 속성에 대해 클래스 값을 추천해줌
ⓓ Trees
- J48(C4.5) : 결정 트리
2) Cluster(군집)
- EM(Expectation maximization) : 기대값 최대화 알고리즘
- SimpleKMeans : 단순 k 평균 군집분석(군집의 개수를 k로 지정하여 전체 인스턴스를 k개의 군집으로 할당하는 알고리즘)
3) Associate(클래스를 특정하게 지정안함. 어떤 속성과 관련있는지 if, then으로 알려줌)
- Apriori : 연관 규칙 분석
- weka 파일 포멧 : aiff
4. 메뉴
1) use traning set : 지정한 트레이닝 셋을 가지고 기계학습 알고리즘을 적용했을 때, 그 결과의 정밀도, 정확도, 재현율 보여주는 옵션
- cross-validation : 트레이닝과 테스팅에 대한 개념을 모두 수행하는데 널리 이용되는 성능평가 방법 (전체 데이터를 10개의 바스켓에 담고, 9개는 트레이닝(일반화를 가져올 수 있는 훈련 데이터셋) 1개는 테스트(새로운 데이터 셋에 훈련결과를 적용시키는것)를 진행함)
5. 자세한 알고리즘
1) One Rule
: 정확도가 가장 높은 속성 하나를 선택해서 그 속성과 속성값으로 분류하는 알고리즘
2) Zero Rule
: 가장 단순한 형태의 기계학습 알고리즘으로 전체 인스턴스의 클래스 값에서 다수를 추천해주는 알고리즘
예를 들어 weather 인스턴스에서 play 클래스 값이 yes 가 7개이고 no가 5개이면 yes를 추천해준다.
5. Knowledge flow
: weka 기능들을 아이콘화 하여 마이닝 과정을 사용자에게 시각화 해서 보여줌
6. ouput에 대한 이해
1) accuracy(정확도) = 정확하게 분류된 인스턴스 수 / 전체 인스턴스 수
쉽게 이해하면 전체 클래스중에 제대로 분류된 인스턴스 비율
2) preicision(정밀도) = 정확하게 분류된 특정 클래스의 인스턴스 수 / 특정 클래스에 속해 분류된 인스턴스 수
특정 클래스 x로 분류된 것중에 진짜(원래) x의 비율
3) recall(재현율) = 특정 클래스에 정확하게 분류된 인스턴수 수 / 특정 클래스의 인스턴스 수
특정 x클래스가 얼마나 잘 x로 분류 되었는가?
ex)
- TP Rate : true positive / FP : False positive
counfusion matrix를 보면,
Total 14개의 값이 나오고 yes로 분류된 class가 9, no로 분류된 게 5개이다.
a | b | |
9 | 0 | a |
1 | 4 | b |
첫째 줄 행에 있는 a,b는 특정 알고리즘으로 분류했을때 a, b의 개수이다.
오른쪽 세번째 줄에 있는 a = yes이고, b=no 이다.
먼저 정확도를 계산해보면,
제대로 분류된 인스턴스 / 전체 인스턴스 이므로
13개는 제대로 분류 되었지만 no에서 1개가 잘못 분류 되었으므로 13/14 = 0.93이다.
TP RATE를 계산해보자.
분류된 YES의 개수/ 원래 YES의 개수 = 9/9,
분류된 NO의 개수 / 원래 NO의 개수 = 4/5
Precision을 계산해보자
a클래스에 분류된 yes의 수 = 10개
그 중에서 제대로 분류된 yes의 수는 9개
따라서 yes의 정밀도는 9/10
마찬가지로 no도 계산해서 4/4라는 사실을 알 수 있음
Recall을 계산해보자
a클래스에 분류된 인스턴스의 수 = 9
원래 a클래스(yes)로 분류되어야 하는 인스턴스의 수 = 9
따라서 9/9
b클래스에 분류된 인스턴스의 수 = 4
원래 b클래스(no)로 분류되어야 하느 인스턴스의 수 = 5
따라서 4/5 이다.
'Major > Database' 카테고리의 다른 글
[파일 처리] 03 파일 입출력 제어 (0) | 2022.04.09 |
---|---|
[파일 처리] 02 화일 저장 장치 (0) | 2022.04.06 |
[파일 처리] 01 화일의 기본 개념 (0) | 2022.04.06 |
[데이터베이스설계] Mysql stored function 피보나치(fibonacci) (0) | 2021.11.18 |
[데이터베이스] 데이터베이스 시스템의 개요 (0) | 2021.10.05 |