Legacy 21

[토이프로젝트1] 코로나19 캐글 데이터 간단 탐색 및 전처리 (1차)

데이터 출처 : https://www.kaggle.com/kimjihoo/coronavirusdataset#patient.csv Coronavirus-Dataset Official information of Coronavirus disease 2019 (COVID-19) in South Korea www.kaggle.com 코로나19의 확진자가 급증하고 있다. 사람들은 현관문을 걸어잠그고 두문불출하고 있으며(나 역시 마찬가지다) 마스크를 구입하기 위한 외출만이 잦은 상태다. 한국은 높은 진단률로 많은 확진자들을 발견했고 그만큼 많은 데이터들을 생산해내고 있다. 현 시국이 매우 개탄스러운 상황임은 맞지만 데이터 분석을 공부하는 사람들의 입장에선 리얼 데이터를 다뤄볼 수 있는 기회인 셈이기도 하다. 코로나 ..

타이타닉으로 그리드서치(GridSearch)

In [0]: import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns 타이타닉 데이터셋은 너무너무 유명한 데이터셋입니다. 머신러닝을 공부하는 사람이라면 아마 누구나 타이타닉 데이터로 시작했을 것 같아요. 저도 마찬가지이구요. 타이타닉 데이터에 대한 내용은 이미 알고 있으므로 이번 코드에선 다양한 시각화 과정, 모델 성능 향샹은 제외했으며, 그리드 서치를 구현하는 데에 집중했습니다. In [0]: df = pd.read_csv('./train.csv') print(df.shape) display(df.head()) (891, 12) PassengerId Survived Pclass Name Sex..

케라스로 mnist 인식하는 모델 만들기

케라스를 활용한 CNN으로 MNIST 인식하기¶ In [1]: from IPython.core.display import display, HTML display(HTML("")) In [3]: import numpy as np import matplotlib.pyplot as plt import tensorflow as tf from keras.datasets import mnist from keras.utils import np_utils from keras import layers from keras import models from keras.callbacks import ModelCheckpoint, EarlyStopping import warnings warnings.filterwarnings(..

깃허브 사용법(github 입문)

개발을 하다보면 깃허브는 결국 필수적으로 다룰 줄 알아야만 하는 필수 관문이 되어버립니다. 물론 저는 개발을 하지는 않지만, 데이터 분석이든 딥러닝이든 코드를 다루는 영역이라면 결국 '깃허브'라는 관문에 다다르게 되는 것 같습니다. 작년에 "나도 깃허브 좀 해볼까?"라는 가벼운 마음을 먹고 구글링을 하며 git bash도 깔고 따라하다가 연이러 뜨는 에러문구로 인해 "안해, 때려쳐"하고 내던진 적이 있습니다. 근데, 이젠 어쩔 수 없이 해야하네요. 팀프로젝트를 하게 되었는데 코드 공유를 깃허브로 하게 되어서 울며 겨자먹기로 다시 깃허브를 열었습니다. 오늘은 저같은 깃허브 입문자들을 위한 깃허브 사용법에 대해 설명해드리도록 하겠습니다. 순서대로만 따라하시면 됩니다. 1) 먼저 깃허브 계정을 만들고 로그인합..

Expected 2D array, got 1D array instead 에러 : flatten(), reshape(), ravel() 알아보기

에러 : Expected 2D array, got 1D array instead:array=[0.23 0.21 0.23 ... 0.7 0.86 0.75].Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample. 오늘 아무 생각없이 모델 피팅하다가 이런 에러문구가 떴다.머신러닝 모델에서 fit 메소드는 2차원 배열을 입력으로 기대한다. 그런데, 1D 배열을 인풋으로 피팅하였기 때문에 에러가 발생한 것이다.이럴 경우, 1차원을 2차원으로 변환해야한다. reshape메소드를 통해 배열의 형태를 바꿀 수 있다. 예를 ..

교차검증 (cross-validation)

scikit-learn의 train_test_split()함수를 사용하여 데이터를 훈련 세트와 테스트 세트로 한 번 나누는 것보다 더 성능이 좋은 평가방법은 교차검증."Cross Validation" 이다. K-겹 교차검증에서 K에는 5 or 10과 같은 특정 숫자가 들어가며 데이터를 비슷한 크기의 집합 'K개'로 나눈다. 이를 폴드(fold)라고 한다. (1) 단순 교차검증 cross_val_score k=5일 때, 즉 데이터를 5개의 부분 집합으로 분할한 후, 각 분할마다 하나의 폴드를 테스트용으로 사용하고 나머지 4개의 폴드는 훈련용으로 쓴다. 이 과정을 반복하여 각 분할마다 정확도를 측정한다. 사이킷런에서는 교차검증을 위해 cross_val-score 함수를 제공한다. 사이킷런의 iris 데이터로..

feature engineering 특성공학(원핫인코딩, get_dummies, RFE)

데이터의 종류에는 연속형 특성, 범주형 특성, 이산형 특성이 있다. 연속형 특성의 예로는 주가변동, 몸무게 변화 등이 있고, 범주형 특성의 예로는 성별, 인종, 혈액형 등이 있다. 범주형 특성 간은 연속된 값으로 나타나지는 않는다. 흑인과 동양인 사이에는 중간값이 없고 이 카테고리들 사이에는 순서가 없다. 특정 애플리케이션에 가장 적합한 데이터 표현을 찾는 것을 feature engineering이라고 한다. 타이타닉 데이터셋을 예로 들겠다. 1. 범주형 변수 (Categorical features)연속형 feature : age, 범주형 feature : Pclass, Name, Sex, Embarked (1) 원 핫 인코딩 (가변수) 가변수는 범주형 변수를 0 또는 1 값을 가지는 새로운 featur..

데이터 스케일링 (Data Scaling)

데이터 스케일링이란 데이터 전처리 과정의 하나입니다.데이터 스케일링을 해주는 이유는 데이터의 값이 너무 크거나 혹은 작은 경우에 모델 알고리즘 학습과정에서 0으로 수렴하거나 무한으로 발산해버릴 수 있기 때문입니다.따라서, scaling은 데이터 전처리 과정에서 굉장히 중요한 과정입니다.가볍게 살펴보도록 하겠습니다. 1. What is Scaler? (1) StandardScaler각 feature의 평균을 0, 분산을 1로 변경합니다. 모든 특성들이 같은 스케일을 갖게 됩니다. (2) RobustScaler모든 특성들이 같은 크기를 갖는다는 점에서 StandardScaler와 비슷하지만, 평균과 분산 대신 median과 quartile을 사용합니다. RobustScaler는 이상치에 영향을 받지 않습니다..