Orange3

Orange3 실행 환경 구성

Bordercolli 2023. 7. 31. 11:20
728x90

Orange3 소개

orange3라는 툴을 이용해서 마우스 클릭 만으로 숫자, 텍스트, 이미지 등과 같은 데이터 분석이 가능하다. 이것을 시각화해서 살펴볼 수 있다. 여러가지 머신러닝 모델을 활용해서 데이터를 비교분석할 수도 있다. 초등학생도 사용가능할 만큼 쉽다.

 

시각적으로 위젯 하나하나를 연결시켜서 코딩을 할 수 있다. 

 

Orange3 사용방법

shortcut은 바탕화면에 생기는 단축 아이콘으로 아이콘만 클릭해도 프로그램을 실행시킬 수 있다.

1. 파일: 새로운 파일 만들거나, 열거나, 저장한다.

2. 편집: 아무것도 작성하지 않으면, 활성화되지 않고 우리가 흔히 사용하는 복사, 붙여넣기, 모두 선택하기, 삭제하기 등 수정 작업들을 수행한다. (undo는 방금전 작업을 취소함, redo는 방금전 취소한 것을 되살리는 것)

3. 뷰: zoom in - out을 통해서 글자 크기를 줄이거나 늘릴 수 있다. 

4. 위젯: 위젯들의 이름을 지우거나 바꿀 수 있다. 

5. 윈도우: 'display widgets on top'을 체크한다

6. 옵션: 환경설정, 위젯 설정 리셋을 할 수 있다.

7. 도움

이러한 것들을 위젯이라고 한다.

 

오른쪽 마우스를 누르거나 위젯들을 드래그하 이처럼 위젯을 추가할 수 있다.

위젯을 삭제하고 싶다면 위젯을 선택한 후 delete키를 누르면 된다. 

 

66%정도는 훈련용도로 사용하고 10%는 테스트 용도로 사용하겠다.

이처럼 복잡하게 텍스트 코딩 없이 위젯을 하나 가져가서 연결하여 분석 업무를 수행할 수 있다.

datasets처럼 오른쪽에만 표시가 있고, 왼오 둘다 표시가 있는 전자는 출력만을 나타내는 것이고 왼오는 입출력 모두를 의미한다.

 

오른쪽을 눌러서 연결시켜 줄 수 있다. 

위젯을 추가하는 또 하나의 방법으로는 저런 식으로 연결을 하고 오른쪽 마우스를 클릭하면 여러 위젯 목록이 나오고 위젯들을 추가할 수 있다.

이런 식으로! 또한 오른쪽 마우스를 클릭하여 검색기능을 활용해 내가 원하는 위젯을 찾을 수 있다.

이러한 방식으로 여러 개 연결 가능하다. 

 

파일에 저장된 데이터가 명목형 변수의 경우 회귀분석이 불가능하니 저런 식으로 x가 나온다. 만약 수치형 값들을 가진 파일을 삽입한다면 linear regression 윗 부분에 빨간 x부분이 사라진다. 

 

데이터 준비, 머신러닝 과정

파이썬을 사용하면 이런 복잡한 코드 작업들이 필요로 하다.

하지만 orange로  해당 작업들을 시각화하여 나타내는 것이 가능하다.  

우선 엑셀을 열어서 데이터를 만들어 준다.

* csv파일이란? comma seperated value, 콤마로 분류된 값 즉 데이터가 쉼표로 구분된 텍스트 파일 

 

머신러닝을 이용한 데이터 분석 모델링 절차 사례

데이터셋 수집 > 특징 추출 > 학습 모델 선정 > 모델 평가 > 모델 최적화

데이터셋 수집: file을 db에 적재, 입력 데이터 구성

특징 추출: 추가 변수 개발, 최종 변수 정의

학습 모델 선정; 지도학습(회귀/ 분류 모형 구성), 비지도학습(segment 분류)

모델 평가: 후보모형 성능 평가, segment 통계량 분석

모델 최적화: 최종모형 튜닝, segnment profile 정의

 

위젯 추가하기

1. add on 옵션 추가

상단 메뉴바 > options >  add-ons >  설치하고자 하는 add-ons에 체크 > ok > 설치 진행( 시간이 많이 걸린다.) > 설치가 완료되면 orange3를 재실행(자동으로 실행되지 않으니 수동으로 재실행해야 한다.) 

 

왼쪽 아이콘 메뉴에 image analytics가 추가된 것을 확인할 수 있다. 

2. 새로운 위젯을 화면에 추가하는 방법

 

화면을 더블클릭, 오른쪽 마우클릭, 스페이스키를 누르기, 위젯을 클릭 및 드래그, 연결해서 오른쪽 마우스 클릭하기

 

 

Test & Score Widget 

위젯을 올려다 놓으면 그 순간에 데이터를 읽어다 오고, 학습하는 과정들이 모두 진행된다. prediction에서 눈여겨 보아야 할 것은 

 

Adaboost가 거의 같다. 그 이유는 무엇일까?
학습에 사용된 데이터와 예측에 사용된 데이터가 서로 완전이 달랐다. 

 

dataset이 있다. 우리는 이것을 훈련 데이터와 테스트 데이터로 나뉜다. 훈련 데이터를 가지고 학습을 하고 테스트 데이터를 가지고 평가를 한다. 앞에 블로그 내용에는 test데이터를 예측하는데 사용했다. 이것은 무엇과 비유할 수 있는가하면 우리들이 만약 문제 은행을 보고 문제 안에있는 문제들을 달달외워서 시험을 보았다고 생각하면, 시험을 잘 볼 수 밖에 없다. 문제가 똑같이 나왔으니...

그것이 바로 같은 데이터 셋안에 있는 문제들을 가지고 학습을 한 후에 dataset 안에 있는 문제들을 가지고 시험 문제를 낸 것과 마찬가지이다. 당연히 성적이 좋을 수 밖에 없다.

 

또 다른 예시로는 우리가 교과서를 가지고 공부를 했다. 그리고 수능을 보았는데, 수능시험은 교과서 문제를 똑같이 낸 것이 아니라서 공부를 열심히 한 학생들은 좋은 성적을 받을 것이고, 열심히 안한 학생들은 좋은 성적을 받지 못할 것이다. 이것이 학습 데이터와 테스트 데이터를 나누는 이유이다. 

test & score는 데이터에 대한 학습 알고리즘을 테스트를 해준다. 여기서 dataset은 데이터이고, ada boost는 학습 알고리즘이다. 여기서는 3가지 입력이 들어올 수 있다. → train data, test data, 학습알고리즘 

여기선 dataset을 가지고 train 데이터, test데이터 나누어서 사용을 해보도록 한다. 

training set size를 변경함에 따라서 값이 달라진다.

repeat train/test는 전체 절차를 10번 반복함을 의미한다.

leave one out → 한 개만 남겨두겠다. 즉, 테스트를 위해서 한 개의 instance만 남겨두고 나머지는 모두 trian에 사용하겠다.(506개의 데이터 중에서 505개는 train에 사용을 하고, 한 개를 가지고 테스트 하는 작업을 각각 인스턴스마다 수행하여 506번 반복을 하겠다. 결국은 한 행을 테스트 데이터로 놓고 나머지 행은 테스트 데이터로 하여 번갈아가면서 506번 해당 작업들을 수행한다.  )

인스턴스 개수만큼 테스트를 하기 떄문에 안정적이고 confidence한 결과가 나올 수 있다. 

 

위 값들은 predictions의 결과값과 비교해볼 수 있다. 

adaboost의 값과 일치함을 확인할 수 있다. "test on train data: 학습데이터를 가지고 그대로 테스트 하겠다."

라는 의미이다. predictions 와 test & score 이 두 개의 결과는 비슷하게 나올 수 밖에 없다. 그리고 성능이 매우 좋은 것처럼 나온다. 하지만 이것이 성능이 좋은지는 알 수 없다. 이건 문제은행에서 문제들과 답을 외우고 시험을 보고 100점을 받았을떄, 과연 우리의 실력이 오른것인가 와 마찬가지이다.

test on test data를 사용하기 위해서는 train에 사용할 데이터와 test에 사용할 데이터를 연결해줘야 한다. 이것을 연결해주지 않아서 "Missing separate test data input." 이라는 오류가 발생하고 있다.

cross validation이란?

cross validation이란?

K-fold cross validation(교차검증)

valid set와 train set을 따로 두고 train set을 가지고 훈련을 하고 valid set을 가지고 검증을 한다. 

ex) 우리들이 교과서를 가지고 열심히 공부를 하고 모의고사를 한다. 그러면 그 동안 우리들이 공부를 잘 했는지 평가를 할 수 있다. 그리고 모의고사는 여러번 치루게 된다. 이런 개념이 바로 교차검증이다.

k-fold라고 하는 이유는 훈련 데이터를 k개의 구간으로 나누겠다는 것을 의미한다. 여기서 k=5

즉, 5개의 구간으로 나누어서 4개의 구간은 train에 사용하고 하나의 구간은 검증에 사용한다.

그리고 두번쨰 행에 두 번쨰 구간을 검증에 사용한다. 나머지는 훈련에 사용한다.

그리고 세번째 행에 세 번째 구간은 검증에 사용하고 나머지는 훈련에 사용한다. 

이 과정들이 교차검증이라고 하는 것이다. 

orange에서 cross validation이라고 하는 것은 이 kfold cross validation을 의미한다. 

506개의 값을 가진 데이터 셋을 10개로 나누어서 검증을 하겠다. 이렇게 하여 mse, rmse, mae, 결정계수가 달라진 것을 확인할 수 있다. fold 값을 지정하는 것은 우리의 자유이다. 시연을 여러번 해보고 결과가 좋은 것을 택하면 된다. 

 

DATA table을 통해서 실제 예측값이 얼마인지 테스트해보고 싶다면??? test & score 에 data table을 연결한다. 

MSE, RMSE, MAE, R2 말고도 오른쪽 마우스를 클릭하면 다른 지표도 볼 수 있다.

 

'Orange3' 카테고리의 다른 글

Tree 위젯과 Tree View 위젯  (0) 2023.08.01
수치형 데이터 다루기 - 지도학습(분류)  (0) 2023.08.01
수치형 데이터 - 지도학습(회귀)  (0) 2023.07.31