본문 바로가기

728x90

분류 전체보기

(81)
[Pandas] categorical data type(범주형 데이터 타입)이란? (category datatype 사용 예제, pandas.Series.cat 사용법) pandas에서 사용하는 데이엍 타입은 아래와 같다. 이 중에서 Pandas에만 있고, python, numpy에는 없는 category 타입에 대해서 간단하게 알아보자. category 타입이란 text 값의 유한한 리스트를 표현할 때 사용하는 데이터 타입이다. 이렇게 말하면 잘 이해가 안갈 수 있는데 예를 살펴보면 간단하다. 사이즈 (X-Small, Small, Medium, Large, X-Large) 색깔 (빨강, 검정, 흰색) 스타일 (반팔, 긴팔) pandas에서는 category 데이터를 어떻게 표현할 수 있는걸까? category data type은 hybrid data type이다. 보기에는 string처럼 보이나 내부적으로는 integer의 배열로 표현이 되어있다. 이를 통해 사용자가 ..
차원의 저주(Curse of dimensionality)란? 우리가 데이터를 가지고 예측 모델을 만들 때 대체로 데이터의 차원이 하나일 때 보다 여러 차원일 때 더 정확한 모델을 만들 수 있습니다. 예를 들어 A라는 사용자에게 SNS 글을 추천해준다고 하였을 때 SNS 글을 표현하는 속성이 "태그"하나 일때 보다 태그, 사진, 글 내용, 팔로워 수 등등의 정보가 있을 때 더 정확한 추천이 가능하겠죠? 이게 일반적으로 우리가 모델을 만들 때의 생각입니다. 그러나 차원의 저주는 반대의 이야기 입니다. 데이터 학습을 위한 차원이 증가할 수록 성능이 저하가 되는 현상을 이야기합니다. 이는 차원이 증가할 수록 개별 차원 내에 학습할 데이터 수가 적어지는 현상 때문입니다. 즉, 차원이 커지면 데이터를 표현해야하는 공간이 커지고, 그 공간 내에 모든 경우를 다 채우려면 더 많..
Adversarial Training(적대적 학습) 이란? 적대적 학습이란? 머신 러닝은 사람이 못하는 것을 예측할 수도 있지만, 동시에 인위적인 조작에 취약하기도 합니다. 이러한 허점을 이용하여 모델이 잘못된 예측을 하도록 속이는 것을 적대적 공격이라고 합니다. 예를 들어 왼쪽, 오른쪽 모두 우리가 보기에는 판다 사진입니다. 하지만 사실 오른쪽 판다 사진은 왼쪽 판다 사진에 사람은 구별할 수 없는 미세한 노이즈 또는 변화를 준 것입니다. 모델은 이러한 미세한 조정만으로도 오른쪽 판다를 긴팔 원숭이라고 착각할 수 있습니다. 딥 러닝 알고리즘은 픽셀 값, 단어의 순서 등 데이터의 패턴을 사람과는 다르게 숫자 처리를 통해 찾아내기 때문에 이러한 문제가 생기는 것입니다. 특히 대부분의 모델들은 예측하는 과정이 "블랙 박스"이기 때문에 더 또 다른 예로는 자율주행 연구..
[Python 3.x] 바이트 스트림(byte-stream) 객체의 등장 Yelp Dataset을 csv로 변환하는 코드가 python 2.x로 짜여있어서 만나게 된 오류..! 파이썬 코드를 돌리다보면 2.x와 3.x 간의 버전 차이로 오류가 나는 부분이 상당히 자주 있다. 예전에는 단순히 구글링해서 코드만 돌아가게 바꾸고 넘어갔는데 어떤 차이 때문에 발생한건지 이해하면 더 좋을 것 같아서 정리해본다. 오늘 내가 만난 오류는 바로 아래와 같다. TypeError: a bytes-like object is required, not 'str' 이는 바로 3.x에서는 "바이트 스트림 문자열 상수(리터럴)"가 생겼기 때문이라고 한다. 많은 함수들이 기존 문자열 대신 이 바이트 스트림을 사용하고 있다고 한다. 그렇다면 바이트 스트림(Byte-stream)이란 무엇일까? 말 그대로 바이..
추천시스템을 위한 데이터셋 추천 시스템 연구용으로 사용하기 좋은 데이터셋 또는 추천 논문에서 주로 사용이 되는 데이터셋에 대해 소개하겠습니다. 자신의 목적에 맞는 추천 데이터셋을 찾아서 활용하면 좋을 것 같아 정리할겸 간략하게 설명해봅니다. 기초부터 시작해서 꾸준히 업데이트해가도록 하겠습니다. 저도 전부 사용해본 것이 아니기 때문에 잘못된 정보, 또는 다른 좋은 데이터셋이 있다면 댓글로 알려주세요! 1. MovieLens 추천 시스템 하면 가장 대표적으로 생각나는 데이터셋은 개인적으로 무비렌즈인 것 같습니다. 무비렌즈의 장점은 비교적 많은 예제 자료를 찾을 수 있다는 점, 그리고 다양한 사이즈의 데이터셋을 제공해준다는 점입니다. 데이터셋의 구성은 크게 1) 유저, 2) 아이템(영화), 3) rating(1~5)로 이루어져있습니다...
[PyTorch] torch.nn.Embedding 의 역할 * PyTorch 공식 문서를 참고했습니다. Embedding — PyTorch 1.10.0 documentation Shortcuts pytorch.org torch.nn.Embedding 모듈은 학습 데이터로부터 임베딩 벡터를 생성하는 역할을 합니다. 보통은 pretrain된 임베딩을 사용하는 경우도 많습니다! 임베딩을 만드는 원리는 아래 사이트에 자세한 설명이 되어 있으니 한 번 읽어보시면 좋을 것 같습니다. 07. 파이토치(PyTorch)의 nn.Embedding() 파이토치에서는 임베딩 벡터를 사용하는 방법이 크게 두 가지가 있습니다. 바로 임베딩 층(embedding layer)을 만들어 훈련 데이터로부터 처음부터 임베딩 벡터를 학습 ... wikidocs.net 간략하게 설명하자면 과정은 다..
[PyTorch] torch.clamp 함수 * Pytorch 공식 페이지 설명을 참고했습니다. torch.clamp — PyTorch 1.10.0 documentation Shortcuts pytorch.org Clamp 함수는 입력으로 들어오는 모든 값들을 [min, max]의 범위 안으로 조정해주는 역할을 합니다. 조정해주는 방법은 다음 식과 같습니다. input 값과 min 값 중 큰 값 = a a와 max 값 중 작은 값 = 최종 반환 값 즉, 입력 값이 min < x(input) < max이면 x가 그대로 나오지만 min 보다 작으면 min 값이, max 보다 크면 max 값이 나오는 구조입니다! 참고로 min 값과 max를 꼭 둘다 설정할 필요는 없습니다. min을 설정하지 않으면(min = None), lower bound가 존재하지..
PyG 란? PyG Documentation — pytorch_geometric 2.0.2 documentation PyG Documentation In addition, it consists of easy-to-use mini-batch loaders for operating on many small and single giant graphs, multi GPU-support, a large number of common benchmark datasets (based on simple interfaces to create your own), and helpful tr pytorch-geometric.readthedocs.io Pytorch는 딥러닝을 공부하는 분들이라면 다들 알고 있겠지만 PyG(pytorch_ge..

728x90