AI 개발
-
NLTK는 Natural Language ToolKit의 약자로 자연어 처리 및 분석, 텍스트마이닝을 위한 파이썬 패키지 입니다. NLTK는 토큰생성, 형태소 분석, 품사태깅 등의 다양한 기능을 제공하고 예제로 활용할 수 있는 말뭉치도 제공하고 있습니다. ● NLTK 설치 저는 아나콘다 환경에서 파이썬을 사용하고 있으므로 이미 루트 가상환경에 NLTK가 설치가 되어있었습니다. KoNLPy와 다르게 별도의 설정등을 해줄 필요가 없습니다.아나콘다 내에서 가상환경을 따로 만들어 설치를 해줄시엔 해당 가상환경 activate 후에 > conda install nltk] > conda update nltk 위 명령어를 입력하여 설치해주면 됩니다. 하지만 예제를 수행하면 여러 에러 메세지들을 볼 수 있습니다. 예를..
[NLTK] 자연어 처리2 - NLTK로 데이터 탐색NLTK는 Natural Language ToolKit의 약자로 자연어 처리 및 분석, 텍스트마이닝을 위한 파이썬 패키지 입니다. NLTK는 토큰생성, 형태소 분석, 품사태깅 등의 다양한 기능을 제공하고 예제로 활용할 수 있는 말뭉치도 제공하고 있습니다. ● NLTK 설치 저는 아나콘다 환경에서 파이썬을 사용하고 있으므로 이미 루트 가상환경에 NLTK가 설치가 되어있었습니다. KoNLPy와 다르게 별도의 설정등을 해줄 필요가 없습니다.아나콘다 내에서 가상환경을 따로 만들어 설치를 해줄시엔 해당 가상환경 activate 후에 > conda install nltk] > conda update nltk 위 명령어를 입력하여 설치해주면 됩니다. 하지만 예제를 수행하면 여러 에러 메세지들을 볼 수 있습니다. 예를..
2020.01.31 -
● KoNLPy란 KoNLPy는 한국어 정보처리를 위한 파이썬 패키지 입니다. 자연어처리(NLP)에서 형태소를 분리(형태소 단위 토크나이징)하는 데이터 전처리가 필요한데 이때 한국어 데이터 전처리를 할 때 많이 사용하는 패키지입니다. 텍스트를 형태소 단위로 분리하는 방법 중에는 1. 단어->품사 형태로 딕셔너리를 정의하고 이를 이용해 단어를 품사로 분리하는 방법. (딕셔너리가 동일해도 방법에 따라 형태소가 분리되는 결과가 다르다.) 2. 딕셔너리를 사용하지 않고 모델을 통해 학습시키는 방법. (어떤 품사인지까지 알 수 없고 문장에서 단어를 구별해내는 방법.) 이 있고 KoNLPy는 1번의 방법을 사용합니다. KoNLPy에는 총 5가지의 형태소 분석 방법을 제공하고 이는 Hannanum, Kkma, Kom..
[KoNLPy] 자연어 처리1 - KoNLPy로 데이터 전처리● KoNLPy란 KoNLPy는 한국어 정보처리를 위한 파이썬 패키지 입니다. 자연어처리(NLP)에서 형태소를 분리(형태소 단위 토크나이징)하는 데이터 전처리가 필요한데 이때 한국어 데이터 전처리를 할 때 많이 사용하는 패키지입니다. 텍스트를 형태소 단위로 분리하는 방법 중에는 1. 단어->품사 형태로 딕셔너리를 정의하고 이를 이용해 단어를 품사로 분리하는 방법. (딕셔너리가 동일해도 방법에 따라 형태소가 분리되는 결과가 다르다.) 2. 딕셔너리를 사용하지 않고 모델을 통해 학습시키는 방법. (어떤 품사인지까지 알 수 없고 문장에서 단어를 구별해내는 방법.) 이 있고 KoNLPy는 1번의 방법을 사용합니다. KoNLPy에는 총 5가지의 형태소 분석 방법을 제공하고 이는 Hannanum, Kkma, Kom..
2020.01.28 -
● Gradient Boost Gradient Boosting Algorithm (GBM)은 회귀분석 또는 분류 분석을 수행할 수 있는 예측모형이며 예측모형의 앙상블 방법론 중 부스팅 계열에 속하는 알고리즘입니다. Gradient Boosting Algorithm은 Tabular format 데이터 (엑셀형태와 같이 X-Y Grid로 되어있는 데이터)에 대한 예측에서 엄청난 성능을 보여주고, 머신러닝 알고리즘 중에서도 가장 예측 성능이 높다고 알려진 알고리즘입니다. 그렇기 때문에 Gradient Boosting Algorithm을 구현한 패키지들이 많습니다. LightGBM, CatBoost, XGBoost 같은 파이썬 패키지들이 모두 Gradient Boosting Algorithm을 구현한 패키지들입..
[캐글] 중고차 가격 예측 모델2_Gradient Boost, Random Forest● Gradient Boost Gradient Boosting Algorithm (GBM)은 회귀분석 또는 분류 분석을 수행할 수 있는 예측모형이며 예측모형의 앙상블 방법론 중 부스팅 계열에 속하는 알고리즘입니다. Gradient Boosting Algorithm은 Tabular format 데이터 (엑셀형태와 같이 X-Y Grid로 되어있는 데이터)에 대한 예측에서 엄청난 성능을 보여주고, 머신러닝 알고리즘 중에서도 가장 예측 성능이 높다고 알려진 알고리즘입니다. 그렇기 때문에 Gradient Boosting Algorithm을 구현한 패키지들이 많습니다. LightGBM, CatBoost, XGBoost 같은 파이썬 패키지들이 모두 Gradient Boosting Algorithm을 구현한 패키지들입..
2020.01.16 -
● Kaggle 캐글(Kaggle)은 머신러닝 대회로 유명한 플랫폼 입니다. 알고리즘 문제를 푸는 백준, 프로그래머스 사이트와 비슷한 개념입니다. 캐글에 있는 여러 데이터셋과 문제들로 데이터 전처리, 모델 설계, 하이퍼파라미터 선택과 튜닝에 대해 익힐 수 있습니다. 경쟁자가 제출한 코드를 볼 수도 있고 다른 경쟁자에 비해 내가 얼마나 잘 풀었는지 확인해 볼 수도 있습니다. 현재 활성화 되고 있는 도전 과제를 풀어 볼 수도 있고, 머신러닝 입문 문제로 유명한 타이타닉 생존자 예측문제, 보스턴 주택 가격문제 등에 대한 데이터셋을 다운 받을 수도 있고 잘 푼사람들의 코드를 보면서 머신러닝 문제의 개념을 익힐 수도 있습니다. 캐글 이용하는 방법 알아보기 캐글 바로가기 ● 중고차 가격 예측 문제 풀어보기 실전 문..
[캐글] 중고차 가격 예측 모델1_선형회귀 Linear Regression()● Kaggle 캐글(Kaggle)은 머신러닝 대회로 유명한 플랫폼 입니다. 알고리즘 문제를 푸는 백준, 프로그래머스 사이트와 비슷한 개념입니다. 캐글에 있는 여러 데이터셋과 문제들로 데이터 전처리, 모델 설계, 하이퍼파라미터 선택과 튜닝에 대해 익힐 수 있습니다. 경쟁자가 제출한 코드를 볼 수도 있고 다른 경쟁자에 비해 내가 얼마나 잘 풀었는지 확인해 볼 수도 있습니다. 현재 활성화 되고 있는 도전 과제를 풀어 볼 수도 있고, 머신러닝 입문 문제로 유명한 타이타닉 생존자 예측문제, 보스턴 주택 가격문제 등에 대한 데이터셋을 다운 받을 수도 있고 잘 푼사람들의 코드를 보면서 머신러닝 문제의 개념을 익힐 수도 있습니다. 캐글 이용하는 방법 알아보기 캐글 바로가기 ● 중고차 가격 예측 문제 풀어보기 실전 문..
2020.01.16 -
새로운 언어나 프레임워크를 배울 때, 예전에는 두꺼운 책을 하나 사서 1장부터 공부 -> 예제 따라하기 이런식으로 공부를 했었는데요. 그렇게 되면 1장만 열심히 하고 뒤로 갈 수록 공부를 안하게 되더라구요..... 저만 그렇나요?그렇게 기초부터 하나씩 익혀가면 물론 좋겠지만, 사람의 기억력이라는 것이 원래 복습을 안하면 공부한 것에 10%만 남는다고 하잖아요? 그래서 프로그래밍을 아예 모르는 사람이 아니라면 새로운 언어나 프레임워크를 배울 때, 거기에 관련된 개념들의 대표 예제를 먼저 따라해본 후 개념을 대충 익히는 식으로 공부하는 것이 훨씬 효율적이라고 생각합니다. 나중에 실전 프로그래밍을 할 때 비슷한 개념이 나오면 다시 찾아볼때 복습한다고 생각하면서 공부하면 처음부터 두꺼운 책을 공부하는 것과 별로..
[Keras] 튜토리얼14(마지막) - 모델 SAVE, LOAD, Tensorboard 이용하기새로운 언어나 프레임워크를 배울 때, 예전에는 두꺼운 책을 하나 사서 1장부터 공부 -> 예제 따라하기 이런식으로 공부를 했었는데요. 그렇게 되면 1장만 열심히 하고 뒤로 갈 수록 공부를 안하게 되더라구요..... 저만 그렇나요?그렇게 기초부터 하나씩 익혀가면 물론 좋겠지만, 사람의 기억력이라는 것이 원래 복습을 안하면 공부한 것에 10%만 남는다고 하잖아요? 그래서 프로그래밍을 아예 모르는 사람이 아니라면 새로운 언어나 프레임워크를 배울 때, 거기에 관련된 개념들의 대표 예제를 먼저 따라해본 후 개념을 대충 익히는 식으로 공부하는 것이 훨씬 효율적이라고 생각합니다. 나중에 실전 프로그래밍을 할 때 비슷한 개념이 나오면 다시 찾아볼때 복습한다고 생각하면서 공부하면 처음부터 두꺼운 책을 공부하는 것과 별로..
2020.01.12 -
● CNN(Convolution Neural Network)란? 합성곱 신경망(Convolutional Neural Network)은 딥러닝의 가장 대표적인 방법입니다.주로 이미지 인식에 많이 사용된다고 합니다. 기본적인 아이디어는 이미지를 작은 특징에서 복잡한 특징으로 추상화하는 것입니다. 우리가 지금까지 살펴본 일반적인 인공신경망 모델(Fully connected layer로 이루어진)은 1차원 형태의 입력형태로 한정 됩니다. 하지만 컬러 사진의 데이터는 3차원 데이터 형태로 들어오게 됩니다. 3차원으로 된 사진데이터를 FC(Fully Connected) 신경망으로 학습시키려면 2, 3차원의 데이터를 1차원으로 평면화 시켜야 합니다. 이렇게 될 경우 이미지 공간 정보 유실로 인한 정보 부족으로 인공 ..
[Keras] 튜토리얼13 - CNN(Convolution Neural Network)● CNN(Convolution Neural Network)란? 합성곱 신경망(Convolutional Neural Network)은 딥러닝의 가장 대표적인 방법입니다.주로 이미지 인식에 많이 사용된다고 합니다. 기본적인 아이디어는 이미지를 작은 특징에서 복잡한 특징으로 추상화하는 것입니다. 우리가 지금까지 살펴본 일반적인 인공신경망 모델(Fully connected layer로 이루어진)은 1차원 형태의 입력형태로 한정 됩니다. 하지만 컬러 사진의 데이터는 3차원 데이터 형태로 들어오게 됩니다. 3차원으로 된 사진데이터를 FC(Fully Connected) 신경망으로 학습시키려면 2, 3차원의 데이터를 1차원으로 평면화 시켜야 합니다. 이렇게 될 경우 이미지 공간 정보 유실로 인한 정보 부족으로 인공 ..
2020.01.08 -
● 스케일링(Scaling)이란?스케일링이란 데이터 전처리 과정의 하나 입니다. 데이터의 값이 너무 크거나 혹은 작은 경우에 모델 알고리즘 학습과정에서 0으로 수렴하거나 무한으로 발산해 버릴 수 있는 것을 방지하거나, 예측 값이 범위를 벗어나는 입력데이터의 값에 더 큰 영향을 받는 것을 방지합니다.스케일링을 통해 다타원의 값들을 비교 분석하기 쉽게 만들어 줍니다.자료의 overflow나 underflow를 방지하고 최적화 과정에서 안정성 및 수렴 속도를 향상시킵니다. 예를 들어 키와 몸무게가 입력 데이터로 주어지고 라벨데이터는 100m달리기에 걸리는 시간을 예측한다고 하면, 키와 몸무게는 서로 범위, Unit이 다르기 때문에 더 큰 값을 가진 키 값이 결과 값에 더 큰 영향을 미치는 것을 방지하기 위해 ..
[Keras] 튜토리얼12 - Scikit-learn의 Scaler● 스케일링(Scaling)이란?스케일링이란 데이터 전처리 과정의 하나 입니다. 데이터의 값이 너무 크거나 혹은 작은 경우에 모델 알고리즘 학습과정에서 0으로 수렴하거나 무한으로 발산해 버릴 수 있는 것을 방지하거나, 예측 값이 범위를 벗어나는 입력데이터의 값에 더 큰 영향을 받는 것을 방지합니다.스케일링을 통해 다타원의 값들을 비교 분석하기 쉽게 만들어 줍니다.자료의 overflow나 underflow를 방지하고 최적화 과정에서 안정성 및 수렴 속도를 향상시킵니다. 예를 들어 키와 몸무게가 입력 데이터로 주어지고 라벨데이터는 100m달리기에 걸리는 시간을 예측한다고 하면, 키와 몸무게는 서로 범위, Unit이 다르기 때문에 더 큰 값을 가진 키 값이 결과 값에 더 큰 영향을 미치는 것을 방지하기 위해 ..
2020.01.05 -
● RNN(Recurrent Neural Network)란? RNN(Recurrent Neural Network)은 일반적인 인공 신경망인 FFNets(Feed-Forward Neural Networks)와 이름에서 부터 어떤 점이 다른지 드러납니다. FFNets는 데이터를 입력하면 연산이 입력층에서 은닉층을 거쳐 출력층까지 차근차근 진행되고 이 과정에서 입력 데이터는 모든 노드를 딱 한번씩 지나가게 됩니다. 그러나 RNN은 은닉층의 결과가 다시 같은 은닉층의 입력으로 들어가도록 연결되어 있습니다. 즉, FFNets는 시간 순서를 무시하고 현재 주어진 데이터만 가지고 판단합니다. 하지만 RNN은 지금 들어온 입력데이터와 과거에 입력 받았던 데이터를 동시에 고려합니다. ○ RNN의 사용RN..
[Keras] 튜토리얼 11 - LSTM(feat. RNN) 구현하기● RNN(Recurrent Neural Network)란? RNN(Recurrent Neural Network)은 일반적인 인공 신경망인 FFNets(Feed-Forward Neural Networks)와 이름에서 부터 어떤 점이 다른지 드러납니다. FFNets는 데이터를 입력하면 연산이 입력층에서 은닉층을 거쳐 출력층까지 차근차근 진행되고 이 과정에서 입력 데이터는 모든 노드를 딱 한번씩 지나가게 됩니다. 그러나 RNN은 은닉층의 결과가 다시 같은 은닉층의 입력으로 들어가도록 연결되어 있습니다. 즉, FFNets는 시간 순서를 무시하고 현재 주어진 데이터만 가지고 판단합니다. 하지만 RNN은 지금 들어온 입력데이터와 과거에 입력 받았던 데이터를 동시에 고려합니다. ○ RNN의 사용RN..
2020.01.04