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) 이해하기 보통 엔트로피라 하면 과학 분야에서 많이 쓰이는 말이지만, 통계학 혹은 데이터 분석쪽에..
내 컴퓨터 방은 구조가 특이해서, 일자로 길게 낼수가 없기 때문에 2인용 컴퓨터 테이블을 1인용 테이블을 2개 사서 붙여놨다. 그러다보니 듀얼 모니터를 사용할수가 없어서 상당히 답답했었다. 예를 들어, 재택근무를 할 때 가상환경에서 작업을 할 때 인터넷을 검색하기가 힘들고, 모니터링 환경을 만들기가 힘들기도 하고 아무튼 여러가지 문제점이 많았다. 그래서 엄청 긴 모니터를 사서, 듀얼모니터의 효과를 누릴까 고민을 했었는데 어느날 예전회사에서 USB 모니터를 가지고 다녔던 직원이 생각이 났었다. 이 직원은 프로젝트를 나갈 때 자신의 USB 모니터를 들고 와서 한대 더 확장을 해서 가지고 다녔고, 해당 모니터는 세로형 모니터라서 모니터링 보기가 상당히 좋았다. 그래서, USB 모니터를 쿠팡에서 검색을 해봤는데..
보통 엔트로피라 하면 과학 분야에서 많이 쓰이는 말이지만, 통계학 혹은 데이터 분석쪽에서도 곧잘 쓰이는 용어이다. 일단 엔트로피를 가장 많이 활용하는 것 중 하나가 결정 트리(Decision Tree)이다. 결정 트리의 경우 우리가 엔트로피를 이해하고, 정보 이득(Information Gain)도 공식으로 풀어낼 수 있다면 충분히 결정 트리를 구현할 수 있을 정도이다. 엔트로피의 개념 엔트로피는 노드의 불순성(혹은 무작위성)을 나타내며, 1로 갈수록 불순하고, 0으로 갈수록 불순하지 않다는 의미이다. 여기서 불순하지 않다는 것은 잘 섞이지 않았다는 의미이다. 예를 들어, 백인 10명, 흑인 10명이 한 집단에 있다고 하였을 때, 특정 조건으로 이 집단을 2개의 집단으로 분리했다고 가정을 해보자. 이때 집..
KNN 알고리즘 개념 k최근접 알고리즘(k-nearest neighbors algorithm, KNN) 알고리즘은 분류(classify) 문제에도 사용할 수 있고, 회귀(Regression) 문제에도 사용할 수 있으며, 수많은 알고리즘의 중간 과정(예를 들어 추천 알고리즘인 CF에서도 사용)에서도 자주 쓰이는 알고리즘이다. KNN의 k라는 것은 숫자를 뜻하며 여기에 숫자는 이웃이고, k만큼의 이웃을 지정하여 그 이웃들의 값을 토대로 계산한다. KNN은 쉽게 생각하면 유사 알고리즘과 같다 컬럼별로 유사한 이웃들을 찾아서 값을 계산하고, 이를 통해 최종적으로 분류 및 회귀 문제를 풀기 때문이다. 키와 몸무게를 기반으로 헌병과 그외의 보직을 예측한다고 가정을 해보자. 이는 실제 데이터가 아니라 어디까지나 예시..
DeFi의 개념 DeFi는 Decentralized Finance의 약어로 블록체인 기술을 활용한 탈중앙화 금융 플랫폼을 말합니다. DeFi와 완벽한 안티테제를 생각하면 현재 시중의 은행이나 보험사 등을 생각하면 됩니다. DeFi는 매우 혁신적이면서도 아직 위험한 서비스이자 사상입니다. 모든것을 코딩으로 의존하고 책임을 지는 사람조차 없는 그런 시스템이다보니 작은 버그로 인해서 모든 암호화폐가 탈취 될 수도 있고, 악의적인 공격자로 인해서 시스템이 망가질수도 있는등 아직은 꽤나 불안정한 모습을 보여주고 있고 실제로 그러합니다. DeFi의 서비스 종류 DeFi는 블록체인으로 만들어졌으며, 이더리움과 같이 튜링완전성(자원만 충분하면, 한마디로 모든 것을 프로그래밍 할 수 있다라는 의미)을 지원하는 코인을 기..
자바(Java)로만 엘라스틱서치(Elastic Search)에 대해서 다뤄봤는데 이번에는 파이썬(Python)으로 엘라스틱 서치를 다뤄보도록 하겠습니다. 데이터는 추후 주가 분석을 등을 하기 위해서, 삼성전자의 주식 데이터를 저장해보는 것으로 해보겠습니다. 삼성전자 주식 데이터 야후의 Finance라는 사이트에 가시면, 종목을 입력할 수 있고 삼성전자의 종목(005930.KS)[1]를 입력하면 위와 같이 삼성전자 종목 정보로 넘어갑니다. 화면의 붉은색 네모박스로 체크한 곳을 보면, Download라고 되어 있는데 이 곳을 클릭하면, 삼성전자의 Historical Prices 데이터를 받을 수 있습니다. 귀찮은 분들을 위해서 아래의 파일을 받으셔도 됩니다. 삼성전자 주가 데이터 직접 위 사이트에서 받으시거..
텐서(Tensor)라고 하면 텐서플로우를 떠올리기 쉽지만, 사실 딥러닝에서는 데이터를 처리하기 위한 데이터의 형태라고 이해하면 된다. 0차원의 데이터는 보통 스칼라(Scalar)라고 하는데 파이토치에서는 0-Tensor(랭크 0)이며, 스칼라 데이터의 나열인 벡터는 1-Tensor(랭크 1), 행렬은 2-Tensor(랭크 2)이다. 텐서는 파이썬의 대표적인 라이브러리인 넘파이(numpy)와 유사하고 넘파이와 데이터를 쉽게 서로 변환 할 수도 있다. 위 내용들을 좀 더 쉽게 설명하자면, 우리가 프로그램으로 사용하는 변수들을 딥러닝으로 처리하기 위해서는 변환을 해야 하는데 그 단위가 바로 텐서라고 생각하면 된다. 텐서 데이터타입 [1] 데이터 타입 dtype CPU tensor GPU tensor 32-bi..
파이토치(Pytorch)는 페이스북에서 바톤터치를 한 이후 계속 만들고 잘 관리하고 있으며 한 때 텐서플로우로 딥러닝 시장이 제패될 것 같던 상황에서 파이토치가 기가 막히게 생명력을 유지하면서 최근에는 특정 분야는 더 앞서는 모습을 보여주기도 한다. Pytorch는 그냥 학문에서나 쓰이며 박사나 일부 연구원들이 사용하는 것이라 다짐하며, 다시는 배우지 않을거라 생각했지만 최근 들어 자연어처리쪽의 파이토치의 약진이 무섭다. 그래서 신기술을 빠르게 익히기 위해서 Pytorch를 배운다는 것은 선택이 아니라 필수가 되어 버렸다. 그럼 설치와 사용에 앞서 각각은 언제 사용하는 것이 좋은지 해외 아티클들을 뒤지면서 정리해보았다. Pytorch vs Keras vs Tensorflow 우선 초창기의 텐서플로우(Te..
리눅스(Linux)에서 어플리케이션을 돌려야 될 경우, 크론탭을 알아야 되는 건 필수라 할 수 있다. 크론탭은 특정 시간에 특정 작업을 할 수 있게 도와주는 기능으로 Web의 경우 크론탭(ex: spring scheduler)이 내장되어 있는 경우가 있어서 몰라도 상관 없지만, 어플리케이션은 프로세스가 종료되기 때문에 OS에서 이 기능을 해줘야 한다. 크론탭의 기본 기능 크론탭 리스트 crontab -l 크론탭으로 만든 스케쥴들을 출력한다. 마치 cat으로 텍스트 내용을 출력하는 것과 유사한 모습이다. 크론탭 작성 crontab -e 위와 같은 명령어를 한 경우 vi 편집기같은 화면이 뜨게 된다. 스케쥴링을 작성 한 후 vi 편집기처럼 ESC -> 콜론(:) -> wq를 누르면 저장이 된다. 만약 입력한..
결정 트리 혹은 의사결정 나무(Decision Tree) 분류기는 무언가를 설명할 때, 매우 유용한 퍼포먼스를 보여주는 모델이다. 최근에는 설명 가능한 인공지능(Explainable AI, XAI)이라는 것이 이슈이며, 몇몇 국회의원은 IT 기업들의 알고리즘을 공개해야 된다는 이야기까지 나오기도 하였다. 또다른 관점으로는 새로운 서비스의 창출이다. 예를 들어, 설명을 할 수 있을 정도의 모델이라면 리포트(Report)를 보여준다던지, 설명 값을 토대로 다른 서비스를 만들 수도 있을 것이다. 결정 트리는 바로 이러한 방식에 특화된 알고리즘이며, 설명이 가능한 것을 제외하고 나쁘지 않을까 생각할 순 있지만, 아직도 많이 사용될 정도로 성능 또한 뒤쳐지지 않는다. 결정 트리의 구성도 일단 결정 트리인 이유는 ..
해밍 거리(Hamming Distance)는 리차드 웨슬리 해밍이라는 수학자가 만든 같은 크기를 가진 데이터를 놓고, 같은 위치에 있는 값들끼리 비교를 하는 매우 직관적인 알고리즘이다. 해밍거리 예시 "머신러닝"과 "머신건"이 얼마나 유사한지 해밍 거리로 비교를 해보자. 머 신 러 닝 머 신 건 O O X X 위와 같이 총 2개가 유사하고, 2개는 다르기에 둘간의 거리는 즉 2가 된다. 여기서 머신건은 3글자이고 머신러닝은 4글자이기 때문에 부족한 글자는 공백으로 치환을 하고 계산을 해야 한다. 계산을 할 때 공백을 추가하지 않을 경우 에러가 발생된다. 글자수가 다를 경우 에러 화면 Traceback (most recent call last): File "E:/Python/Post/similar/hamm..