올해에는 단연코 ChatGPT 열풍이라 할 수 있겠지만, 올해 비록 영상 조작 논란으로 말이 많지만 멀티모달의 가능성을 열어주고, 앞으로 무궁무진한 서비스가 열릴 것으로 예상되는 구글의 제미나이(Gemini) 서비스로 인해서 자연어처리(NLP)라는 항목을 벗어나 멀티모달의 영역으로 갈 것이라 예상이 된다. 블로그에서 유튜브로 넘어가듯, ChatGPT에서 영상처리로 가는 것은 필연적일 것이며 집에 있는 카메라등과 스피커 등을 통해서 앞으로 수많은 의사소통이 이루어지지 않을까 예상된다. 우선 OCR을 Tesseract를 사용하여 만든적(정확히는 사용한적)이 있긴 하지만, 블로그에 정리를 한적이 없는 것 같아서 이렇게 포스팅 하도록 한다. OCR(Optical Character Recognition)이란? O..
편집거리 개념 편집거리 알고리즘(Levenshtein Distance)는 두 개의 문자열 간의 편집거리를 측정하는 알고리즘 입니다. 편집 거리는 문자열을 다른 문자열로 변경하는데 필요한 최소한의 삽입, 삭제 및 대체 작업 수를 나타냅니다. 편집거리 알고리즘은 다양한 응용 분야에서 사용될 수 있는데 맞춤법 검사, 음성 인식, 텍스트 유사성 측정 등에서 사용됩니다. 알고리즘 설명 위 예시는 편집거리를 계산하는 것을 보여주는 예시로 비(rain)와 빛나다(shine)로 설명을 합니다. 우선 rain을 shine으로 변환하려면 r을 s로 바꾸고, a를 h로 바꾸고 e를 삽입합니다. 고로 이 편집거리는 3입니다. 기차(rain)와 빛나다(shine)에 대해서 작업을 하게 된다면, shine앞에 t를 붙이고, s를..
최근 회사 컴퓨터에 PyTorch를 사용해야 되는 상황이 생겨서, PyTorch 사이트에서 있는 가이드대로 최신 버전과 Cuda도 버전 업을 하여서 Torch 설치 시도를 하였으나, Conda로 설치를 하는 것이 실패하고 말았다. 위와 같이 Command를 입력하면, Solving에서 무한 멈춤 현상이 발생하였는데 이 문제를 해결하기 위해 아나콘다를 다시 깔아보고, Cuda도 다양한 11.6.x 버전들을 설치했지만, 아무래도 SSL 문제처럼 보였다. 결국 PIP로 trusted-host로 사이트를 신뢰한다고 표시 한 뒤, 설치를 마무리 하였으나 이번에는 Torch가 Cuda를 인식하지 못하는 문제가 발생하였다. import torch torch.cuda.is_available() 위와 같이 명령어를 날리..
구글 코랩 구글 코랩(Google colab)은 내 현재 사양이 딥러닝(Deep Learning) 혹은 머신러닝(Machine Learning)을 돌리기 적합하지 않거나, 다양한 기기를 사용해서 통일된 환경으로 작업을 하고 싶거나, 실제 서비스에 적용해보기전에 테스트로 돌리기 용이한 환경입니다. 구글은 코랩이라는 GPU가 탑재된 클라우드 환경을 사용자에게 무료로 제공해주고, 사용자는 코랩에서 다양한 실험을 하면서 구글은 실험 데이터를 얻고 우리는 무료로 빠르게 딥러닝을 테스트 해볼 수 있습니다. 다만 코랩이 고급 환경을 계속 제공해주는 것은 아닙니다. 예를 들어 모델링 학습 시간이 하루가 넘어가는 것이라면 사용을 할 수 없기 때문에 사실상 본섭에 실행을 하기 전 맛보기 정도에 불과하다는 것을 인지해야 합..
산점도(Scatter)는 공간 데이터에서 분포를 알아야 할 때 유용하게 사용될 수 있다. 대표적으로 지리적 데이터인 부동산 데이터로 전국에 있는 인구 분포나 지역별 집값 등을 알기에도 유용하다. 본 포스팅은 미국의 지리 데이터세트인 캘리포니아 주택 가격 Data Set을 사용하여 산점도를 구하는 시각화(Visualization) 기법을 알아보도록 한다. 데이터 준비 Housing 데이터 로드 import os import tarfile import urllib.request as urllib import pandas as pd data_url = "https://raw.githubusercontent.com/ageron/handson-ml2/master/datasets/housing/housing.tgz..
머신러닝 그중에 신경망은 딥러닝(Deep Learning) 시대로 넘어오고나서 빅데이터의 등장, GPU, 딥러닝 프레임워크(ex: tensorflow, torch 등), 옵티마이저 등등으로 인해 엄청난 발전을 이루게 되었다. 하지만, 양이 있으면 음도 있는 법 모든 시스템이 딥러닝에 적합한 것은 아니었다. 특히, 데이터가 풍부하지 못하거나 너무 많은 특징(Feature)를 가지고 있는 시스템의 경우 과적합(Overfitting) 이라는 문제가 발생하였는데 이 문제는 학습 데이터에 지나치게 학습되어 실제 운영 데이터에 제대로 된 결과를 보여주지 못하는 문제였다. 과적합을 해결하는 방법은 여러가지가 있으며, 한가지만 써서 문제가 해결되지 않는다. 예를 들어 데이터가 적은데 특징이 많을 경우 궁극적으로 과적합..
상관관계 이해 일단 피어슨 상관관계를 이해하기 위해서, 간단히 상관관계에 대해서 알아보도록 해보자. 대표적으로 상관관계를 이해할 땐 키와 몸무게의 데이터를 활용하곤 한다. 인간은 키가 커지면, 몸무게 또한 커지기 마련인데 이처럼 두 값이 같은 방향으로 커지는 것을 양의 상관관계라고 한다. 반대로 음의 상관관계는 값이 커지면 다른 값이 작아지는 경우를 뜻하는데 술을 많이 마신다던가, 담배를 많이 필경우 기대 수명이 줄어드는 경우가 있는데 이렇게 두 값이 같은 방향으로 가지 않으면 음의 상관관계라고 한다. 위 그림을 보면, r이 1에 가까울수록 우상향의 선형 모양이 나오게 되며, r이 -1에 가까울수록 우하향의 선형 모양이 나오게 된다. 그리고 0에 가까울 경우 완전히 패턴을 찾기 힘든 모습이 나오게 되는데..
이번 포스팅은 DBSCAN 클러스터링을 구현하는 내용이며, DBSCAN에 대해서 이해를 하고 싶을 경우 이전에 작성한 포스팅을 참고하면 좋을 것 같다. DBSCAN clustering 이해하기 DBSCAN의 개념 DBSCAN은 Density-Based Spatial Clustering of Applications with Noise의 약자로, 한국말로 풀이하면 노이즈를 적용한 밀도 기반 공간 클러스터링이라고 해석할 수 있다. 한마디로 Density-Based.. needjarvis.tistory.com 본 포스팅에 있는 코드는 IBM의 코세라(coursera) 강의 내용과 사이킷런의 데모 페이지의 코드를 섞어서 만든 예제이다. DBSCAN 클러스터링 예제 라이브러리 import numpy as np fr..
DBSCAN의 개념 DBSCAN은 Density-Based Spatial Clustering of Applications with Noise의 약자로, 한국말로 풀이하면 노이즈를 적용한 밀도 기반 공간 클러스터링이라고 해석할 수 있다. 한마디로 Density-Based 알고리즘이기 때문에, "밀도 기반"으로 클러스터링을 하게 된다는 의미이다. K-Means의 문제점 DBSCAN을 이해하기에 앞서, 대표적인 클러스터 알고리즘인 K-Means을 떠올려보자. K-Means은 이상치(outlier)가 있어도 이상치 값을 이해 할 수 없으며, 이상치가 심지어 K-Means를 자신의 주변으로 끌고 와서 centroid값을 바꿔버릴 수 있다. 이는 클러스터의 품질을 심하게 망칠 수 있는 critical risk이다...
K-means 자체에 대해서 아직 이해가 부족하신 분은 예전 포스팅에 자세히 적은 것이 있기 때문에 이전 포스팅을 먼저 보면 될 것 같으며 아래 링크를 확인하면 된다. 클러스터링(Clustering)을 통한 데이터 분류기법, K-평균(K-Means) 알고리즘 K-평균(K-Means) 알고리즘은 기계학습(머신러닝, machine learning), 데이터마이닝에서 활용하고 있는 기법으로서, 대표적인 비지도학습이다. 비지도학습이란 어떤 결과를 예측하지 못해야 되는 것으 needjarvis.tistory.com K-means를 알고 계신 분들에게 다시 한번 간단히 상기시키면 다음과 같은 순서로 클러스터링이 작동된다. 중심점인 K를 지정한 후, 이 값은 무작위의 좌표값으로 시작된다. 데이터 요소들과 무작위의 중..
정보이득(Information Gain) 개념 정보 이득(Information Gain)은 결정 트리(Decision Tree)에서 엔트로피(Entropy)를 계산 후, 어떤 노드를 선택하는 것이 옳은지 따져볼 때 사용하는 기댓값이다. 결정 트리에서 다양한 노드를 만들고 엔트로피를 구했다면 정보 이득이 가장 높은 값을 선택하고 다음 가지를 생성하게 되기에 엔트로피와 정보 이득은 같이 움직인다 생각하면 된다. 엔트로피 정보 이득에 설명에 사용한 데이터는 이전 엔트로피 계산에 사용한 데이터이며, 엔트로피에 대한 포스팅을 읽고 이 내용을 읽으면 좀 더 이해하기 편할 것 같다. [데이터분석] 엔트로피(Entropy) 이해하기 보통 엔트로피라 하면 과학 분야에서 많이 쓰이는 말이지만, 통계학 혹은 데이터 분석쪽에..
보통 엔트로피라 하면 과학 분야에서 많이 쓰이는 말이지만, 통계학 혹은 데이터 분석쪽에서도 곧잘 쓰이는 용어이다. 일단 엔트로피를 가장 많이 활용하는 것 중 하나가 결정 트리(Decision Tree)이다. 결정 트리의 경우 우리가 엔트로피를 이해하고, 정보 이득(Information Gain)도 공식으로 풀어낼 수 있다면 충분히 결정 트리를 구현할 수 있을 정도이다. 엔트로피의 개념 엔트로피는 노드의 불순성(혹은 무작위성)을 나타내며, 1로 갈수록 불순하고, 0으로 갈수록 불순하지 않다는 의미이다. 여기서 불순하지 않다는 것은 잘 섞이지 않았다는 의미이다. 예를 들어, 백인 10명, 흑인 10명이 한 집단에 있다고 하였을 때, 특정 조건으로 이 집단을 2개의 집단으로 분리했다고 가정을 해보자. 이때 집..