본문 바로가기

전체 글

(74)
[이것이 코딩 테스트다] 그리디 알고리즘 네이버 AI 부스트캠프를 위한 코딩테스트 준비를 본격적으로 시작해보려고합니다. 그동안 알고리즘에 대한 공부를 제대로 해본적이 없어서 '이것이 코딩테스트다'를 다 끝내는 것을 목표로 열심히 공부해보겠습니다. 1. 그리디 알고리즘 그리디 알고리즘이라고 불리는 이 알고리즘을 그대로 해석하면 '탐욕법'입니다. '탐욕적인 알고리즘'이라는 것인데 이말은 현재 상황에서 지금 당장 좋은 것만 고르는 방법입니다. 즉, 직관적으로 봤을 때 좋아보이는 것만 고르다보면 알고리즘 문제가 해결된다는 것이죠! 그리디 알고리즘은 그리디 알고리즘임을 알면 매우 쉽게 문제를 해결할 수 있지만 그리디 알고리즘임을 알기가 쉽지 않습니다. 그만큼 문제 유형이 매우 다양합니다. 그래도 문제에 '가장 큰 순서대로', '가장 작은 순서대로'와 같..
3.1 평가(정밀도/재현율) 머신러닝은 데이터의 가공/변환, 모델 학습/예측, 평가로 이루어집니다. 이번 시간부터는 평가에 대하여 집중적으로 배워보도록 하겠습니다. 우리는 앞서 평가 방법으로 정확도를 사용했습니다. 이번 장에서는 정확도 이외에 다른 평가방법에 대하여 한번 알아보도록 하겠습니다. 이는 '파이썬 머신러닝 완벽 가이드'를 정리한 내용입니다. 1. 정확도 평가 방법의 첫 번째로는 그동안 우리가 계속 다뤄왔던 정확도가 있습니다. 정확도는 예측과 결과가 동일한 데이터 건수 / 전체 예측 데이터 건수입니다. 지금까지 정확도로 평가를 진행했습니다. 하지만 정확도가 평가지표로 적절하지 않은 상황이 있습니다. 바로 데이터의 분포도가 불균형할 때입니다. 어떤 상황인지 아래 예시 코드를 통해 알아봅시다. from sklearn.datas..
2.4 사이킷런으로 수행하는 타이타닉 생존자 예측 이번 시간에는 그동안 배운 데이터 전처리, 교차검증, 학습 등의 방법을 모두 사용하여 캐글의 아주 대표적인 문제인 '타이타닉 생존자 예측'을 해보도록 하겠습니다. 자세한 이론적인 설명은 앞에서 다뤘으니 코드들 위주로 그동안 배운 이론들이 어떻게 적용되는지 간단간단하게 보고 넘어가도록 하겠습니다. 이는 '파이썬 머신러닝 완벽가이드'를 정리한 내용입니다. 먼저, 타이타닉 탑승자 데이터가 어떻게 생겼는지 살펴보도록 하겠습니다. import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns %matplotlib inline titanic_df = pd.read_csv('./titanic_train.csv') ..
2.3 데이터 전처리 이번에는 데이터 전처리에 대하여 정리해보도록 하겠습니다. 머신러닝은 데이터를 바탕으로 학습하고 예측합니다. 즉, 어떤 데이터를 가지고 학습하냐에 따라 해당 모델의 성능이 결정됩니다. 그만큼 데이터는 매우 중요합니다. 하지만 모든 데이터가 완전하지는 않습니다. 데이터에는 결손값(NaN)이 존재할 수 있습니다. 이러한 결손값은 처리되어야합니다. 또한 데이터 중에는 문자열이 존재할 수 있습니다. 하지만 문자열은 모델이 인식할 수 없기 때문에 이를 인코딩하여 숫자로 변환해야 합니다. 이번 시간에는 이러한 데이터 전처리를 어떻게 하는지에 대하여 배워보도록 하겠습니다. 이는 '파이썬 머신러닝 완벽 가이드'를 정리한 내용입니다. 1. 데이터 인코딩 데이터 인코딩은 문자열 피처를 숫자형으로 인코딩하는 것입니다. 문자열..
2.2 교차검증 이번 시간에는 교차검증에 대하여 다루어보도록 하겠습니다. 교차검증은 ML에서 굉장히 중요한 개념이고 실제로 모델을 학습할 때 매번 반복적으로 수행해야되는 것이기 때문에 최대한 이해하기 쉽게 자세히 정리해보도록 하겠습니다. 이는 '파이썬 머신러닝 완벽가이드'를 정리한 내용입니다. 1. 교차 검증의 필요성 교차검증은 매우 중요한 개념이라고 여러번 강조했습니다. 그럼 교차검증이 무엇이고 왜 그렇게 중요한 것인가 이야기해보도록 하겠습니다. 먼저 교차검증이란 학습데이터를 학습데이터 세트와 검증데이터 세트로 분리하여 다양한 학습과 평가를 반복적으로 실시하는 것을 말합니다. 그럼 왜 이런 교차검증을 사용하는 것일까요? 바로 과적합 때문입니다. 과적합이란 모델이 학습데이터에만 과도하게 학습되어 실제 다른 데이터를 예측..
2.1 첫 번째 머신러닝 만들어 보기 - 붓꽃 품종 예측하기 본격적으로 머신러닝에 대하여 공부를 시작해보기로 마음을 먹고 '파이썬 머신러닝 완벽 가이드'라는 책을 공부하기 시작했습니다. 1장은 넘파이와 판다스에 대한 설명을 담고 있기 때문에 생략하고 2장부터 본격적으로 정리를 해보도록 하겠습니다. 책에서 나오는 예제코드를 실습해보고 중요한 개념들에 대해서 간단히 정리해보도록 하겠습니다. 새로운 여정을 설레는 마음으로 시작해보겠습니다. 1. 첫 번째 머신러닝 만들어 보기 - 붓꽃 품종 예측하기 이번 장에서는 의사결정 트리를 이용하여 사이킷런에서 제공하는 아주 기본적인 데이터인 붓꽃 품종 데이터셋을 예측해보도록 하겠습니다. 의사결정 트리에 대한 자세한 알고리즘 설명은 추후에 자세히 설명해보도록 하고 오늘은 실습에 집중하여 설명하겠습니다. 본격적으로 학습을 진행하기 전..
Deep Residual Learning for image Recognition 1. Introduction CNN 모델의 발전은 image classification 문제를 해결하는데 매우 큰 영향을 영향을 미쳤다. CNN에 대한 다양한 Architecture들은 개발되었고, 여러 Architecture가 주목한 중요한 요소는 '깊이'였다. 16에서 30에 이르기까지 수많은 모델은 '깊이'를 깊게 함으로써 그 성능을 향상해왔다. 하지만, 깊이에 대한 중요한 의문점이 생겼다. 'Is learning better networks as easy as stacking more layers?' 이 질문에서 시사하는 중요한 문제는 바로 gradients vanishing/exploding 문제였다. 하지만 이러한 문제는 nomalized initialization, intermediate n..
Lab-8 CNN 드디어 coputervision의 꽃 CNN을 학습할 시간입니다. CNN을 이해하기 위해 지금까지 학습했다고 생각하셔도 됩니다. 처음엔 어렵게 느껴질 수 있겠지만 저도 공부하면서 최대한 자세히 정리해보도록 하겠습니다!! 마찬가지로 위키 독스와 모모딥 시즌1을 참고하여 정리해보도록 하겠습니다. 학습 목표 CNN에 대해 알아본다. 핵심 키워드 합성곱(Convolution) 패딩(Padding) 풀링(Pooling) 1. 합성곱 신경망(Convolution and Pooling) CNN은 합성곱층(Convolution layers)과 풀링층(Pooling layers)으로 이루어진 신경망을 말합니다. 아래 사진을 보면 CONV는 합성곱 연산을, POOL은 풀링 연산을 의미합니다. 즉, 합성곱 연산관 풀링 연산..

728x90
반응형