Hiplot 으로 하이퍼 파라미터 시각화하기

2020. 7. 9. 20:03분석 Python/Visualization

우리가 열심히 모델링을 하다 보면 하이퍼 파라미터가 쌓이게 되고, 하이퍼 파라미 터들끼리를 비교해서 최적의 하이퍼 파라미터를 찾으려고 한다.

 

그럴 때 문제점은 하이퍼 파라미터의 수가 많아질수록 육안으로는 파악하기가 어렵다.

그래서 메트릭 기준으로 정렬을 해서 특정한 파라미터를 찾으려는 노력을 하지만 여전히 직관적으로 보기에는 어려움이 있다.

 

그래서 이번에는 Facebook에서 만든 파라미터 시각화로 Parallel Plots으로 시각화해주는 Hiplot 패키지를 써보고자 한다.

 

저장된 파라미터는 아래 csv에 있으니 참고하길 바란다.

 

report = pd.read_csv("./save_parameter.csv")
report.head()

여기서는 mse라는 데이터를 최소화하는 파라미터를 찾고자 한다. 

import matplotlib.pyplot as plt
plt.plot(range(len(report)), report["mse"])
plt.title(np.min(report["mse"]))
plt.xlabel("trial")
plt.ylabel("mse")
plt.show()

이런식으로 아래로 갈수록 최적화되는 파라미터를 찾아주는 알고리즘을 썼는데, 변동이 오히려 더 심해지는 것 같다 ㄷ

pandas에서 row별로 한 뭉텅이로 사전으로 만들어주면 준비는 끝난다.

report_dict = report.to_dict('records')

import hiplot as hip
hip.Experiment.from_iterable(report_dict).display()

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

매우 좋다

특히 밑에 드래그를 하게 되면 알아서 그 부분에 대해서 굵은 선이 나오게 된다.

화면을 꽉채우고 싶으면 다음과 같이 하면 된다.

hip.Experiment.from_iterable(report_dict).display(force_full_width=True)

 

그리고 드래그를 하게 되면?

 

그리고 keep을 하게 되면??!!

keep 한 것에 대해서만 다시 정렬해서 보여준다!!!!

여기서 어떤 인사이트를 얻어야 할까?

일단 elu이면 좋아 보이고 hidden_size은 42 ~ 45가 적당해 보이고 두 번째는 21에서 24 그리고 learning rate은 0.001에서 0.002 사이가 적당해 보인다.

 

이런 식으로 점점 축소화시켜서 범위를 좁히는 데 사용하면 유용할 것 같다고 생각한다.

export를 누르면 누른 것에 대해서 저장도 해주니... 굳

 

 

save_parameter.csv
0.00MB

728x90