본문 바로가기

데이터와 함께 탱고를

(38)
회귀 모델에 대한 성능 평가 지표들 MSE (Mean Squared Error) 가장 일반적이고 직관적인 에러 지표. 에러를 제곱하여 평균을 계산하니, 값은 낮을수록 좋다. 장점 지표 자체가 직관적이고 단순하다. 단점 스케일에 의존적이다. 예를 들어, 삼성전자의 주가가 1000000원이고 네이버가 70000원일 때, 두 주가를 예측하는 각각 모델의 MSE 가 똑같이 5000이 나왔을 경우, 분명 동일한 에러율이 아님에도, 동일하게 보여짐. 에러를 제곱하기 때문에, 1미만의 에러는 더 작아지고, 그 이상의 에러는 더 커진다. 즉 값의 왜곡이 있음. RMSE (Root Mean Squared Error) MSE 에 Root 를 씌운 에러 지표. 마찬가지로 값은 낮을수록 좋다. 장단점은 MSE 를 거의 그대로 따른다. 다만, 여기서는 제곱된 에..
분류 모델에 대한 성능 평가 지표들 Precision & Recall Precision 은 모델의 예측 값 중, 실제 값과 같은 데이터의 비율을 말하고, Recall 은 실제 값 중, 모델의 예측 값과 같은 데이터의 비율을 말한다. 다시 정리하면, 예측해야할 값의 클래스가 A, B, C 가 있다고 할 때, Precision = (예측 데이터 중, 실제 클래스 A 인 데이터의 수) / (클래스 A 로 예측된 값들의 데이터 수) Recall = (실제 데이터 중, 클래스 A 로 예측된 값들의 데이터 수) / (실제 클래스 A 인 데이터의 수) 일반적으로 각 클래스 A, B, C 에 대한 각각의 성능 지표를 구한 뒤, 평균을 내어 하나의 지표로 통합하여 표현한다. 평균 외에 다른 방법도 있긴 하다. 이 두 값 모두 0~1 사이의 값을 가지며 1..
Word2Vec 과 Doc2Vec 1. W2V (Word2Vec) 개념 2013년 구글 연구팀이 발표한 단어 임베딩 모델이다. 주변에 있는 단어들끼리 코사인 유사도가 높도록 임베딩한다. 방법 기본적으로, 주위에 있는 단어들을 예측하는 과정에서 각 단어 벡터가 학습된다. 예측하는 방법에는 CBOW 와 Skip-gram 두 방식이 있다. CBOW 주위에 있는 단어들을 가지고 중간에 위치하는 하나의 단어를 예측한다. Skip-gram 중간에 위치하는 하나의 단어를 가지고 주위에 있는 단어를 예측한다. 일반적으로 Skip-gram 이 학습 데이터가 더 많아서 CBOW 보다 임베딩 품질이 더 우수하다. Skip-gram 에서 학습 데이터를 구축하는 방법은 다음과 같다. 형태소 분석이 끝난 문장 코퍼스(단어 단위로 띄어쓰기가 되어있는 글 모음)가 ..
코사인 vs 유클리디안 유사도, 케이스로 이해하기 벡터 간 유사도 측정에는 여러가지 방법이 있지만, 여기서는 코사인 유사도와 유클리디안 유사도만 다룬다. 기본 개념은 구글링 치면 훌륭한 글들이 많으니, 거기서 참고하면 된다. 여기서는 직접 두 벡터를 가지고 요리조리 굴려보며, '직관적으로' 어떻게 다른지 느껴보고자 한다. 먼저 두 벡터가 완전히 동일한 경우를 보자. a = np.array([[1, 0, 0]]) b = np.array([[1, 0, 0]]) print(cosine_similarity(a, b)) print(euclidean_similarity(a, b)) # output [[1.]] [[1.]] 두 유사도 값 모두 1이 나온다. 그 값만 조금 다른 경우를 보자. a = np.array([[1, 0, 0]]) b = np.array([[2..
[지도 데이터 시각화] Part 6. pydeck 살펴보기 deck.gl 은 Uber 에서 만든 자바스크립트 공간 데이터 시각화 라이브러리입니다. pydeck 은 이 라이브러리를 파이썬에서도 쓸 수 있도록 만든 패키지입니다. 이 또한 Uber 팀에서 공식적으로 만들었습니다. 특징으로는 대용량 데이터도 거뜬하게 렌더링할 수 있으며, 렌더링이 좀 버거울 수도 있는 일부 레이어는 GPU 연산을 제공합니다. (즉 대용량 처리 및 렌더링에 매우 용이하다는 말입니다.) 이전에 말씀드렸다싶이, 지금까지 소개한 2개의 파이썬 패키지(folium, mapboxgl)에 비해 상대적으로 매우 최근 라이브러리고, 기술적으로도 훨씬 진보한 라이브러리라, 꼭 알고가셨으면 좋겠습니다. 다만, 이전보다 좀 더 섬세하게 다룰 수 있는 부분이 많아, 조금 더 어려울 수는 있습니다. 아직 geo..
[지도 데이터 시각화] Part 5. Mapboxgl 살펴보기 Mapbox 는 WebGL 기술을 이용해, 브라우저에 지도 데이터를 렌더링해주는 해주는 자바스크립트 라이브러리입니다. (물론, 모바일용, Unity 용으로도 있습니다.) Mapbox 의 주 기능은 무엇보다 '이쁘게' 그려준다는 겁니다. API 기능 설계가 대부분 이 '스타일' 에 아주 잘 맞춰져있습니다. 또, 어떤 라이브러리보다, API Reference 가 직관적이고 쉽습니다. 공식 Documentattion 을 보시면, 깔끔하게 API 가 정리되어있는 것을 보실 수 있고, 누구나 쉽게 사용할 수 있도록 Examples 도 훌륭하게 정리되어 있습니다. Mapbox GL js API Refernce https://docs.mapbox.com/mapbox-gl-js/api/ M..
[지도 데이터 시각화] Part 4. Folium 살펴보기 첫 번째로 살펴볼 시각화 패키지는 Folium 입니다. leaflet.js 기반으로 지도를 그려주고, 모바일에서도 쓸 수 있을만큼 가볍습니다. 나온지도 다른 라이브러리들에 비해 상대적으로 오래된 패키지입닌다만, 그만큼 안정적입니다. 한편, 분석 프레임워크로 가장 많이쓰는 pandas 와 쉽게 연동되어 간편하게 시각화가 가능합니다. 파이썬에서 지도 시각화 하면 가장 유명한 패키지일지도 모르겠습니다. 자 그럼 시작해보겠습니다. 1. 설치 먼저 pip install 로 folium 을 설치하고 임포트해줍니다. pip install foliumimport folium folium.__version__ '0.9.0'2. 샘플 하나 해보기 https://python-visualization.githu..
[지도 데이터 시각화] Part 3. Mapbox로 지도 데이터 시각화하기 사실, 파이썬으로 지도 데이터를 시각화하는 여러 방법에 대해서 소개하고자, 이 시리즈를 쓰게 되었지만 그 전에 앞서, 굳이 꼭 파이썬을 써야할까라는 생각이 들 수 있습니다. 파이썬 아니여도 시각화할 방법은 많으니까요. 특히 코드에 익숙치 않고, 보다 직관적인 UI 를 원하시는 분들을 위해 파이썬에 앞서 이 포스팅을 먼저 남깁니다. 이미 Mapbox Studio 와 Carto 라는 훌륭한 웹 기반 플랫폼이 있습니다. 여기서는 Mapbox Studio 에 대해서 잠깐 소개하겠습니다. 지도 데이터 시각화를 하다보면, Mapbox 라는 이름 참 많이 봅니다. 그만큼 강력하고 훌륭한 소프트웨어를 잘 만들어놓은 회사입니다. 최근 엄청난 상승세이기도 합니다. 각설하고, Mapbox 에서 Mapbox Studio 를 ..