Home Project

Data Analyst's Home Project

[Legacy] Data/[Legacy] Machine Learning 7

타이타닉으로 그리드서치(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(..

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는 이상치에 영향을 받지 않습니다..