머신러닝
-
machine learning
rdkit 설치하기
rdkit 공식 문서를 보면 pip 도 안되고 conda로 해라고 한다. 그런데 conda로도 안돼서 여러 삽질을 거치다 다음과 같은 해결법을 알게됐다. !pip install python-rdkit 위 명령어면 한 방에 해결된다. # General Imports import os import pandas as pd import numpy as np pd.options.display.max_columns=300 import warnings warnings.filterwarnings("ignore") from rdkit import Chem from rdkit.Chem import Draw, Descriptors from rdkit import DataStructs from rdkit.Chem import..
-
machine learning
[pandas] pandas dataframe 이용해서 그룹별로 train/val 나누기
가끔 dataframe 자체로 train_test_split을 해야 할 때가 있다. 그럴 땐 어떻게 해야하나... 특히 그룹별로 특정 샘플이 valset에 균등하게 포함되도록 하려면...? 간단한 방법 groupby후 sampling을 한다. validation을 0.2만큼 하고 싶으면 frac=0.2로 준다. 그렇게 나타난 valDataset의 index를 drop 해주면 된다. 이것보다 어려운 방법은 drop의 반대 방법으로 있는 부분만 iloc으로 남기는 것이다. 이상 끝
-
machine learning
dtreeviz IndexError, decision tree visualization
random forest 모델 혹은 decision tree 모델을 이용했을 경우 모델이 어떻게 작동하는지 설명을 요구할 때가 있다. RandomForestRegressor를 이용해서 회귀분석을 진행했다. 그런데 RandomForestRegressor같은 경우 여러 Decision tree의 앙상블 모델로 tree를 한 번에 시각화하기가 어렵다. 그래서 tree중 하나를 선택해서 시각화한다. 그러다 좋은 라이브러리를 발견했다. dtreeviz 이런식으로 쓰면되는 간단하고 편리한 라이브러리다! model = Pipeline([('scaler',MinMaxScaler()), ('DecisionTreeRegressor', DecisionTreeRegressor(criterion='mae', max_depth=..
-
machine learning
epoch, iter ?
epoch, iter (한 번의 epoch는 인공 신경망에서 전체 데이터 셋에 대해 forward pass/backward pass 과정을 거친 것을 말함. 즉, 전체 데이터 셋에 대해 한 번 학습을 완료한 상태) [출처] 머신 러닝 - epoch, batch size, iteration의 의미|작성자 예비개발자 메모리의 한계와 속도 저하 때문에 대부분의 경우에는 한 번의 epoch에서 모든 데이터를 한꺼번에 집어넣을 수는 없습니다. 그래서 데이터를 나누어서 주게 되는데 이때 몇 번 나누어서 주는가를 iteration, 각 iteration마다 주는 데이터 사이즈를 batch size라고 합니다. 전체 2000 개의 데이터가 있고, epochs = 20, batch_size = 500이라고 가정합시다. ..