|
12년간 IT 시스템 구축과 운영을 담당하였고 5년간 정보화 전략, 예산, 조직을 담당하는 기획 업무를 거쳐 2년간 데이터 분석으로 실제 사회의 문제점을 찾아내고 개선하는 진단 업무를 수행하였다
https://www.youtube.com/playlist?list=PLizzKP3uIZ6vU16-xyg-_u0oxX5rDCfsg https://www.inflearn.com/course/%EC%9E%90%EB%B0%94-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-weka# https://github.com/javaramachinelearning
WEKA라는 종류의 새가 있으며 WEKA를 검색하면 조류와 함꼐 결과가 나오기도 한다
뉴질랜드 Waikato 대학교에서 개발하고 배포하는 무료 소프트웨어이다
JDK 11에서 원활하게 구동이 가능하다고 한다
다운로드는 weka-wiki 를 참조하여 각 플랫폼에 맞게 다운로드하여 설치 하면된다
강의내용 기준으로 초급, 중급, 고급으로 나뉠 수 있다
MOOC와 YouTube의 차이점은 MOOC은 교육과정이다 보니 강의 후 QUIZ가 포함되는데 강의에서 부족한 부분을 QUIZ에서 보충할 수 있다는 정도이다 FutureLearn MOOC은 페이스북 계정만 있으면 1회 무료수강이 가능하나 유료수강으로 전환하면 재수강 및 수료증 발급이 이루어진다
데이터마이닝개념, WEKA 소개 및 사용법, 데이터 불러오기, 데이터 필터링, 분류기 실행(학습), 분류기 평가, 시각화 사용법 등 기계학습을 위한 WEKA의 기본기능을 소개한다 주로 의사결정나무 분류기를 위주로 설명하고 회귀분석/SVM/앙상블 분석등, 이상값/누락값 필터링 등을 소개 한다
YouTube url: https://youtube.com/playlist?list=PLm4W7_iX_v4NqPUjceOGd-OKNVO4c_cPD
초급과정의 기능을 바탕으로 WEKA를 실무적용시 필요한 기능들을 소개한다 대용량 데이터 처리, 텍스트 데이터(자연어) 분류, 연관분석, 군집분석, 학습곡선 처리, 인공신경망 처리, 변수선택 최적화, 데이터마이닝을 위한 학습변수 최적화 등을 다룬다
YouTube url: https://www.youtube.com/playlist?list=PLm4W7_iX_v4OMSgc8xowC2h70s-unJKCp
기계학습의 꽃 시계열분석 방법, 실시간 데이터스트림 분석 (MOA), 이미징 분류, R 과 Python 을 연동한 weka 실습, Python 에서 weka 모듈 실습 등을 주제로 weka의 기계학습을 위한 확정성을 소개한다
YouTube url: https://www.youtube.com/playlist?list=PLm4W7_iX_v4Msh-7lDOpSFWHRYU_6H5K
머신러닝 자체는 어렵지 않게 구현할 수 있다 다만 머신러닝을 어디에 적용하고 어떻게 효과를 창출하는 고민이 없다 코딩이라는 과대포장된 진입장벽으로 진정 데이터를 활용하고자 하는 도메인 전문가들이 코딩없이 쉽게 먼신러닝에 접근할 수 있다 WEKA를 실무에 적용하기 전에 이론역량을 공고히 하고자 한다 새로운 것을 익숙키 위해 실무경험을 축적하는 것도 좋지만 남을 가르친다는 개념으로 접근하면 스스로 공부하면서 자연적으로 정리가 된다
- Experimenter: 학습 계획간에 실험 및 통계적 테스트를 수행하게 해주는 환경이다 - KnowledgeFlow: 기본적으로 Explorer와 같은 기능을 제공하나, drag-and-drop 형식의 인터페이스를 제공하며 Incremental Learning (데이터를 순차적으로 넣어 다단계로 학습하는 기법) 을 지원한다 - Workbench: 위의 다른 메뉴들의 기능을 모두 담았고 사용자가 perspective 형식으로 나눠서 볼 수 있다 - Simple CLI: 말 그대로 GUI가 아닌 커맨드라인 인터페이스로 weka 커맨드를 실행할 수 있는 환경이다
여기 https://weka.sourceforge.io/doc.dev/overview-summary.html
로 가면 문서를 볼 수 있다
책에서는 주로 WEKA 툴을 이용해서 머신러닝 알고리즘을 구현해보는 방향으로 진행된다
저자가 블로그에 포스팅하고 강의로 찍은 내용을 기본으로 책이 집필된 것이라 강의의 내용이 책에 나와있는 내용과 거의 비슷하다
결측값(pitfall)과 이상값(pratfall)처리
- OneR: 모든 목표변수는 단 한 개 속성으로 결정된다 - NaiveBayes: 모든 속성을 중시함 - J48: 대중적인 의사결정나무 But 과적합은 운명 - IBk: k 군집 거리 측정 알고리즘, 적정 군집수 선별이 목적이다
- Boundary Visualizer: 2개 속성의 의사 결정 경계를 시각화한다 - M5P: 선형회귀분석과 의사결정나무 분석을 동시에 학습한다 - 회귀 분류 1: 모든 숫자 속성을 선으로 분석한다(목표변수가 2가지의 경우) - 회귀 분류 2: 모든 숫자 속성을 선으로 분석한다(목표변수가 3가지 이상의 경우) - 로지스틱 회귀분석: 모 아니며 도의 구분을 알아낸다 - 서포트 벡터머신: SVM, 데이터 군집을 얼마나 떨어뜨릴 것인가? - 앙상블 학습: 과적합을 피하기 위해 여러 알고리즘 결과를 투표로 선별한다
Experimenter(원시적인 AI)와 Weka 빅데이터, ROC(성능 판별 추가 지표), 텍스트마이닝, 이산화, 비지도 학습 연관/군집 분석, 속성 선택과 결과 집중(개입), 인공신경망(딥러닝), 추가적인 성능 향상 기법에 대해 공부한다
별도의 API로도 구현해볼 수 있어서 매우유용한 것 같다 앞으로 개발하면서 필요시에 적절히 활용해볼 생각이다
JAVA 개발자다 보니 아무래도 JAVA 개발을 하다보면 JAVA로 된 라이브러리를 활용해 머신러닝을 구현해보고 싶을 때도 있는데 주로 머신러닝 알고리즘을 구현하기 위한 라이브러리는 대부분 파이썬 기반이다 보니 불가피하게 파이썬 언어로 구현해야 될 수 도 있는데 WEKA를 활용하면 적절히 JAVA 언어로 머신러닝 알고리즘을 구현해볼 수 있을 것 같다 WEKA로 머신러닝 알고리즘을 구현해보고 개발 시에 적절히 활용해보고 싶은 JAVA 개발자들에게 이 책을 적극 추천한다 |
|
재작년부터 과제 프로젝트로 빅데이터와 머신러닝 제안이 이어져서 당시에는 마지못해...라는 심정으로 맨땅에 헤딩하듯이 공부를 했던 기억이 있습니다. 때마침 빅데이터 기반 IoT 시스템 구축 프로젝트를 진행해야 했고, 빅데이터 시스템은 삼성 브라이틱스 기반이었습니다. 처음 접하긴 했지만 앞서 이론 공부를 했던게 도움이 많이 되긴 했습니다. Brightics studio 그러면서 왜 오픈 소스 진영에서는 GUI 기반 머신 러닝 툴이 없을까, 그리고 많은 머신러닝/딥러닝 프레임워크가 텐서플로우/케라스, 파이토치, 싸이킷런과 같은 파이썬 기반이어서 많은 IT 시스템이 자바를 기반으로 구성되어 있는데, 왜 자바 기반의 머신러닝 프레임워크가 없을까...라는 의문으로 weka라는 오픈 소스 머신러닝 툴을 알게 되었고, 관련 도서를 찾아보다가 “자바 머신 러닝 마스터 - 실무 중심의 자바 기반 머신 러닝 활용법” 도서 학습을 했습니다. 도서 내용은 머신 러닝 이론에 대해서 심도있는 다뤘기 때문에 내용의 깊이는 있었으나, 그 내용을 받아들이기에는 본인 자신의 지식 깊이가 얕아서 학습 진행이 더디고 결국 중단한 기억 또한 있습니다. weka를 자세히 배워보고 싶었으나 weka 보다는 머신러닝 이론에 도서 내용이 중점이 있다보니 맞지가 않았던 것이지요. 이번에 “이보다 더 쉬울 수 없는 자바 머신러닝 with Weka” 도서 리뷰를 하면서 이전의 실패를 재차 반복하지는 않을까 반신반의를 하면서 학습을 했습니다. 서문에서 제가 이전에 가졌던 물음에 대한 대답을 얻을 수 있었습니다. 물론 현실과 단점, 그리고 의구심도 여전히 있습니다.
Weka는 Explorer, Experimenter, KnowledgeFlow, Workbench, Simple CLI의 어플리케이션을 제공합니다. Weka Launcher Explorer가 기본 어플리케이션으로, KnowledgeFlow 를 통해서는 드래그 앤 드롭 방식으로 사용이 가능합니다. Brightics와 마찬가지로 KnowledgeFlow UI 메뉴를 통해서 데이터를 분석하는 flow를 만들면서 또한 Explorer를 통해서 java 코딩을 직접 구현할 수 있는 환경을 제공합니다. 물론 사용툴과 비교하여 문제점도 솔직하게 나타나 있습니다.
도서 전체적으로는 전반부와 후반부로 구성되어 있고 전반부에서는 데이터셋 및 분류 알고리즘 학습, 그리고 시각화를 다루고 있습니다. 도서 부제가 "코딩의 압박에서 벗어나는 새로운 머신러닝 예제 학습"인 만큼 KnowledgeFlow를 사용하게 되면 이는 분명히 맞는 말입니다. 그리고 학습기의 flow와 UI를 보게되면 상당히 직관적으로 구성할 수 있다는 것을 알 수 있습니다. 그런데 KnowledgeFlow를 사용하는 것이 손에 익숙하기 전까지는 툴 사용이 쉬워보이진 않습니다. 이미 Brightics studio 사용을 하면서 느꼈던 것인데, UI 메뉴가 너무 많다보니 찾는게 일이어서 계속 연습하는 것이 필요하더군요. 어떤 툴이든 처음이 힘든 법이지요. ^^ 메뉴 사용에 대한 flow가 기입되어 있어서 따라하면 되지만, 도서 편집적인 측면에서 컬러 사용이 제한적으로 되어 이 부분이 좀 아쉽더군요. 또한 소스코드 경우 폰트 사이즈와 함께 들여쓰기 간격 조절을 하여 페이지 우측에 번호나 추가 주석이 배치했다면 좀 더 독자 이해도를 높이는데 도움이 되었을거라 생각됩니다. 그리고 아래와 같이 “증분 분류 평가”라고 하면 입문자 레벨의 지식으로 어떤 도서는 증분 분류를 포함하는 경우가 있는데, 이를 접하지 않는 경우도 있을 테니 참고할 수 있는 사이트 링크를 두면 어떨까란 생각이 들었습니다.
후반부에서는 ROC(성능 판별 추가 지표)를 시작으로 텍스트 마이닝을 다룹니다. 그리고 비지도 학습 연관/군집분석이 이어집니다.
마지막으로 7장에서 WekaDeeplearning4j를 소개하고 있습니다. deeplearning4j API를 통해서2개 이상의 은닉층을 사용하는 딥러닝 학습이 가능합니다. MLP를 통한 Iris 붓꽃 데이터 분류가 실습 예제로 이어집니다. WekaDeeplearning4j를 사용한 딥러닝 예제를 찾아보니 저자분께서 운영하시는 기술 블로그 내용도 검색이 되어 참고하면 좋을거 같습니다. - https://m.blog.naver.com/bulleten/221715741302
도서는 weka 프레임워크 실사용에 대해서 상당히 자세한 내용을 포함하고 있습니다. 그렇다고 해서 머신러닝에 대한 이론이 부족하다는 생각이 들지는 않습니다. 분류, 회귀, 지도/비지도, 평가, 앙상블, 부스팅, … 등 머신 러닝 도서에서 다루고 있는 대부분의 내용을 weka를 통해서 실습까지 이어지는 충실한 내용으로 구성되어 있습니다. 저자분께서 weka에 대한 유투브와 인프런 동영상 강의, 기술 블로그를 운영하고 계시기 때문에 도서와 연계하여 보시기를 추천 드립니다.
|