코딩을 할 줄 몰라도 머신러닝을 할 수 있는 방법이 있습니다. 잘 만들어진 GUI 툴을 이용하는 것인데요. 데이터만 로드하면 수십가지 머신러닝 모델을 적용해보고 퍼포먼스를 평가해보고 결과를 시각화할 수 있습니다. 이 포스팅에서는 무료로 이용이 가능한 Weka라는 툴을 소개드리고 사용방법에 대해 알아보겠습니다.
WEKA란?
파이썬 등 코딩 없이 머신러닝을 해볼 수 있는 툴이 있어 소개드리고자 합니다. Weka라는 툴인데 이 툴은 뉴질랜드 Waikato 대학에서 만들었고, Weka는 뉴질랜드에 있는 새(bird) 이름이라고 합니다. 이 툴은 Java기반으로 만들어졌으며 머신러닝을 활용한 데이터 분석, 데이터 마이닝, 의사 결정 지원을 위한 툴입니다. 보통 머신러닝 하면 코딩을 할 줄 알아야 가능하다고 생각하여 공부해볼 엄두를 못내는 경우가 많은데, 그런 분들을 위한 툴이라고 생각하면 됩니다. 오픈 소스이기도 해서 별도로 드는 비용 없이 무료로 사용이 가능합니다. 실제로 사용해보니 직관적으로 메뉴 구성이 잘 되어있고, 각종 그래프를 볼 수 있는 등 다양한 기능을 제공하고 있어서 머신러닝이 무엇인지 직접 사용하고 느껴보기에 너무나도 좋은 툴입니다.
WEKA 사용방법
WEKA 다운로드 방법
Weka 다운로드는 https://www.cs.waikato.ac.nz/ml/weka/ 링크로 가서 Download라고 되어있는 부분을 클릭합니다. Stable version 이라고 되어있는 부분 아래에 있는 것 중 본인의 운영체제에 맞는 것을 선택하여 다운로드하면 됩니다. 다운로드후 설치가 완료되면 아래와 같은 모습의 Weka가 자동실행됩니다.
데이터 로드
Weka에서는 엑셀이나 csv파일도 열 수 있지만 주로 .arff 파일을 사용합니다. 설치하고 나면 설치한 폴더 내 data라는 하위 폴더에 샘플로 사용할 수 있는 데이터들이 여러개 들어있습니다. 아래는 이 중 breast-cancer.arff 파일을 오픈해본 예시입니다. 각 데이터가 어떤 항목으로 구성되어있는지, 해당 항목의 데이터 구성 비중은 어떻게 되는지 Preprocess 탭에서 볼 수 있습니다. 필요가 없는 항목이 있다면 체크하여 Remove 버튼을 눌러 삭제할 수 있습니다.
머신러닝 알고리즘 적용해보기
상단의 Classify탭으로 넘어가면 Classifier - Choose를 눌러 적용할 머신러닝 모델을 선택할 수 있습니다. Naive Bayes, Logistic Regression, Random Forest, Decision Tree를 포함 수십가지의 머신러닝 모델을 적용해볼 수 있습니다. Decision Tree는 J48모델을 적용하면 됩니다. 모델을 선택하고 Test Options에서 테스트 셋을 적용할 방법을 선택한 후 'Start' 버튼을 누르면 머신러닝 모델이 데이터를 학습하고 수초 안에 결과를 보여줍니다. Correctly Classified Instances가 이 모델의 Accuracy이고 Precision, Recall, F1-Score도 함께 볼 수 있습니다. 또 Confusion Matrix도 출력해 줍니다. (Classification model을 평가하는 방법, 각 숫자가 어떤걸 의미하는지 궁금하시다면 이전 포스팅을 참고하세요.)
Weka Visualization 기능
또한 좌측 모델 리스트에서 마우스 우클릭 해보면 다양한 세부기능을 제공하는 것을 볼 수 있습니다. Tree 모델의 경우 Visualize Tree를 선택하면 Tree Visualization도 할 수 있고, 또 다양한 비즈니스 모델에 적용하기 위해 Cost/Benefit analysis도 할 수 있습니다.
이 포스팅에서는 코딩 없이 머신러닝을 할 수 있게 도와주는 Weka라는 툴에 대해 소개하고 설치하는 방법과 데이터 로드하는 방법, 머신러닝 적용하는 방법, Visualization하는 방법에 대해 알아보았습니다. 다음에는 이 Weka를 가지고 비즈니스 상황에 어떻게 적용하는지, Lift Chart와 Cost/Benefit Analysis를 통해 의사결정을 어떻게 도울 수 있는지에 대해 다뤄볼 예정입니다. (참고 포스팅: 챗GPT로 코딩하기)
'머신러닝' 카테고리의 다른 글
머신러닝 서포트벡터머신 모델(Support Vector Machine) (0) | 2023.02.19 |
---|---|
[파이썬 머신러닝] 사이킷런(Scikit-learn) 소개 (0) | 2023.02.18 |
Logistic Regression 이해하기 : Sigmoid 함수, ROC 커브, Threshold 찾기 (0) | 2023.02.13 |
머신러닝 Accuracy, Precision, Recall, F1-Score, Confusion Matrix 이해하기 (0) | 2023.02.13 |
머신러닝 Linear Regression 과 Gradient Descent 알고리즘 이해하기 (0) | 2023.02.12 |
댓글