반응형

분류 전체보기 173

[빅데이터분석기사] 순환신경망(Recurrent Neural Network)

핵심요약 순환신경망(Recurrent Neural Network)은 시간 순서가 있는 데이터를 잘 예측하도록 설계된 인공신경망 모델들 중 하나이다. 과거의 신호를 기억할 수 있는 장치(Hidden State)를 두어 입력신호를 순환, 반복하는 순환적 구조를 갖고 있어서 시간적 순서 특성을 추출하는데 용이하다. 특징 일반적인 인공신경망이 은닉층을 통해 한꺼번에 가중치 연산이 이루어 지는 것과 비교해서 순환신경망은 이전 데이터의 가중치 연산이 다음 데이터에 일정 부분 영향을 줄 수 있도록 구성되어 있다. 이러한 구조는 시간 순서의 정보가 중요한 데이터에서 이전 데이터를 보고 다음 데이터를 예측하는데 도움을 준다. 순차 데이터(Sequential Data) 순서나 시간이 전체 데이터에서 의미가 있으며 그 순서..

[빅데이터분석기사] 합성곱신경망(Convolutional Neural Network)

핵심요약 합성곱신경망(CNN)은 인공신경망 모델의 하나로 패턴을 찾아 이미지를 분석하는데 특화된 알고리즘이다. 주요 구성은 크게 합성곱(Convolution) 연산과 풀링(Pooling) 연산으로 나눌 수 있다. 합성곱 원본 이미지와 영상의 패턴을 추출할 수 있는 필터(Filter)를 이용하여 특징을 추출하는 과정이다. 필터는 원본 이미지를 움직이면서(Stribe) 이미지의 특징을 뽑아내는 결과물(Feature Map)을 만든다. 결과물(Feature Map)은 원본 이미지릐 인접한 픽셀 간 연관성 있는 패턴 정보를 잃지 않고 반영할 수 있다. 풀링(Pooling) 합성곱 연산을 통해 나온 결과물에서 대푯값들만 뽑아내는 과정이다. 이미지 패턴 정보를 단순화, 추상화하는 작업으로 생각할 수 있다. 풀링의 ..

[빅데이터분석기사] 모델훈련과 튜닝

1. 데이터 불러오기 및 데이터셋 분할 # 분석 데이터 불러오기 import warning warning.filterwarnings("ignore") import pandas as pd data = pd.read_csv('Fvote.csv', encoding='utf-8') # 특성치와 레이블 데이터셋 구분 X = data[data.columns[1:13]] y = data[['vote']] # 훈련 데이터, 테스트 데이터 분할 from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, statify=y, random_state=42) 2. Grid Search # ..

[빅데이터분석기사] 데이터 스케일링

1. 데이터 불러오기 및 확인 # 분석데이터(선거행동) 불러와서 데이터 확인 import pandas as pd data = pd.read_csv("Fvote.csv', encoding='utf-8') data.head() data.describe() data.hist(figsize=(20, 10)) 2. 특성(X)과 레이블(y) 나누기 # 특성 변수와 레이블 변수 나누기 X = data.loc[:, 'gender_female':'score_intention'] y = data[['vote']] # 특성변수와 레이블 변수 행열확인 print(X.shape) print(y.shape) (211, 13) (211, 1) 3. train-test 데이터셋 나누기 # 학습용 데이터(train)와 테스트용 데이터..

[빅데이터분석기사] 데이터셋 분할과 모델검증

1. 특성치(X), 레이블(y) 나누기 # 데이터셋 불러오기 및 확인 import warnings warning.filterwarnings("ignore") import pandas as pd data = pd.read_csv('Fvote.csv', encoding='utf-8') data.head() # 특성변수 데이터셋 나누기 # 방법1 : 특성이름으로 데이터셋 나누기 X = data[['gender_female', gender_male', 'region_Chungcheong', 'region_Honam' 'region_Others', region_Sudo', 'region_Youngnam', 'edu', 'income', 'age', 'score_gov', 'score_pregress', 'scor..

[빅데이터분석기사] 범주변수의 변환(one-hot-encoding)

1. 데이터범주-연속-레이블로 나누기 # vote(유권자 선거행동) 데이터셋 불러오기 및 확인 import pandas as pd data = pd.read_csv('vote.csv', encoding='utf-8') data.head() # 범주변수와 기타 변수를 각각 X1과 XY로 나누기 X1 = data[['gender', 'region']] XY = data[['edu', 'income', 'age', 'score_gov', 'score_progress', 'score_intention', 'vote', 'parties']] 2. 범주형 변수의 One-hot-encoding 변환 # 성별(gender)과 출신지역(region)의 숫자를 문자로 변환 X1['gender'] = X1['gender']..

[빅데이터분석기사] 심층신경망(Deep Neural Network)

핵심요약 심층신경망(Deep Neural Network)은 인공신경망(Aritificial Neural Network)과 동일한 구조와 동작 방식을 갖고 있다. 심층신경망은 단지 인공신경망에서 은닉층(Hidden Layer)의 깊이가 깊어진 형태를 말한다. 신경망의 발전계기 인공신경망의 기본 아이디어가 나온 것은 1950년대이고 이후에 발전을 거듭하지만 불과 2000년대 중반까지만 해도 사람들로 하여금 그다지 알려지고 활용되던 기술이 아니었다. 여기에는 몇 가지 이유가 있는데 하나는 당시에 GPU와 같은 수많은 가중치를 빠르게 계산할 수 있는 자원(Resource)이 충분치 않았고, 사람이 원하는 수준으로 성능을 올리기 위해서 필요했던 충분한 양의 데이터(Data)를 모으기에도 인프라가 부족했다. 또한 ..

[빅데이터분석기사] 인공신경망(Artificial Neural Network)

핵심요약 인공신경망(ANN)은 기계학습과 인지과학 분야에서 고안한 학습 알고리즘이다. 신경세포의 신호 전달체계를 모방한 인공뉴런(노드)이 학습을 통해 결합 세기를 변화시켜 문제를 해결하는 모델 전반을 가리킨다. 인공신경망의 시작, 퍼셉트론 퍼셉트론은 신경세포 뉴런들이 신호, 자극 등을 받아 어떠한 임계값(threshold)을 넘어서면 그 결고를 전달하는 신경세포의 신호 전달 과정을 착안하여 만들어졌다. 이를 수학적인 기호로 모델링 한 것이 퍼셉트론인데, 퍼셉트론은 각각의 가중치의 크기를 적절히 조절하여 입력 신호이 크기를 정한다. 입력 신호들의 합에 활성화 함수를 거쳐 나온 결괏값을 전달함으로써 원하는 결괏값을 얻는 방식으로 동작한다. 아래 그림은 단층 퍼셉트론으로 AND, OR, NAND와 같은 비교적..

[빅데이터분석기사] 군집분석(Clustering Analysis)

군집분석 분류 기준이 없는 상태에서 데이터 속성을 고려해 스스로 전체 데이터를 N개의 소그룹으로 묶어내는(Clustering) 분석법이다. 유사성이 높은 대상 데이터를 묶고, 서로 다른 그룹에 속한 데이터 개체 간의 이질성을 계산하는 과정을 거친다. 계층적 군집화(Hierarchical Clustering) 가장 유사한 개체를 묶어 나가는 과정을 반복하여 원하는 개수의 군집을 형성하는 방법이다. 계층적 군집을 형성하는 방법에는 작은 군집으로부터 출발하여 군집을 변합해 나가는 병합적 방법과 큰 군집으로부터 출발하여 군집을 분리해 나가는 분할적 방법이 있다. 왼쪽 그림은 병합적 방법으로 군집을 형성해 나가는 과정을 보여주고 있다. 계층적 군집의 결과는 오른쪽 그림과 같이 덴드로그램(dendrogram)의 형..

[빅데이터분석기사] 데이터탐색과 데이터정제 실습 (2)

4. 변수 변환 4-1. log 변환 import numpy as np data['log_salary'] = np.log(data['salary']) data['log_sales'] = np.log(data['sales']) data['log_roe'] = np.log(data['roe']) data.head() data.hist(bins=50, figsize=(20, 15)) data.corr() 4-2. 제곱근 변환 data['sqrt_salary'] = np.sqrt(data['salary']) data['sqrt_sales'] = np.sqrt(data['sales']) data['sqrt_roe'] = np.sqrt(data['roe']) data.head() data.hist(bins=50, ..

반응형