Tech (580) 썸네일형 리스트형 [ML] Convolutional Neural Network(CNN) 🔉해당 자료 내용은 순천향대학교 빅데이터공학과 김정현 교수님의 수업자료에 기반하였으며 수업자료의 저작권 문제로 인해 수업자료를 직접 이용하지 않고 수업자료의 내용을 참고하여 본인이 직접 작성하였으므로 저작권 문제가 발생하지 않음을 필히 알려드립니다. 컴퓨터 비젼 즉, 이미지 데이터를 분류하는 데 가장 큰 일조를 한 모델이 있다고 한다면 바로 CNN(Convolutional Neural Network) 모델이다.(애석하게도 여기서의 CNN은 미국의 생방송 뉴스 전문 텔레비전 📺방송사 CNN과는 다르다.) 최근에 CNN은 이미지 분류를 넘어서 RNN의 Seq2Seq 모델과 결합하여 Image Captioning 즉, 기계가 이미지를 보고 텍스트로 설명할 수 있는 능력까지 보여주고 있다. 이에 대해서는 흥미로.. [ML] Tensorflow를 이용해 Deep Neural Network 구현하기 🔉해당 자료 내용은 순천향대학교 빅데이터공학과 김정현 교수님의 수업자료에 기반하였으며 수업자료의 저작권 문제로 인해 수업자료를 직접 이용하지 않고 수업자료의 내용을 참고하여 본인이 직접 작성하였으므로 저작권 문제가 발생하지 않음을 필히 알려드립니다. 이번 포스팅에서는 그동안 Tensorflow에서 구현해보았던 단층 퍼셉트론이 아닌 2개 이상의 층(layer)으로 구성된 다층 퍼셉트론, 이른바 '딥러닝'이라고 불리는 모델을 구현해보려 한다. 물론 여기서 딥(Deep)하다는 것이 특정 몇 개 이상의 층으로 구성되어야 딥러닝이라고 할 수 있는 절대적 기준이 있는 것은 아니다. 하지만 아직 텐서플로우를 활용해 딥러닝을 구현해보는 기초적인 과정이므로 layer가 2개일 경우만을 소개한다는 점 참고해 주길 바란다... [ML] Class imbalance 해결을 위한 다양한 Sampling 기법 🔉해당 포스팅에서 사용된 자료는 고려대학교 산업경영공학부 김성범교수님의 Youtube 강의자료에 기반했음을 알려드립니다. 혹여나 출처를 밝혔음에도 불구하고 저작권의 문제가 된다면 joyh951021@gmail.com으로 연락주시면 해당 자료를 삭제하겠습니다. 감사합니다. 이번 포스팅에서는 데이터 불균형, 명확하게는 종속변수인 클래스(레이블) 불균형을 해결하기 위한 다양한 샘플링 기법에 대해 알아보려고 한다. 클래스 불균형이 구체적으로 무엇이고 대략적인 해결방안에 대해 알고 싶다면 여기를 참고하자. 클래스 불균형을 해결하기 위해서는 크게 데이터에서 수행할 수 있는 샘플링 기법, 모델링 과정에서 수행할 수 있는 비용기반 학습(Cost-sensitive learning)과 단일 클래스 분류기법(Novelty .. [ML] Tensorflow를 이용해 (Binary and Multi)Logistic Regression 구현하기 🔉해당 자료 내용은 순천향대학교 빅데이터공학과 김정현 교수님의 수업자료에 기반하였으며 수업자료의 저작권 문제로 인해 수업자료를 직접 이용하지 않고 수업자료의 내용을 참고하여 본인이 직접 작성하였으므로 저작권 문제가 발생하지 않음을 필히 알려드립니다. 이번 포스팅에서는 저번 시간인 Tensorflow를 이용한 뉴럴네트워크 구현하기에서 배웠던 기본 문법과 구현 과정을 기반으로 회귀 모델이지만 분류 문제해결에 사용되는 Logistic Regression 모델을 구현해보려고 한다. Logistic Regression에서도 이진(Binary) 분류인지 다중(Multi)분류인지에 따라 사용하는 활성함수의 종류가 다르다. 이제 예시 데이터를 사용해서 각 모델을 텐서플로우를 이용해 구현해보자. 1. Logistic R.. [ML] Tensorflow를 이용해 Neural Network 구현하기 🔉해당 자료 내용은 순천향대학교 빅데이터공학과 김정현 교수님의 수업자료에 기반하였으며 수업자료의 저작권 문제로 인해 수업자료를 직접 이용하지 않고 수업자료의 내용을 참고하여 본인이 직접 작성하였으므로 저작권 문제가 발생하지 않음을 필히 알려드립니다. 이번 대학교 4학년 마지막 학기에 '딥러닝과 응용'이라는 수업을 듣게 됬다. 1학기에 들었던 수업인 머신러닝의 내용을 기초로 하지만 딥러닝 관련 모델에 수업 내용이 집중될 것 같다. 딥러닝을 모델하는 여러가지 언어와 툴이 있지만 해당 수업에서는 Python을 이용한 Tensorflow 1.x 버전을 사용하여 진행된다. 앞으로 이 수업에 관련된 포스팅은 이론과 실습 두 가지를 동시에 하거나 번갈아가면서 글을 게시할 예정이다. 또한 현재 Tensorflow 2... [ML] How to correlate one or two categorical variables? 이번 포스팅에서는 범주형 변수간의 상관관계를 분석하는 방법에 대해 알아보려고 한다. 우리가 그동안 자주 사용해왔던 Pearson Correlation, 즉, 상관관계 분석은 수치형 변수간의 관계를 분석하는 데만 사용이 된다. 물론 한 가지 예외 사항이 있다. 예를 들어 2개의 변수가 존재할 때, 한 변수는 연속적인 수치형 변수이고 다른 변수는 수치형의 binary값(0 또는 1로 one-hot encoding되어 있는 상태)으로 변환되어 있는 범주형 변수라고 하자. 이 때 범주형 변수가 어찌됬건 수치형 변수로 변환되어 있는 상태이기 때문에 두 변수간의 Pearson Correlation을 구해 두 변수간의 관계를 구할 수 있다.(근본적으로는 Point-biserial Correlation(점-이연 상관계.. 감마, 베타, 카이제곱 분포와 t분포, F분포에 대한 이해 🔉해당 포스팅에서 사용된 자료는 고려대학교 산업경영공학부 김성범교수님의 Youtube 강의자료에서 발췌했음을 알려드립니다. 혹여나 출처를 밝혔음에도 불구하고 저작권의 문제가 된다면 joyh951021@gmail.com으로 연락주시면 해당 자료를 삭제하겠습니다. 감사합니다. 이번 포스팅에서는 그동안 확률분포 관련 포스팅에서 다루어보지 않았었던 감마, 베타, 카이제곱 분포, 그리고 t분포와 F분포에 대해 알아보려고 한다. 각 확률분포에 대한 PDF 함수 공식과 분포 생김새도 알아보며 서로가 어떤 관련이 있는지에 대해서도 알아보자. 목차는 다음과 같다. 1. 감마 분포 2. 베타 분포 3. 카이제곱 분포 4. t분포 5. F분포 1. 감마 분포 감마분포와 다음 목차에서 소개할 베타분포는 기본적으로 지수분포와 .. [ML] Multivariate regression(다변량 회귀분석) 프로세스 카테고리를 하나 추가했다. 이유는 최근에 데이터 분석 개인 프로젝트를 진행하면서 크나큰 문제점이 발생함을 느꼈기 때문이다. 그 위험성은 데이터를 분석하면서 방향성에 대한 문제와 관련된 것이었다. 필자는 어떤 일을 수행할 때마다 그에 정해진 하나의 절차 즉, 프로세스를 찾게 된다. 그것을 기준으로 앞으로 어떤 방향으로 나가야할지 방향성을 설정하기 때문이다. 그렇게 암묵적으로 방향을 설정하지 않고 무작정 키보드를 눌러가면서 코딩을 하다가 문득 막다른 길에 다다랐다. 이제 내가 나아가야 할 방향을 설정하고 분석을 진행하기 위해 뛰어난 Kaggle 고수들의 가르침을 받고 기록해보려 한다. 분석하려는 모든 문제의 종류가 동일한 프로세스를 갖진 않을 것이다. 그래서 하나씩 문제 종류에 맞게 포스팅을 해보려 한다. .. [NLP] Surprise library를 활용한 추천시스템 구현하기 저번 포스팅까지 추천 시스템의 여러가지 종류와 각각의 추천 알고리즘이 어떻게 구현되는지에 대해 자세히 알아보았다. 이번 포스팅에서는 이전까지 소개해왔던 추천 알고리즘을 간편한 API로 제공하는 Surprise 라이브러리에 대해 알아보고 이를 활용해 추천시스템을 구현해보는 시간을 가지려고 한다. 우선 Surprise 라이브러리란, Python에 기반하며 Scikit-learn API와 비슷한 형태로 제공을 하여 추천 시스템 구현을 도와주는 편리한 라이브러리이다. Surprise 라이브러리에 대해 더 자세히 알고 싶다면 공식문서를 참고하자. Surprise 라이브러리가 구현되는 프로세스와 주요 메소드 그리고 예시 데이터셋을 사용해 Surprise를 활용한 추천시스템을 직접 구현해보자. 참고로 Surprise.. [NLP] Collaborative Filtering(Recommendation) 이번 포스팅에서는 저번 시간의 컨텐츠 기반 필터링(추천) 방법과는 다른 추천 알고리즘인 협업 필터링(Collaborative Filtering)에 대해 알아보고 코드로 구현하는 방법에 대해 알아본다. 협업 필터링은 사용자 또는 아이템(컨텐츠) 기반인 최근접 이웃 필터링과 잠재(Latent)요인 기반 필터링으로 나뉘어 진다. 그러므로 각 개념을 설명하면서 코드로 구현하는 방법 순으로 전개된다. 목차는 다음과 같다. 1. 협업 필터링의 종류 2. 최근접 이웃(Nearest-Neighbor) 기반 필터링 3 최근접 이웃 기반 필터링 구현하기 4. 잠재(Latent)요인 기반 필터링 5. 잠재요인 기반 필터링 구현하기 1. 협업 필터링의 종류 먼저 협업 필터링(Collaborative Filtering)은 다음.. [NLP] Contents-based Recommendation(컨텐츠 기반 추천) 이번에 다룰 주제는 2개의 포스팅으로 분리해서 작성해 볼 예정이다. 바로 자연어 처리(NLP)를 활용한 추천 시스템 구현이다. 추천 시스템은 우리의 일상에 매우 가까이에서 적용되고 있다. 대표적으로 YouTube나 Netflix와 같은 영상 컨텐츠를 담은 기업뿐만 아니라 국내외 E-commerce 기업에서도 추천 알고리즘을 상당히 효과적으로 활용하고 있다. YouTube에서의 '맞춤 동영상' 이나 E-commerce 홈페이지의 "이 A라는 상품을 구매한 고객들은 B라는 상품도 함께 구매합니다" 라는 문구를 보았을 것이다. 이런 것들이 바로 추천 알고리즘을 적용한 예시이다. 추천 알고리즘에도 종류가 몇 가지 존재한다. 크게 '컨텐츠 기반 필터링' 과 '협업 필터링'으로 나뉘어 진다. '협업 필터링'에서는 .. [NLP] 문서 군집화(Clustering)와 문서간 유사도(Similarity) 측정하기 이번 포스팅에서는 여러가지의 문서들을 군집화시켜보고 특정 하나의 문서가 다른 문서들간의 유사도를 측정해보는 방법에 대해서 알아보려고 한다. 군집분석은 비지도 학습으로 비슷한 데이터들끼리 서로 군집을 이루는 것을 말한다. 이러한 방법은 텍스트로 이루어진 문서 데이터에도 적용이 된다. 단어 발생 빈도수에 기반하는 BOW(Bag Of Words) 방식을 이용해 Feature(문서들을 이루고 있는 단어들)를 벡터화시키거나 단어들간의 의미 관계 즉, 단어 벡터들간의 방향을 고려해 Word embedding을 통해 벡터화 시킨다. 이번 포스팅에서는 BOW에 기반한 Tf-idf 방법을 사용한다. 다른 BOW 방식인 Count Vectorizer는 단순히 그저 단어 발생 빈도수에만 초점을 맞추기 때문에 여러가지 문서들.. [NLP] LDA를 활용한 Topic Modeling 구현하기 이번 포스팅에서는 주어진 수많은 단어들을 기반으로 토픽(Topic) 별 단어들의 분포를 확인하고 또 문서(Document)별 토픽들의 분포를 계산해서 문서들의 주제가 무엇인지 예측하는 Topic Modeling에 대해 다루려고 한다. 해당 포스팅은 토픽모델링에 대한 개념적인 깊이보다 파이썬으로 구현하는 내용에 초점이 맞추어져 있으므로 토픽 모델링, 그중에서도 LDA(Latent Dirichlet Allocation)의 이론에 대해 알고 싶다면 여기를 참고하자. 목차는 다음과 같다. 1. Topic Modeling의 종류 2. Python으로 LDA 구현해보기 1. Topic Modeling의 종류 토픽 모델링은 크게 확률에 기반한 모델과 행렬분해에 기반한 모델 2가지로 나뉘어 진다. 간단하게 종류에 대해.. [NLP] 텍스트 분류와 감성(Sentiment)분석 구현하기 이번 포스팅에서는 sklearn의 내장된 데이터와 Kaggle 데이터를 활용해 뉴스 기사 데이터들의 카테고리를 분석하는 텍스트 분류, 그리고 Review의 감성(긍정, 부정)을 분류해보는 실습내용에 대해 소개하려고 한다. 텍스트 데이터 분석, 모델링 과정 프로세스에 대해서는 여기를 참고하자. 목차는 다음과 같다. 1. 뉴스 카테고리 분류하기 2. 리뷰 감성 분류하기 1. 뉴스 카테고리 분류하기 네이버, 다음, 그리고 여러 종류의 언론사 각각의 홈페이지를 방문해 보면 다양한 카테고리의 뉴스가 존재하는 것을 알 수 있다. 그리고 각 뉴스 기사의 카테고리를 지정하는 기준은 해당 뉴스의 내용이 기반이 된다. 그렇다면 뉴스 내용의 텍스트를 기반으로 해당 뉴스의 카테고리를 예측할 수 있지 않을까? 이러한 예시 이외.. [NLP] 텍스트를 이용한 머신러닝 프로세스에 대한 이해 새로운 포스팅 카테고리를 추가했다. 주제는 NLP(Natural Language Processing)이라고 불리는 '자연어 처리'이다. 자연어 처리는 텍스트 분류, 감성분석, 텍스트 요약, 텍스트 군집화 또는 유사도 측정과 같이 여러가지 분야에서 널리 사용되고 있다. 필자는 자연어 처리에 대한 기본적인 사전 지식이 없었기 때문에 개인적인 기회를 통해서 공부해야 했다. 그리고 우연히 마주했던 Google Assistant NLP팀의 언어학자로 일하시는 박지호님의 NLP Tutorial을 통해서 자연어처리를 입문했다. 해당 블로그를 꾸준히 구독하고 있고 글을 읽으면서 습득한 내용을 따로 기록하고 있다. 추후에 자연어처리의 기본에 대한 내용을 꼭 내 블로그에도 포스팅할 예정이다. 이번 글에서는 텍스트 형식의 .. [ML] Mean Shift, DBSCAN, and Silhouette metric 이번 포스팅에서는 군집화 모델인 Mean Shift와 DBSCAN에 대해 알아보고 군집화 모델의 성능을 평가하는 지표인 Silhouette metric에 대해서 소개하려한다. 그리고 이 두 가지 모델들과 평가지표를 Scikit-learn을 이용해서 간단하게 구현해보는 시간도 갖는다. 목차는 다음과 같다. 1. Mean Shift 2. DBSCAN(Density Based Spatial Clustering of Application with Noise) 3. Silhouette metric for clustering 1. Mean Shift Mean Shift는 Non-parametric(비모수 방법론) 모델이며 KDE(Kernel Density Estimation)을 이용하여 개별 데이터 포인트들이 데이.. [ML] K-means 와 GMM(Gaussian Mixture Model) 구현하기 이번 포스팅에서는 군집화 모델 중 K-means와 GMM을 Scikit-learn을 이용해서 구현해보려 한다. K-means는 대표적인 Semi-parametric 모델이며 GMM은 Parametric 모델이라는 점에서 두 개의 모델 간에 차이점이 존재한다. 이 각 모델들에 대한 자세한 이론적인 설명이 알고 싶다면 K-means는 여기, GMM은 여기를 참고하자. 1. K-means K-means 알고리즘은 쉽고 간결하며 대용량 데이터에도 활용이 가능하다. 하지만 거리 기반 알고리즘으로 feature의 개수가 너무 많아진다면 군집화의 성능이 저하된다. 따라서 경우에 따라 PCA로 차원을 축소하여 적용하기도 한다. 또한 반복적인(iterative) 알고리즘이기 때문에 반복 횟수가 급격히 많아질 경우 학습 .. [ML] LDA(선형판별분석)와 SVD(특이값 분할) 구현하기 이번 포스팅에서는 Linear Discriminant Analysis(LDA)인 선형판별분석과 Singular Value Decomposition(SVD)인 특이값 분할을 어떻게 구현할 수 있는지에 대해 살펴보려고 한다. 본 포스팅에서는 개념에 대해서는 간단히 다루므로 보다 깊숙한 개념은 여기를 참고하자. 목차는 다음과 같다. 1. LDA 구현해보기 2. SVD 구현해보기 1. LDA 구현해보기 LDA는 PCA와 비슷하게 입력 데이터셋을 저차원 공간으로 축소하는 기법이다. 하지만 PCA와는 다르게 LDA는 지도학습의 분류문제를 해결하기 수월하도록 클래스를 가장 잘 분류할 수 있는 선형을 최대한 잘 유지하는 축을 찾아준다는 차이점이 있다. LDA에 대한 목적함수나 수식에 대해서는 해당링크를 참고하자. LD.. [ML] Scikit-learn을 이용한 PCA 구현하기 이번 포스팅에서는 PCA에 대해 간단하게 알아보고 언제 PCA를 사용해야할지, 그리고 Scikit-learn 라이브러리를 이용해 PCA를 간단하게 구현해보는 내용에 대해 소개하려 한다. PCA에 대한 자세한 이론은 여기를 참고하자. 목차는 다음과 같다. 1. PCA란? 2. Scikit-learn 이용해 PCA 구현하기 1. PCA란? PCA란, Principal Components Analysis로 한국어로는 '주성분 분석'이다. PCA는 feature 개수가 너무 많을 때, 여러 feature들의 내재된(latent) feature를 추출하는 것이다. PCA를 본격적으로 소개하기 전에 feature selection(선택) 과 feature extraction(추출)의 차이점에 대해서 짚고 넘어가자... [ML] Regression metric과 Polynominal Regression 구현하기 이번 포스팅에서는 회귀분석(Regression) 모델의 성능 평가에 이용되는 평가지표(metric)과 Polynominal Regression(다항 회귀분석)를 Python으로 구현하는 방법에 대해 알아보려고 한다. 목차는 다음과 같다. 1. Metrics for regression 2. Polynominal Regression 1. Metrics for regression 회귀분석은 기본적으로 연속적인 실수값을 예측하는 모델이다. 따라서 회귀분석 모델의 성능을 평가할 때에는 분류 모델의 성능을 평가할 때 사용했던 정확도, 정밀도, 재현율 등 Confusion Matrix같은 지표를 사용해선 안 된다. Regression의 성능을 평가하기 위한 방법으로는 보통 Loss(Error라고도 부르며 예측값에서 .. 이전 1 ··· 21 22 23 24 25 26 27 ··· 29 다음