본문 바로가기

SW11

Skew(왜도) 와 Kurtosis(첨도) - 데이터 과학에서 알아야 할 두가지 중요한 통계 용어 오늘은 Skew와 Kurtosis, 즉 왜도와 첨도에 대해서 알아보자. Skewness / 왜도 symmetrical bell curve 혹은 normal distribution에서 왜곡 정도를 말한다. 데이터 분포의 대칭성이 얼마나 결핍되었는지를 측정한다. 완전히 대칭인 분포는 skewness가 0이다. 두 가지 종류의 Skewness가 있다. Positive와 Negative Positive Skewness는 오른쪽 꼬리가 왼쪽보다 더 길 때를 의미한다. 평균(Mean)과 중위수(Median)가 Mode보다 크다. Negative Skewness 왼쪽 꼬리가 오른쪽보다 더 길 때를 의미한다. 평균(Mean)과 중위수(Median)가 Mode보다 작다. 그래서, 언제 Skewness(왜도)가 과도하게 .. 2020. 8. 12.
데이터 과학자가 꼭 알아야 할 5분 통계학 왜도와 첨도의 개념을 정리하려고 했는데, 그전에 좋은 글을 한 가지 발견해서 정리해놓고자 한다. “Facts are stubborn things, but statistics are pliable.”― Mark Twain 데이터 과학자들의 목표는 표본에 대한 결론을 도출하는 것이 아니라 제공된 샘플에서 모집단에 대한 결론을 도출하는 것이다. 따라서 데이터 과학자들은 표본에 대한 통계를 사용하여 모집단의 값에 대해 유추해야 한다. 모집단의 이러한 값을 모수라고 한다. 모수는 모집단 평균과 중위수와 같이 전체 모집단의 알 수 없는 특성이다. 표본 통계량은 표본으로 추출되는 모집단의 일부 특성을 설명한다. 표본 평균(mean)과 중위수(median)는 고정값이다. Sampling Error / 표본 오차 예를 .. 2020. 8. 11.
gdb - 간단한 명령어/사용법/단축어 정리(cheat sheet) GDB를 이용해 간간히 디버깅 하긴 했지만, 자주 사용하지 않아서 익숙하지 않았다. 앞으로 사용할 때마다 검색시간을 줄이기 위해 내가 사용하는/했던 gdb 명령어를 정리해놓기로 했다. 명령어를 정리하다가 마스코트를 찾아보았는데, gdb 마스코트는 위 그림의 금붕어이고, 이유를 찾아보니 벌레(버그)를 잡아먹고 물을 쏘아 벌레를 죽인다나 뭐라나.. 아무튼 그렇다고 한다. 급한 분들을 위한 cheat sheet 사전 조건 컴파일 시 -g 옵션을 주어야 함. GDB 실행 디버깅하기 위해 가장 먼저 해야 할 것은 해당 프로세스를 대상으로 gdb를 실행해야 한다. 여기서부터 설명되는 명령어는 대부분 단축어가 있다. 단축이 되는 글자를 파란색으로 표시하겠다. 중단점 설정/확인/해제 break : 중단점을 설정한다. .. 2020. 7. 30.
Docker (4) - 3줄로 간단히 머신러닝/딥러닝 환경 구축하기(docker kaggle image 설치/활용하기) 이번 글은 내가 도커를 학습한 이유이다. 환경이 바뀔 때마다 매번 ML/DL 환경을 구축하는 게 귀찮았고, 타 개발자들이랑 서버를 섞어 쓰다 보면 내 의지가 아니더라도 환경이 꼬이는 경우가 있다. 그런 상황들이 싫어서 docker를 활용하고자 했고, 예상보다 훨씬 간편하게 환경 구축을 할 수 있어서 놀랐다. 이번 글은 내가 진행한 3줄짜리 환경 구축과 간단한 활용까지 진행해 볼 예정이다. 개발환경 Docker가 설치된 리눅스 환경(설치가이드) 왜 Kaggle 이미지를 사용하는가? Kaggle-kernel 전용 대회에서 머신러닝을 진행하고 싶다면 단순히 이미지를 rebuild 함으로써 최신 상태로 유지할 수 있다. GPU 지원이 빵빵하다. XGBoost 등 유명 Boosting 계열의 패키지를 지원한다. .. 2020. 7. 20.
Docker (3) - 기본 명령어 Cheat sheet(설치/삭제/실행 등) 이제 설치를 완료했으니 기본 명령어를 익혀보자. 명령어는 이미지에 관한 명령어, 컨테이너에 관한 명령어 두 가지로 나누어 설명할 예정이다. 이미지와 컨테이너의 차이는 이미지가 실행되면 컨테이너가 된다고 보면 된다(정확한 건 아니지만 프로그램과 프로세스의 차이 정도로 이해하면 된다.) 자세한 내용은 아래 글을 참고하자. [DevOps/Docker] - Docker (1) - Docker란 무엇인가? 이미지 관련 명령어 이미지 목록 확인 sudo docker images 이미지 검색 처음에 굳이 검색할 필요가 있나?라고 생각을 했는데, 설치된 이미지가 아니라 docker hub에 공개된 이미지들을 검색하는 것이다. sudo docker search 이미지 받기 sudo docker pull 이미지 삭제 su.. 2020. 7. 20.
Docker (2) - Ubuntu에 Docker 설치하기 도커에 대한 대략적인 이해가 되었으니 이제 사용해보자. 이번 글에서는 사용을 위한 첫 시작. 설치를 해볼 예정이다. 나는 AWS EC2 AMI 중 하나인 딥러닝 ubuntu위에 설치했다. 당장에는 GPU를 사용할 일은 없지만 도커를 설치하고 kaggle gpu 이미지를 설치해서 간단한 머신러닝이 돌아가는지 확인해볼 예정이다. Ubuntu 요구 사항 확인 도커 엔진을 사용하기 위해선 아래 하나의 우분투 중 64bit 버전이 필요하다. Ubuntu Focal 20.04 (LTS) Ubuntu Eoan 19.10 Ubuntu Bionic 18.04 (LTS) Ubuntu Xenial 16.04 (LTS) 또한, x86_64(혹은 amd64), armhf, arm64 아키텍처에서 동작한다. 구버전 도커 지우기 .. 2020. 7. 20.
Docker (1) - 입문자를 위한 Docker란 무엇인가? 현업에서 개발하다 보면 동일 서버를 사용하는 개발자들 간에 버전 이슈가 생기기도 하고, 새로운 툴이나 기술들을 테스트할 때 관련 패키지들을 설치하느라 애를 먹기도 한다. 그럴 때마다 새로운 버전을 설치했다가 다른 테스트 후 기존 버전으로 돌아갈 수도 없고, 새로운 서버를 생성한다면 그 서버로 데이터를 이동하는데 비용이 들뿐 들어 새로운 서버 비용은 어떻게 감당하겠는가. 하여 이런 통합적인 솔루션을 제공하기 위해서 나온 솔루션이 docker이다. 이번 글에는 docker에 대한 간략한 설명을 하고자 한다. 사실 나도 도커가 있다는 것만 알았지 사용해본 적이 없다. docker관련 글을 쓰면서 docker를 쓰는 습관을 길러보자. Docker란 무엇인가? 도커(Docker)는 컨테이너를 이용하여 어플리케이션.. 2020. 7. 20.
XGBoost (4) - 머신러닝으로 부동산 가격 예측 실습하기 / Tutorial 지루한 이론과 설치가 끝나고 드디어 실습이다. 이번 글에서는 sklearn에서 제공하는 보스턴 주택 가격 데이터를 이용해 xgboost 모델을 학습시키고 예측하기까지 해 볼 예정이다. 개발 환경 설치가 완료된 이상 대부분 개발환경의 제약은 받지 않으나 내가 개발한 환경은 다음과 같다. AWS Linux python 3.6.10 준비하기 이전 글에서 설치한 xgboost용 python을 활성화해준다. source /bin/activate sklearn, pandas, matplotlib, graphviz를 설치하지 않은 경우 설치해준다. pip install sklearn pandas matplotlib graphviz 앞에 sudo를 붙이거나 가상 환경을 활성화시키지 않은 상태로 설치하는 실수는 하지 말.. 2020. 7. 14.
XGBoost (3) - Python 가상 환경에 설치하기 저번 글에서는 파라미터와 개념 등 이론적인 면에 대해서 글을 썼다면 이번 글부터는 실습 위주의 포스팅이다. 나는 sw는 실행해보면서 이해하는 부분이 크기 때문에, 첫 이론 학습은 간략히, 실습은 세세하게, 이후 다시 이론을 학습하는 편을 선호한다. 이번 글은 실습의 시작인 설치 편이다. 각 환경에 따라 모두 설치 과정을 보여주고 싶었으나 너무 귀찮기에, 내 환경에서만 진행한다. 앞으로는 docker를 배워서 사용해볼까 생각 중이다. 20200721 업데이트 잠깐. docker 환경에 익숙하거나 사용해볼 의향이 있다면 아래 글을 참고해서 환경 구축을 하는 것을 추천한다. 사용해보니 너무 간단한다. 3줄로 간단히 머신러닝/딥러닝 환경 구축하기(docker kaggle image 설치/활용하기) 사전 필요 지.. 2020. 7. 13.
XGBoost (2) - Parameter 이해와 현업자의 설정 방법 이전의 글에서 언급한 것과 같이 XGBoost의 장점 중에는 오버핏에 강하고 다양한 파라미터 조정으로 최적화된 모델을 만들 수 있다고 했다. 이번 글에서는 이런 장점을 가능하게 해주는 XGBoost의 파라미터, 그중에서도 Tree Booster를 사용하기 위한 파라미터를 설명하고자 한다. (가장 많이 쓰이기도 하고, 다른 건 잘 안 써서 잘 모르기도 함) Tree Booster를 사용하기 위해서는 세 가지 유형의 파라미터를 설정해야 한다. General parameter : 일반적으로 트리 또는 선형 모델에서 부스팅을 수행하는 데 사용하는 부스터와 관련된 파라미터이다. Booster parameter : 선택한 부스터의 파라미터에 따라 다름. 이글에서는 Tree Booster parameter를 설명할 .. 2020. 7. 9.
XGBoost (1) - 입문용 예제로 개념 쉽게 이해하기 요즘 현업에서 자주 사용하는 모델 중 하나가 XGBoost이다. 개인적으로 내 업무는 Data Scientist보다 Data Engineer에 가까워서 모델에 관해 심도 깊은 이해는 필요 없지만, 어느 정도의 이해는 필요하다고 생각된다. 그래서 겉핥는 정도의 이론 부분을 포함하여 사용법 예제, 시행착오 등을 순차적으로 포스팅할 예정이다. 사전 필요 지식 XGBoost 학습을 위해서는 다음에 관한 지식이 필요하다. 추후 기회가 되면 포스팅 할 예정. Gradient Boost Regression Regularization XGBoost란? [XGBoost: A Scalable Tree Boosting System] 논문에서 소개된 "Extreme Gradient Boosting"을 의미하며, 여기서 "Gr.. 2020. 7. 8.