작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
5K
답변 3
1
1
안녕하세요. 좋은질문을 주셨네요.
1. 평소에 자연로그를 많이 사용하는 편이라 자연로그를 사용했는데 질문주신것 처럼 자연로그를 취하지 않고 np.log10으로 상용로그를 취해도 되겠다는 생각이 들어요. 다만 두 가지 방법에 대해 스케일이 달라지게 되니 전달하고자 하는 혹은 그래프 안에서 얻고자 하는 내용에 따라 다른 로그기법을 선택하면 될것 같아요.
로그와 관련된 건 아래 문서를 좀 더 참고해 보시면 좋을거 같아요.
[numpy.log — NumPy v1.19 Manual](https://numpy.org/doc/stable/reference/generated/numpy.log.html#numpy.log)
[numpy.log10 — NumPy v1.19 Manual](https://numpy.org/doc/stable/reference/generated/numpy.log10.html)
값의 스케일을 어떻게 줄이느냐에 따라 어떤 로그 방식을 취할지 결정을 하면 될것 같아요.
아래 링크는 "로그 그래프"라는 설명이 있는 위키피디아 로그 설명 링크에요. 이것도 참고해 보세요!
https://ko.wikipedia.org/wiki/%EB%A1%9C%EA%B7%B8
로그는 범위를 줄여준다는 점에서 그래프에도 사용한다. 보통 십만이나 백만 단위의 그래프를 알기 쉽게 보여주기 위해 로그 그래프를 사용한다. 보통 수직 축에 로그 단위를 넣으나, 수평 축에만 혹은 둘 다 넣는 경우도 있다. 로그 그래프는 1부터 1000까지 증가하는 모습과 1000부터 백만까지 증가하는 모습을 동일한 거리 내에서 나타낼 수 있다는 점이다. y축이 로그인 수직 평면에서, 지수함수 f(x)= abx는 일반 평면에서의 일차함수와 같이 직선 형태를 나타낸다.
2. 로그는 지수함수의 역함수이기 때문에 음수에는 사용할 수가 없습니다. 그래서 음수에 사용하게 되면 다음과 같이 결측치가 반환되게 됩니다.
하지만 음수 값에 스케일링을 적용하고 싶다면 가장 작은 값을 더해주는 방법이 있습니다.
np.log1p 도 로그가 1 이하의 값에서 -Inf (마이너스 무한대)로 수렴하는 것을 방지해 주게 됩니다.
https://numpy.org/doc/stable/reference/generated/numpy.log1p.html
그래서 가장 작은 마이너스 값이 -13 이라면 모든 데이터에 0 이상의 값이 나오도록 + 14 를 해주는 방법이 있을거 같습니다.
판다스의 Series 데이터에 + 값 을 해주시면 쉽게 더해볼 수 있습니다.
이 외에 오일러의 등식 등을 사용해 볼 수 있습니다. 오일러의 등식은 직접 찾아보시면 좋을 거 같습니다.
3. 그리고 그래프의 스케일을 줄이는 것 외에 보통 Scaling을 할 때 histogram 등의 분포를 그리고 그 분포가 한쪽으로 너무 치우쳐져 있을 때 정규분포를 이루도록 변환을 해줄 때도 log변환을 사용합니다. 이건 왜도, 첨도를 함께 알아보시면 좋을거 같아요.
감사합니다.
0