티스토리 뷰
약 4개월 정도 공동연구를 진행했었던 토픽이 잘 마무리 되었다. 공학 문제를 해결하기 위하여 인공지능을 적용했었는데, 결과가 잘 나왔고 논문 작성도 마무리가 되어서 곧 투고 예정이다.
Machine-learning을 활용한 surrogate modeling이 주제이고, 내가 가지고 있는 도메인 지식과 현상학적인 발견을 머신러닝을 통해서 잘 구현했고, 이를 통해 새롭게 결과를 도출하였었다.
결과를 정리하는 과정하고, 파이썬 코드를 복귀하면서 이를 기록해두려고 한다. 파이썬을 다룬지 아직 반년도 되지 않아, 굉장히 기초적인 것 밖에 모른다.
내가 사용하였던 패키지 위주 및 유용했던 명령어를 정리해본다.
[1] 패키지 불러오기 & 엑셀 불러오기
[1.1] import pandas as pd
- pandas: Python Data Analysis Library 이다.
- https://pandas.pydata.org/docs/pandas.pdf
[1.2] raw_df = pd.read_csv("엑셀파일이름.csv", encoding='cp949')
- encoding = 'cp949'는 인코딩 방식 중 하나이다. 참고: https://ebbnflow.tistory.com/285
- 데이터를 변환할 때 문자가 깨질 때 처리할 수 있다.
- Tip: 모든 파일이름과 파일 경로를 영어로하고 띄어쓰기 대신에 언더바를 활용하는 것을 추천한다.
[1.3] import xxx import *
- *표시는 모든 것을 가져오라는 뜻이다.
- https://docs.python.org/2/tutorial/modules.html
[2] Pycaret 패키지
- 머신러닝 패키지이다. 굉장히 쉽게 쓸 수 있도록 구성되어있다.
- https://www.youtube.com/channel/UCxA1YTYJ9BEeo50lxyI_B3g/videos
[2.1] 기본적인 명령어와 관련된 메뉴얼
- https://pycaret.readthedocs.io/en/latest/api/classification.html
[2.2] Setup
- 한 마디로; 파이캐럿을 통해서 모델을 학습시키는 명령어라고 보면 된다.
- Setup안에 들어가있는 여러가지 function들은 여기에 잘 정리 되어있음 (https://pycaret.org/setup/)
- Session ID_123: A random number is created and used for later reproducibility. If you don’t initialize the variable the function automatically assigns 123 as the session id. (여담: 세션에 관해서 123이 무슨 의미인지 한참 찾아보았는데, 큰 의미 없다는 것을 알았다.)
[2.3] Compare
- Setup을 돌리고 나면; 머신러닝 기법을 모두 적용해서 결과를 도출해낸다.
- compare 명령어를 활용해서 모델별 성능을 확인할 수 있다.
- https://pycaret.org/compare-models/
- 분류문제의 경우: accuracy, AUC, Recall, Precision, F1, Kappa, MCC value가 제공된다.
- 회귀문제의 경우: MAE, MSE, RSME, R2, RMSEL, MAPE value가 제공된다.
- 매뉴얼에 따르면 성능이 좋은 순서대로 나열하는 기준으로써 default 옵션은 accuracy (분류문제), R2 (회귀문제)라고 한다.
- 예측 성능이 좋은 모델을 몇개 고를 것인지, 어떤 지표로써 랭킹을 매길 것인지 고를 수 있다.
[2.4] Create Model
- 모델 성능을 학인 한 뒤, 내가 만들고 싶은 모델을 선택해서 만들면 된다.
- https://pycaret.org/create-model/
- 큰 카테고리로써 네 가지: Regression / Clustering / Anomaly Detection / Natual Language Processing 안에서 이용가능한 모델의 패키지를 고를 수 있다.
- 약어에 대한 명령어는 위 링크 참조
[2.5] Tune
- 모델을 하이퍼파라미터로 자동으로 튜닝시켜준다.
- 하이퍼파라미터란? 기계를 학습시켜주는 데에 필요한 파라미터를 의미한다.
- 하이퍼파라미터의 예시: 학습률, 손실함수, 미니배치 크기, 에포크 수 가중치 초기화, 히든 레이어 수, k-NN의 k 값 등
- 즉, 사용자가 직접 세팅해야 하는 값들이 전부 다 하이퍼 파라미터라고 보면되고, 하이퍼파라미터는 문제마다 다르기 때문에 휴리스틱한 방법 (= 사용자의 감)에 의해서 많이 결정된다.
- 참고) 파라미터 vs 하이퍼파라미터 => 파라미터는 기계를 학습시키는데 필요한 변수이다. 즉, 데이터의 특성과 본질적으로 연결되어있는 것들이 파라미터이다. 사용자가 조정할 수 있는 값이 아니다.
- Mchine learning mastery에서 기술하고 있는 Parameter와 Hyper parameter에 대한 정의 및 특성을 인용했다. (참고 블로그: https://bkshin.tistory.com/entry/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-13-%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0Parameter%EC%99%80-%ED%95%98%EC%9D%B4%ED%8D%BC-%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0Hyper-parameter)
A model parameter is a configuration variable that is internal to the model and whose value can be estimated from data.
- They are required by the model when making predictions.
- They values define the skill of the model on your problem.
- They are estimated or learned from data.
- They are often not set manually by the practitioner.
- They are often saved as part of the learned model.
A model hyperparameter is a configuration that is external to the model and whose value cannot be estimated from data.
- They are often used in processes to help estimate model parameters.
- They are often specified by the practitioner.
- They can often be set using heuristics.
- They are often tuned for a given predictive modeling problem.
- Pycaret은 이것을 자동으로 튜닝시켜 주는 패키지라고 보면된다.
- https://pycaret.org/tune-model/
- 미세 조정 과정이기 때문에, 당연히 수행하게 되면 정합도가 개선될 것이다.
2탄에서 계속.
'AI STUDY > Python' 카테고리의 다른 글
[Python] 22.08.20 딥러닝 실습 (1탄: AutoKeras) (0) | 2022.08.21 |
---|---|
[Python] 22.08.15 딥러닝을 위한 텐서플로우/GPU 세팅 (CUDA, cuDNN) (0) | 2022.08.15 |
[Python] 22.06.05 최적화 패키지 실습 (1탄) (2) | 2022.06.05 |
[Python] 21.12.11 Pycaret 패키지 실습 (2탄) (0) | 2021.12.11 |
[Python] 21.05.19 (1) 실습으로 시작해보기 (0) | 2021.05.19 |
- Total
- Today
- Yesterday
- 라틴어수업
- 미국 박사 후 연구원
- 행잉플랜트
- 독후감
- LCA 분석
- 포닥 일기
- 포닥 2년차
- 공학박사 일기장
- 포닥 이후 진로
- 주간리포트
- 박사 일기
- 공학 박사 일기장
- 틸란드시아
- 박사일기
- 해외포닥
- 식물일기
- 박사과정
- 공학박사
- 한동일
- 미국 포닥
- 대학원생
- 해외 포닥
- 논문 일기
- 연구 일기
- 국내 포닥
- Jinsustory
- 박사 후 연구원
- 포닥 임용
- 공학 박사
- 라틴어 수업
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |