하미's 블로그
잡학다식의 지식공방
300x250

전체 글 430

데이터 웨어하우징, 비즈니스 인텔리전스 및 다차원 모델링 입문 - 1

서로 다른 세계: 데이터 수집과 데이터 분석 조직의 가장 중요한 자산 중 하나는 정보이다. 정보는 대부분 두 가지 목적이 있다. 운영상 기록의 보관과 의사결정을 위한 분석 운영 시스템은 데이터를 입력하는 곳이고, DW/BI 시스템은 데이터를 꺼내 사용하는 곳이다. 운영 시스템의 사용자는 조직의 수레바퀴를 돌린다. 주문을 받고, 신규 고객을 모으며, 운영 업무의 상태를 모니터링하며 불만사항을 기록한다. 반면, DW/BI 시스템 사용자는 실적을 평가하기 위해 조직의 수레바퀴가 잘 돌아가는지 살펴본다. 신규 주문을 집계, 지난주 실적과 비교, 신규 고객의 가입 사유와 고객 불만사항을 체크한다. 게다가, DW/BI 시스템은 고성능 쿼리에 최적화되어 있어 수백만 건의 트랜잭션을 검색해서 하나의 집합으로 압축된 답..

[자격증] [단답형]빅데이터 분석 기사 실기 실제 후기 2회, 3회차

안녕하세요! 빅데이터 분석기사 실기 실제 응시 후 느꼈던 것과 중요한 것이라고 생각되는 것을 작성하겠습니다. 단답형 단답형은 필기 준비했던 개념 위주로 공부하였습니다. 실제 코딩과는 크게 상관없는 부분들이 많이 나왔습니다. 기본 개념을 잘 숙지하신다면, 다들 단답형은 고득점을 받을 수 있을겁니다. 실제 2회, 3회 크게 어려우지 않았습니다. 딱 보면, 바로 답이 나오는 문제가 많으니 부담느끼지 않아도 됩니다.(그렇다고 손놓지는 마세요..ㅎ) 단답형 걱정되시는 분.. 필기 공부하실때, 정말 중요한 개념들 위주로 공부하면 좋을것같아요. 특히, ~의 종류 중 하나를 가져와 빈칸에 들어갈 말, 혹은 정의 등 나올만한 개념들 있잖아요. 또한, 너무 심화적인거나 지엽적인 문제보다는 중요한 keyword 중심으로, ..

하이퍼파라미터 튜닝 / grid search

하이퍼 파라미터란 모델 정의시 사람이 직접 지정 해주는 값 Grid Search Grid Search란 하이퍼 파라미터로 지정할 수 있는 값들을 순차적으로 입력한뒤 가장 높은 성능을 보이는 하이퍼 파라미터를 찾는 탐색 방법입니다. 예를 들어 Grid Search 를 통해 모델 깊이와 모델 넓이 라는 두개의 하이퍼 파라미터를 튜닝 한다고 가정해봅시다. 우선, 하이퍼 파라미터로 지정할 값들을 다음과 같이 설정해 줍니다. 모델 깊이 = [1, 2, 3] , 모델 넓이 = [a, b] 모델 깊이는 1 ,2, 3 중 하나의 값이고, 모델 넓이는 a, b 중 하나의 값으로 지정 하고자 합니다. grid search를 이용한다면 다음 순서대로 하이퍼 파라미터를 지정해 학습과 검증을 거치며, 그중 성능이 가장 높은 하..

IT/Dacon 2021.12.13

파라미터/하이퍼파라미터

파라미터(Parameter, 매개변수) 파라미터(parameter, 매개변수)는 학습 과정에서 생성되는 변수들입니다. 예를 들어 한 학년에 속해 있는 학생들의 키에 대한 정규분포를 그린다고 하면, 평균과 표준편차가 계산 될 것입니다. 여기서 평균과 표준편차가 파라미터(Parameter, 매개변수) 입니다. 파라미터는 데이터를 통해 구해지며, 모델 내부적으로 결정되는 값입니다. 사용자가 임의로 설정하는 값이 아닙니다. LGBM 모델과 딥러닝 모델의 학습 가중치들이 파라미터에 해당됩니다. 하이퍼 파라미터(Hyper parameter) 하이퍼 파라미터는 모델링할 때 사용자가 직접 세팅해주는 값을 뜻합니다. learning rate나 트리 기반 모델의 트리의 최대 깊이, 최소 노드 갯수 등 굉장히 많습니다. 머..

IT/Dacon 2021.12.10

train_test_split / LGBM (2)

Light GBM 모델을 선언 이후 학습을 위해서는 fit() 메소드를 사용합니다. fit () 메소드 내부에 있는 eval_metric 파라미터와, verbose 파라미터를 이용하면 평가 산식을 원하는 산식으로 설정하고, 모델이 학습과 검증을 진행하며 그 과정을 출력 할 수 있습니다. eval_metric = "원하는 평가산식" 을 넣어주시면 학습을 진행하며 지정해주신 평가 산식과 검증 데이터 셋을 이용해 결과 값을 출력해줍니다. 또한 verbose = "10" 과 같이 파라미터를 지정해주면 n_estimators를 기준으로 10번 마다 결과 값을 출력 하게 됩니다. # LightGBM을 이용해 학습 및 검증 진행 from lightgbm import LGBMRegressor model = LGBMRe..

IT/Dacon 2021.12.09

train_test_split / LGBM (1)

학습에 사용 할 모델은 Light GBM 입니다. Light GBM 모델을 선언 이후 학습을 위해서는 fit() 메소드를 사용합니다. 이때 fit() 메소드 내부에 다음과 같이 파라미터를 적용해주면 모델이 학습을 하면서 validation 데이터를 이용해 계속 검증을 진행 합니다. model.fit(x_train, y_train, eval_set = [(x_train,y_train),(x_valid,y_valid)] ) #train_test_split() 메소드를 이용해 train/validation 데이터 나누기 # stratify 옵션을 활용하여 데이터 셋 split x_train,x_valid, y_train, y_valid = train_test_split(train_x,train['categor..

IT/Dacon 2021.12.08

train_test_split() - (4)

stratify: stratify 파라미터는 분류 문제를 다룰 때 매우 중요하게 활용되는 파라미터 값 입니다. stratify 값으로는 target 값을 지정해주면 됩니다. stratify값을 target 값으로 지정해주면 target의 class 비율을 유지 한 채로 데이터 셋을 split 하게 됩니다. 만약 이 옵션을 지정해주지 않고 classification 문제를 다룬다면, 성능의 차이가 많이 날 수 있습니다. # 라이브러리 로딩 from sklearn.model_selection import train_test_split #train_test_split() 메소드를 이용해 train/validation 데이터 나누기 # stratify 옵션을 활용하여 데이터 셋 split x_train,x_va..

IT/Dacon 2021.12.07

train_test_split() - (3)

train_test_split() 메소드의 test_size 파라미터와 shuffle 파라미터 에 대해 알아보겠다. test_size = test data(validation data) 구성의 비율을 나타낸다. train_size의 옵션과 반대 관계에 있는 옵션 값이며, 주로 test_size 파라미터를 지정해준다. test_size = 0.2로 지정하면 전체 데이터 셋의 20%를 test(validation) 셋으로 지정하겠다는 의미입니다. default 값은 0.25입니다. shuffle: 데이터를 split 하기 이전에 섞을지 말지 여부에 대해 지정해주는 파라미터입니다. default = True입니다. # 라이브러리 로딩 from sklearn.model_selection import train_..

IT/Dacon 2021.12.06

train_test_split() - (2)

train_test_split()을 이용한 train / validation(test) 분리 train_test_split 함수를 통해 단 1줄로 깔끔하게 분리할 수 있다. 패키지는 sklearn.model_selection에 있습니다. train_test_split 메소드는 총 4개의 값을 반환하고 2개의 값을 필수적으로 채워주어야 합니다. 반환하는 값은 학습에 사용할 X,y 값, 검증에 사용할 X,y 값 이렇게 총 4개의 값을 반환하고, 입력값으로는 원본 데이터의 X,y를 채워주어야 합니다. #라이브러리 로딩 from sklearn.model_selection import train_test_split X = train_x y = train['category'] X_train, X_test, y_tr..

IT/Dacon 2021.12.05

하이퍼파라미터 튜닝 / grid search

하이퍼 파라미터란 모델 정의시 사람이 직접 지정 해주는 값 이라고 이전 시간에 설명 드렸습니다. Grid Search Grid Search란 하이퍼 파라미터로 지정할 수 있는 값들을 순차적으로 입력한뒤 가장 높은 성능을 보이는 하이퍼 파라미터를 찾는 탐색 방법입니다. 예를 들어 Grid Search 를 통해 모델 깊이와 모델 넓이 라는 두개의 하이퍼 파라미터를 튜닝 한다고 가정해봅시다. 우선, 하이퍼 파라미터로 지정할 값들을 다음과 같이 설정해 줍니다. 모델 깊이 = [1, 2, 3] , 모델 넓이 = [a, b] 모델 깊이는 1 ,2, 3 중 하나의 값이고, 모델 넓이는 a, b 중 하나의 값으로 지정 하고자 합니다. grid search를 이용한다면 다음 순서대로 하이퍼 파라미터를 지정해 학습과 검증..

IT/Dacon 2021.11.27

빅데이터 분석기사 실기 (실전 연습) - 투표기반 앙상블

핵심개념 투표기반 앙상블은 여러 분류기를 학습시킨 후 각각의 분류기가 예측하는 레이블 범주가 가장 많이 나오는 범주를 예측하는 방법입니다. 다수결 원리와 유사하죠. 사용방법은 우선 개별 분류기의 최적 하이퍼파라미터를 찾은 후, 투표기반 앙상블로 모델을 만들어 좀 더 좋은 분류와 회귀 예측을 찾는 것입니다. 로지스틱모델, 서포트벡터머신, 랜덤포레스트 등 여러 머신러닝 분류기를 수행한 후 예측 범주가 많이 나온 것을 최종 범주로 분류합니다. 다만, 각 분류 알고리즘의 결과는 범주를 기반으로 할 수도 있고, 확률을 제시할 수도 있습니다. 범주를 기반으로 둔다는 것은 1, 2와 같이 결과가 범주로 많이 나타난 것을 선택하는 방법이고, 확률에 기반한다는 것은 예측 확률을 제시할 수도 있습니다. 범주를 기반으로 둔..

IT/Machine Learning 2021.11.27

파이썬 파라미터/하이퍼파라미터

우선 모델 튜닝하기전에 한가지 개념을 짚고 넘어가겠습니다. 바로 파라미터(Parameter)와 하이퍼 파라미터(Hyper parameter) 입니다. 파라미터(Parameter, 매개변수) 파라미터(parameter, 매개변수)는 학습 과정에서 생성되는 변수들입니다. 예를 들어 한 학년에 속해 있는 학생들의 키에 대한 정규분포를 그린다고 하면, 평균과 표준편차가 계산 될 것입니다. 여기서 평균과 표준편차가 파라미터(Parameter, 매개변수) 입니다. 파라미터는 데이터를 통해 구해지며, 모델 내부적으로 결정되는 값입니다. 사용자가 임의로 설정하는 값이 아닙니다. LGBM 모델과 딥러닝 모델의 학습 가중치들이 파라미터에 해당됩니다. 하이퍼 파라미터(Hyper parameter) 하이퍼 파라미터는 모델링할..

IT/Dacon 2021.11.26

train_test_split / LGBM - (2)

이전시간에는 train_test_split() 으로 데이터셋을 split 하고 해당 데이터 셋을 이용해 모델을 학습하고 검증하는 방법에 대해 알아 보았습니다. 이번시간에는 거기에 더해 검증하는 평가 산식을 원하는 산식으로 설정하고, 모델이 학습과 검증을 진행하며 그 과정을 출력 할 수 있는 방법에 대해 알아보겠습니다. 학습에 사용 할 모델은 Light GBM 입니다. ight GBM 모델을 선언 이후 학습을 위해서는 fit() 메소드를 사용합니다. fit () 메소드 내부에 있는 eval_metric 파라미터와, verbose 파라미터를 이용하면 평가 산식을 원하는 산식으로 설정하고, 모델이 학습과 검증을 진행하며 그 과정을 출력 할 수 있습니다. eval_metric = "원하는 평가산식" 을 넣어주시..

IT/Dacon 2021.11.25

train_test_split / LGBM (1)

이번시간에는 train_test_split() 으로 데이터셋을 split 하고 해당 데이터 셋을 이용해 모델을 학습하고 검증하는 방법에 대해 알아 보겠습니다. 학습에 사용 할 모델은 Light GBM 입니다 Light GBM 모델을 선언 이후 학습을 위해서는 fit() 메소드를 사용합니다. 이때 fit() 메소드 내부에 다음과 같이 파라미터를 적용해주면 모델이 학습을 하면서 validation 데이터를 이용해 계속 검증을 진행 합니다. model.fit(x_train, y_train, eval_set = [(x_train,y_train),(x_valid,y_valid)] ) #train_test_split() 메소드를 이용해 train/validation 데이터 나누기 # stratify 옵션을 활용하여..

IT/Dacon 2021.11.24

train_test_split - (4)

이번시간에는 train_test_split() 메소드의 stratify파라미터에 대해 알아보겠습니다. stratify: stratify 파라미터는 분류 문제를 다룰 때 매우 중요하게 활용되는 파라미터 값 입니다. stratify 값으로는 target 값을 지정해주면 됩니다. stratify값을 target 값으로 지정해주면 target의 class 비율을 유지 한 채로 데이터 셋을 split 하게 됩니다. 만약 이 옵션을 지정해주지 않고 classification 문제를 다룬다면, 성능의 차이가 많이 날 수 있습니다. # 라이브러리 로딩 from sklearn.model_selection import train_test_split #train_test_split() 메소드를 이용해 train/valida..

IT/Dacon 2021.11.23

train_test_split() - (3)

이번시간에는 train_test_split() 메소드의 test_size 파라미터와 shuffle 파라미터 에 대해 알아보겠습니다. test_size: test data(validation data) 구성의 비율을 나타냅니다. train_size의 옵션과 반대 관계에 있는 옵션 값이며, 주로 test_size 파라미터를 지정 해줍니다. test_size = 0.2 로 지정 하면 전체 데이터 셋의 20%를 test(validation) 셋으로 지정하겠다는 의미입니다. default 값은 0.25 입니다. shuffle: 데이터를 split 하기 이전에 섞을지 말지 여부에 대해 지정해주는 파라미터 입니다. default = True 입니다. # 라이브러리 로딩 from sklearn.model_selecti..

IT/Dacon 2021.11.22

train_test_split() - (2)

train_test_split()을 이용한 train / validation(test) 분리 train_test_split 함수를 통해 단 1줄로 깔끔하게 분리할 수 있습니다. 패키지는 sklearn.model_selection에 있습니다. train_test_split 메소드는 총 4개의 값을 반환하고 2개의 값을 필수적으로 채워주어야 합니다. 반환 하는 값은 학습에 사용할 X,y 값, 검증에 사용할 X,y 값 이렇게 총 4개의 값을 반환하고, 입력값으로는 원본 데이터의 X,y을 채워주어야 합니다. # 라이브러리 로딩 from sklearn.model_selection import train_test_split x_train,x_valid, y_train, y_valid = train_test_spli..

IT/Dacon 2021.11.21

서브 쿼리(Sub Query)

서브 쿼리는 SELECT 문 안에 또 다른 SELECT 문이 있는 명령어입니다. 가장 많이 쓰이는 것은 FROM 절 서브쿼리 실습 코드 USE PRACTICE; /***************SELECT절 서브 쿼리***************/ /* SELECT 명령문 안에 SELECT 명령문 */ SELECT * ,(SELECT GENDER FROM CUSTOMER WHERE A.MEM_NO = MEM_NO) AS GENDER FROM SALES AS A; /* 확인 */ SELECT * FROM CUSTOMER WHERE MEM_NO = '1000970'; /* SELECT절 서브 쿼리 vs 테이블 결합(JOIN) 처리 속도 비교 */ SELECT A.* ,B.GENDER FROM SALES AS A ..

IT/[SQL] Basic 2021.11.20

train_test_split - (1)

모델링 과정에서 가장 먼저 알아볼 것은 바로 train_test_split() 메소드입니다. train_test_split() 메소드는 데이터 셋을 train_set과 test_set으로 손쉽게 분리할 수 있게 도와주는 메소드입니다. train / test 데이터 셋을 분리하는 이유 먼저, train/test를 분리하는 목적에 대해 정확히 이해해야 합니다. 용어를 정확히 하자면 train/test가 아니라 train/validation이 맞는 표현입니다. 머신러닝 모델에 train 데이터를 학습 시킨 후 test 데이터를 모델로 예측했을 경우 성능이 생각보다 낮게 나오는 경우가 발생합니다. 이러한 현상을 보통 Overfitting 되었다고 합니다. 이미지 출처 : educative.io 즉, 현재 모델이..

IT/Dacon 2021.11.20

TF-IDF(Term Frequency - Inverse Document Frequency) - (2)

이번 시간에는 TF-IDF를 이용하여 청와대 청원 데이터를 벡터화 시켜 보도록 하겠습니다. 실습 순서는 다음과 같습니다. train 데이터를 이용해 TF-IDF 학습(fit) 학습(fit) 된 TF-IDF를 이용해 train 데이터 변환(transform) train 데이터로 학습(fit) 된 TF-IDF를 이용해 test 데이터 변환(transform) 그럼 바로 실습을 진행해보도록 하겠습니다 #라이브러리 로딩 from sklearn.feature_extraction.text import TfidVectorizer #TF-IDF으로 train 데이터를 피처 벡터화 변환 수행 vect = TfidfVectorizer() vect = TfidfVectorizer() vext.fit(train['data']..

IT/Dacon 2021.11.19

TF-IDF(Term Frequency - Inverse Document Frequency) - (1)

이번시간에는 BOW의 TF-IDF(Term Frequency - Inverse Document Frequency)에 대해 알아 보겠습니다. 이전에 설명한 카운트 기반 벡터화는 숫자가 높을수록 중요한 단어로 인식합니다. 하지만, 단순히 단어의 빈도만 고려한다면 모든 문서에서 자주 쓰일 수 밖에 없는 단어들이 중요하다고 인식 될 수 있습니다. 이런 문제를 보완하기 위해 TF-IDF 벡터화를 사용합니다. TF-IDF는 개별 문서에서 자주 등장하는 단어에는 높은 가중치를, 모든 문서에서 자주 등장하는 단어에 대해서는 패널티를 주는 방식으로 값을 부여합니다. 예를 들어 총 5개의 문서가 있다고 가정하면, 딥러닝이라는 단어는 5개 문서에서 모두 등장하고, 머신러닝이라는 단어는 1번 문서에서만 빈번히 등장한다고 했을..

IT/Dacon 2021.11.18

테이블 결합(JOIN)

테이블 결합(JOIN) 관계는 1:1, 1:N, N:N 세가지 형태로, 테이블 간의 연결이 가능하다는 것을 의미합니다. 테이블 결합(JOIN)은 두 테이블 관계를 활용하여 테이블을 결합하는 명령어입니다. 테이블 결합을 통해 여러 테이블을 활용하여 분석이 가능합니다. ERM은 개체 관계 모델링이며, 관계형 데ㅣ터 베이스에 텡블을 모델링할 때 사용됩니다. 개체: 하나 이상의 속성으로 구성된 객체 관계: 속서들 간의 관계 ERD은 개체 간의 관계를 도표로 표현할 때 사용됩니다. INNER JOIN: 두 테이블의 공통 값이 매칭되는 데이터 결합 LEFT JOIN: 두 테이블의 공통 값이 매칭되는 데이터만 결합 + 왼쪽 테이블의 매칭되지 않는 데이터는 NULL RIGHT JOIN: 두 테이블의 공통 값이 매칭되는..

IT/[SQL] Basic 2021.11.18

데이터 조회(SELECT)

데이터 조회(SELECT) 데이터 조회는 데이터 조작어(DML)이며, 가장 많이 사용됩니다. 데이터 조회는 여러 절들과 함께 사용되어 분석에 필요한 데이터를 조회합니다. 실습 코드 USE PRACTICE; /***************FROM***************/ /* Customer 테이블 모든 열 조회 */ SELECT * FROM CUSTOMER; /***************WHERE***************/ /* 성별이 남성 조건으로 필터링 */ SELECT * FROM CUSTOMER WHERE GENDER = 'MAN'; /***************GROUP BY***************/ /* 지역별로 회원수 집계 */ SELECT ADDR ,COUNT(MEM_NO) AS 회..

IT/[SQL] Basic 2021.11.17

CountVectorizer - (2)

이번 시간에는 CountVectorizer를 이용하여 청와대 청원 데이터를 벡터화 시켜 보도록 하겠습니다. 실습 순서는 다음과 같습니다. train 데이터를 이용해 CountVectorizer 학습(fit) 학습(fit) 된 CountVectorizer를 이용해 train 데이터 변환(transform) train 데이터로 학습(fit) 된 CountVectorizer를 이용해 test 데이터 변환(transform) 그럼 바로 실습을 진행해보도록 하겠습니다 from sklearn.featrue_extraction.text import CounterVectorizer #Count Vectorization으로 train 데이터를 피처 벡터화 변환 수행 vect = CounterVector() vect.fi..

IT/Dacon 2021.11.16

CountVectorizer - (1)

이번시간에는 BOW의 카운트 기반 벡터화(CountVectorizer)에 대해 알아 보겠습니다. 카운트 기반 벡터화 Bag of Words를 설명하면서 텍스트 데이터를 숫자형 데이터로 변환하는 방법에 대해 알아보았습니다. 그와 마찬가지로, 단어에 값을 부여할 때 각 문장에서 해당 단어가 나타나는 횟수 즉, Count를 부여하는 경우를 카운트 벡터화라고 합니다. 카운트 벡터화에서는 값이 높을수록 중요한 단어로 인식됩니다. 카운트 기박 벡터화 실습 카운트 기반 벡터화는 사이킷런의 CountVectorizer 클래스를 활용하여 적용할 수 있습니다. 아래 코드 CountVectorzier를 활용하여 한 문장을 BOW로 만드는 코드입니다. from sklearn.feature_extraction.text impo..

IT/Dacon 2021.11.15
300x250
300x250