250x250
Recent Posts
Recent Comments
Archives
- Today
- Total
KimDove
안녕하세요, 딥러닝 엔지니어 김둘기 입니다.
비둘기 둥지
[인공지능 공부 / ML tool] 1. HiPlot에 대해 알아보자 본문
728x90
1. HiPlot이란
- 고차원 상의 공간에서 상관관계와 패턴을 찾아낼 수 있도록 해주는 대화형 시각화 툴
- 평행 좌표 플롯(Parallel Coordinate Plots)을 비롯한 시각화 방법들을 이용해 정보를 명확히 표현
- 셋업 과정 없이 주피터에서 빠르게 실행할 수 있음.
1-1. HiPlot의 장점
- 한 줄로 구현이 가능하다.
- 몇 번의 마우스 클릭만으로 데이터의 깊은 면까지 분석할 수 있다.
- 커다란 데이터 셋에 대한 내용도 빠르게 표현이 가능하다.
- Native HTML 함수로 렌더링이 가능하다.
- csv나 json 파일을 지원하고, 현존하는 페이스북 AI라이브러리와의 호환을 지원하는 등 확장성이 좋다.
1-2. HiPlot으로 sklearn의 Iris데이터 셋을 분석해보자
- HiPlot을 이용하면, 데이터와 관련된 다양한 분야에서 데이터 상에 존재하는 상관관계를 조사할 수 있다.
- scikit-learn에서 Iris 데이터를 불러와 data, target을 하나로 묶어 데이터 프레임으로 만든 후 HiPlot에 넣어보았다.
from sklearn.datasets import load_iris
import hiplot as hip
import pandas as pd
import numpy as np
iris = load_iris()
data, target = iris.data, np.expand_dims(iris.target, axis = 0).T
features = iris.feature_names + ['target']
data = np.concatenate((data, target), axis = 1)
df = pd.DataFrame(df, columns = features)
df['target'] = df['target'].apply(lambda x: iris.target_names[int(x)])
df.head()
## 출력 결과
sepal length (cm) | petal width (cm) | petal length (cm) | petal width (cm) | target | |
0 | 5.1 | 3.5 | 1.4 | 0.2 | setosa |
1 | 4.9 | 3.0 | 1.4 | 0.2 | setosa |
2 | 4.7 | 3.2 | 1.3 | 0.2 | setosa |
3 | 4.6 | 3.1 | 1.5 | 0.2 | setosa |
4 | 5.0 | 3.6 | 1.4 | 0.2 | setosa |
iris_hiplot = hip.Experiment.from_dataframe(df)
iris_hiplot.display()
## 출력 결과
- 그래프 아래에 표도 함께 존재하는데, 표를 통해서 원하는 데이터의 그래프를 확인할 수 있다.
- [사진 2]를 통해 알 수 있는 사실은 다음과 같다.
- setosa의 경우 Sepal의 너비는 넓지만, Petal의 너비가 좁고 Sepal과 Petal의 길이가 짧은 것을 볼 수 있다.
- virginica의 경우 Sepal의 너비는 좁지만 길이는 길고, Petal의 넓이가 넓고, 길이가 길다는 것을 볼 수 있다.
1-3. HiPlot으로 하이퍼파라미터를 탐색해보자
- HiPlot을 이용하면 하이퍼파라미터가 학습에 미치는 영향을 쉽게 평가할 수 있다.
- 데이터 셋은 Meta(구 Facebook)의 github에 있는 hiplot 레포지토리에서 가져왔다.
- 이번 실험에서는 위의 iris 실험과는 달리 DataFrame이 아니라, csv 파일을 바로 읽어와 사용하는 방식으로 해보았다.
DATASET_PATH = 'ml1.csv'
hip.Experiment.from_csv(DATASET_PATH).display()
- 위 두 그래프를 보았을때, 얻을 수 있는 정보는 다음과 같다.
- embedding size가 컸을때 보다 작았을 때 학습과 검증 과정에서 성능이 더 뛰어났음을 보인다.
- embedding size가 작을때 Dropout ratio는 학습에 크게 영향을 미치지 않는다.
- embedding size가 작을때 lr을 0.002 ~ 0.03사이로 조절했을 때 성능이 개선 되었다.
- 한 번의 실험을 통한 하이퍼 파리미터를 자동으로 탐색해주는 툴은 아니고,여러 번의 실험을 통해 얻어낸 데이터로
분석하는 툴이기 때문에 GridSearch나 RandomGridSearch와 함께 이용하면 좋을 것 같다.
99. 자료 출처
99-1. 도서
99-2.논문, 학술지
99-3. 웹사이트
- 아기여우의 자기계발로그 : 페이스북 HiPlot : 딥러닝 하이퍼파라메터 탐색을 돕는 오픈소스 고차원 시각화 툴 | [블로그 링크]
- towardsdatascience : Introduction to Best Parallel Plot Python Library: "HiPlot" | [블로그 링크]
99-4. 데이터셋 출처
- facebookresearch github : hiplot repository| [깃험링크]
99-5. 이미지 출처
전체코드
내용 추가 이력
부탁 말씀
개인적으로 공부하는 과정에서 오류가 있을 수 있으니, 오류가 있는 부분은 댓글로 정정 부탁드립니다.
728x90
Comments