본문 바로가기

전체 글

(9)
Machine learning 기초 알고리즘 7 + 3가지 본 포스팅에 알고리즘 이해를 위해 필수적인 개념 설명은 했지만 추가적인 이해를 할 경우 도움이 되는 개념들을 밑의 접은글에 정리해 두었습니다~! 더보기 필요 개념! 1. 손실함수 : 모델의 예측값과 실제값의 오차가 얼마인지 측정하는 함수 모델은 이 손실함수의 값을 최소화하는 방향으로 데이터를 학습한다. ex) 평균 제곱 오차 (MSE), 평균 절대 오차(MAE), 로그 손실 (Log Loss) 2. 거리 측정 : 데이터 사이의 거리 (유사도)를 측정하는 기준 ex) Euclidean distance (L2), manhattan distance (L1) "minkowski distance를 기반으로 한 거리 측정법 2가지" cosine similarity, jaccard similarity, SMC, Co..
Machine Learning 개념 main topic: 머신러닝 유형 1. 지도 학습(Supervised Learning) 2. 비지도 학습(Unsupervised Learning) 3. 준지도 학습(semi supervised) 4. 강화 학습(Reinforcement Learning) 사실 이번 포스트에서 '파이썬으로 시작하는 캐글'이라는 책에서 진행한 모델링과정을 설명하려했으나, 캐글이라는 주어진 문제를 푸는 특수한 상황에서 앙상블, 보팅 등의 스킬을 다루는 것보다는, 기본적인 모델의 장단점, 어떤 기반으로 모델이 만들어졌는지를 공부하는 것이 현재로서는 더 중요하다고 판단하여 책에서의 모델링 과정은 블로그에 올리지 않기로 결정했다. (추후에 보스턴 문제에서 다뤄보도록 하자.) 우선 머신러닝의 종류에 대해 알아보자. 1. 지도 학습(..
Kaggle : Titanic (Modeling_data set split) main topic: 1. 데이터셋 분할 (train_test_split) 2. K-Fold 3. stratify 이번 챕터부터는 모델링이다. 준비된 데이터로 '사망' or '생존'을 예측하는 모델을 학습시켜야한다. 이를 지도학습이라고 한다. 학습관련된 이야기는 앞에서 다뤘으니 가볍게 리마인드하자면, 훈련데이터라는 정답이 있는 기출문제로 모델을 학습시키고 시험을 보게 하는 것이다. 따라서 기출문제가 좋을 수록, 모델이 좋을 수록, 공부방법이 좋을 수록 성적이 좋을 것이다. 지금까지 했던 데이터 전처리 및 특성 엔지니어링이 기출문제를 준비하는 과정이었다면, 이제는 기출문제로 모델을 학습할 차례이다. 여기서 모델을 학습시킬 때 중요한 개념이 있다.바로 데이터셋 분할인데, 이게 왜 필요할까?바로 성능 평가를 ..
Kaggle : Titanic (data preprocessing, feature engineering) 1. 데이터 프로파일링 2. 데이터 전처리 및 특성 엔지니어링 3. 모델링 저번 포스트를 끝으로 데이터 프로파일링을 마쳤다. 데이터 프로파일링 과정을 통해 각 특성마다 필요한 특성인지 아닌지에 대한 평가하고, FamilySize라는 새로운 특성을 만들었다. 이번 포스트에서는 특성 엔지니어링에 대해 다룬다. 특성 엔지니어링에서 요구되는 작업은 결측치 처리, 이상치 제거, 원핫인코딩, 타입 변환 등이 있다. 모델에 학습시킬 최종 데이터셋을 만드는 과정이라고 생각하면 된다. 데이터셋도 있고, 특성도 전에 선택하지 않았나? 왜 특성 엔지니어링을 또 진행하는가? 이를 설명하려면 데이터 유형에 따른 성질(categorical, numerical), 원핫인코딩에 대한 이해가 필요하다. 1. 데이터 유형에 따른 성질 ..
Kaggle : Titanic (data profiling _ Seaborn library) 2. seaborn 라이브러리 사용 이전 포스트(matplotlib)에 이어 이번에는 seaborn을 사용하여 막대그래프를 그린다. seaborn은 카테고리형 (값의 종류가 한정적)일 때 활용하기 좋다. ⓛ SibSp (동승자 수(형제, 자매, 배우자))와 Survived의 관계 import seaborn as sns import matplotlib.pyplot as plt sns.countplot(x='SibSp', hue='Survived', data=train) plt.legend(loc='upper right', title='survived') - seaborn 라이브러리를 sns라는 이름으로 import한다. - matplotlib.pyplot 라이브러리를 plt라는 이름으로 import한다. ..
Kaggle : Titanic (data profiling _ matplotlib library) 1. matplotlib의 hist함수 먼저 matplotlib의 hist함수이다. 구간을 설정할 수 있기 때문에 대상열의 고유값의 종류가 많거나 연속형 타입일 경우 자주 사용한다. ① Age(나이)와 Survived의 관계 첫번째로 profiling할 특성은 Age(나이)이다. import matplotlib.pyplot as plt %matplotlib inline plt.hist(train.loc[train['Survived']==0, 'Age'].dropna(), # train set에서 생존=0인 행에서 'Age'열값만 가져온 데이터 프레임, 결측치있는 행은 제거, bins=30, alpha=0.5, label='0') # 히스토그램 설정(bin=구간의 개수, alpha=투명도, label=범례..
Kaggle : Titanic (feature profiling) 데이터 분석은 대략적으로 3단계를 거친다. 1. 데이터 프로파일링 2. 특성 엔지니어링 3. 모델링 (캐글의 경우 문제상황과 데이터가 주어지므로 문제정의 단계와 데이터 준비 단계는 생략했다.) 이번 포스트부터 첫번째 단계인 데이터 프로파일링에 대해 살펴보자. 데이터를 프로파일링한다는 것은 데이터를 살펴본다는 뜻이다. 요리를 하기 위한 식재료를 찾는 작업이라고 보면 될 것 같다. 재료만 좋으면 반이라도 간다는 말이 있다. 아무리 요리사가 요리실력이 떨어진다고 한들 그 재료가 좋다면 어떻게든 맛은 어느정도 보장된다는 말이다. 허나 반대로 요리사가 최상급의 요리 실력을 가지고 있다고 한들 물러터진 재료를 사용한다면 그 요리는 실패작이 될 수 밖에 없다. 데이터 분석에서 이를 비유하자면 이와 같다. 요리실력 =..
Kaggle : Titanic (outline) 맨 처음 교수님께서 내주셨던 과제이다. 이거에 더해 sql책도 과제로 내주셨지만 이는 다음에 차차... 이 책을 공부한 목적: 캐글 대회가 어떻게 진행되는지, 전체적인 과정을 파악함과 동시에 고전 문제인 titanic 문제를 책을 따라 풀어보면서 순서 익히기 1. 데이터셋 캐글의 데이터셋은 3가지로 나뉘어져있다. test.csv train.csv ~~~_submission.csv ~~~submission.csv는 채출해야하는 양식이다. 모범답안?? 같은 느낌이다. 학교 수업에서 과제 내주실 때 이렇게 제출하면 됩니다~ 하는 것처럼 ㅎㅎ test.csv는 목표값이 비워져있는 데이터셋이다. 이 비워진 목표값을 예측해서 채운후 제출하면 캐글에서 점수가 나오고 이 점수로 경쟁하는 구조이다. train.csv는 ..