본문 바로가기

파이썬

[자연어처리] 패딩(Padding) : 길이 지정 방법 - maxlen (파이썬) 이전 글들에서 패딩을 하는 기본적인 방법과, 제로 패딩을 할 때 0을 뒤로 채우는 방법 등에 대해서 살펴보았는데요, 이번에는 패딩을 할 때, 길이를 지정하는 방법에 대해서 살펴보도록 하겠습니다. 먼저, 기본적으로 패딩을 하는 코드를 작성하고, 그 결과를 보겠습니다. import numpy as np from tensorflow.keras.preprocessing.text import Tokenizer sentences = [['place', 'tree'], ['tree', 'nice', 'green'], ['nice', 'sky', 'and', 'tree'], ['bird', 'tree']] tokenizer= Tokenizer() tokenizer.fit_on_texts(sentences) encode.. 더보기
[자연어처리] 패딩(Padding) : 0을 뒤에 채우는 방법 (파이썬) 지난 글에서는 파이썬에서 패딩을 구현하는 기본적인 방법에 대해서 알아보았는데요, pad_sequences() 함수를 이용하여 패딩을 구현했습니다. 아래 코드처럼 pad_sequenes()를 이용하여 코드를 입력하면 기본적인 패딩이 되는데요, import numpy as np from tensorflow.keras.preprocessing.text import Tokenizer sentences = [['place', 'tree'], ['tree', 'nice', 'green'], ['nice', 'sky', 'and', 'tree'], ['bird', 'tree']] tokenizer= Tokenizer() tokenizer.fit_on_texts(sentences) encoded = tokenizer... 더보기
[자연어처리] 파이썬 코드로 패딩(Padding) 구현하기 - pad_sequences 패딩(Padding)이란, 데이터에 특정한 값을 채워서 데이터의 크기를 일괄적으로 조정하는 것을 말하는데요, 이때 특정한 값이 0이라면 이를 제로 패딩이라고 합니다. 한편, 케라스에서 패딩을 하기 위한 함수 'pad_sequences()'를 제공하는데요, 정수 인코딩이 된 값을 입력하면 패딩된 값으로 반환해줍니다. 한번 코드를 보면서 살펴보도록 하겠습니다. 1. 정수 인코딩하기 정수 인코딩을 하는 방법은 이전 글에서 자세하게 살펴보았는데요, 이에 대해서는 이전 글을 참고하시고, 바로 코드를 작성해보겠습니다. import numpy as np from tensorflow.keras.preprocessing.text import Tokenizer sentences = [['place', 'tree'], ['.. 더보기
[자연어처리] 정수 인코딩 하기 - fit_on_texts() 단어에 정수를 부여하는 것을 정수 인코딩이라고 하는데요, 자주 사용되는 정수 인코딩 방법은 단어를 빈도수 순으로 정렬한 뒤, 빈도수가 높은 순서대로 차례대로 낮은 숫자부터 부여하는 방법입니다. 한편, 케라스에서 fit_on_texts() 라는 함수를 제공하는데요, 이 함수를 이용하면 문자열 데이터(코퍼스)를 빈도수 기준으로 단어 집합을 생성해 줍니다. 그리고나서 맵핑을 위해 texts_to_sequences() 함수를 사용하면 되는데요, 아래 코드를 보면서 살펴보도록 하겠습니다. 1. 필요한 라이브러리 설치 먼저 필요한 라이브러리를 설치해줍니다. import numpy as np from tensorflow.keras.preprocessing.text import Tokenizer 2. fit_on_te.. 더보기
[머신러닝] 파이썬으로 softmax(소프트맥스) 함수 구현하기 word_encoded = tokenizer.texts_to_sequences(sentences) print(word_encoded) softmax(소프트맥스) 함수란 인풋값을 넣으면, 그 값들을 모두 0과 1 사이의 값으로 정규화를 해주는 함수를 말하는데요, 아래와 같은 연산을 가집니다. 이러한 softmax 함수는 확률처럼 모든 아웃풋 값을 더했을 때 1이 총합이라는 특징을 갖는 함수입니다. 따라서 시그모이드 함수의 경우 인풋이 하나일 때 사용되지만, 소프트맥스는 인풋이 여러 개일 때도 사용할 수 있는 함수입니다. 따라서 softmax 함수는 멀티 클래스 분류모델을 만들고자 할 때 이용하는 것이 좋습니다. 한편, 파이썬에서 특정 라이브러리에선 소프트맥스를 구현하는 함수를 제공하는데요, 이를 사용하지 .. 더보기
[머신러닝] StandardScaler : 표준화 하기 (파이썬 코드) 표준화란 데이터의 평균을 0, 분산과 표준편차를 1로 만들어주는 것을 말하는데요, 표준화를 하는 이유는 다른 통계 데이터와 비교하는 데에 있어 용이하게 하기 위함입니다. 만약, 표준화를 하지 않으면 한 데이터셋과 다른 데이터셋의 평균과 분산, 표준편차는 제각각으로 서로 비교할 수 없습니다. 따라서 표준화를 통해 분포를 단순화시켜서 비교를 쉽게 할 수 있답니다. 한편, 사이킷런(Scikit-learn) 라이브러리에서 StandardScaler 함수를 제공하는데요, 아래 코드를 보면서 살펴보도록 하겠습니다. 먼저, StandardScaler 함수를 사용하여 표준화를 하는 코드는 다음과 같습니다. from sklearn.preprocessing import StandardScaler std_scaler = S.. 더보기
[머신러닝] MinMaxScaler : 0~1 스케일로 정규화 하기 (파이썬 코드) MinMaxScaler는 스케일을 조정하는 정규화 함수로, 모든 데이터가 0과 1 사이의 값을 갖도록 해주는 함수입니다. 따라서 최댓값은 1로, 최솟값은 0으로 데이터의 범위를 조정해줍니다. 한편, MinMaxScaler 함수는 파이썬에서 다음과 같이 입력하여 사용할 수 있습니다. from sklearn.preprocessing import MinMaxScaler minmax_scaler = MinMaxScaler() minmax_scaled = minmax_scaler.fit_transform(X_train) #x_train라는 데이터 입력 먼저 필요한 라이브러리인 MinMaxScaler를 import 해주고, 두 번째 줄 ~ 세 번째 줄 코드처럼 정규화를 하는 함수에 정규화를 할 데이터(X_train.. 더보기
[머신러닝] MSE, MAE 뜻 & 구현 코드 1. MSE(Mean Squared Error) MSE란 Mean Squared Error의 약자로, 말 그대로 예측 값과 실제 값의 차이에 대한 제곱을 평균한 값을 말합니다. MSE의 경우 오차가 작으면 성능이 좋을 수 있지만, 과대적합이 될 수도 있습니다. 한편, MSE는 오차에 대해서 예측한 값이 실제 값보다 큰지, 작은지를 알 수 없다는 특징을 갖고 있습니다. - MSE : 코드로 구현하기 사이킷런(Scikit-learn) 패키지에서는 MSE를 구하는 라이브러리를 제공하는데요, 만약 실제 값 'true_y'와 예측한 값 'pred_y'의 MSE 값을 구하고 싶다면 다음과 같이 코드를 작성하면 됩니다. from sklearn.metrics import mean_squared_error #필요한 라이.. 더보기
[머신러닝] 사이킷런(Scikit-learn) 데이터로 ElasticNet 회귀 모델 만들기 - ElasticNet() 이전에 사이킷런 라이브러리와 데이터를 이용하여 Ridge, Lasso 회귀 모델을 만드는 방법에 대해서 살펴보았는데요, 이번에 살펴볼 ElasticNet 회귀 모델 역시 같은 방법으로 코드를 입력하면 된답니다. 한번 아래 코드를 보면서 차근차근 살펴보도록 하겠습니다. 1. ElasticNet 모델이란? ElasticNet은 Ridge와 Lasso를 결합한 형태의 모델로, 가중치의 절대값의 합(L1)과 제곱의 합(L2)을 동시에 제약 조건으로 가지는 모델을 말합니다. 따라서 Ridge와 Lasso 보다 좋은 성능을 낼 수 있다는 장점을 가지는 모델입니다. 한편, 사이킷런에서 제공하는 ElasticNet 함수에서 L1과 L2의 비율을 지정할 수 있는데, 아래에서 살펴보도록 하겠습니다. 2. 학습에 사용할 데.. 더보기
[머신러닝] 선형 회귀 모델의 장점과 단점, 언제 사용하는게 좋을까? 선형 회귀 모델은 선형 함수로 예측을 수행하는 회귀용 선형 알고리즘으로, train, test dataset에 있는 결과값(y) 사이의 평균제곱오차를 최소화하는 파라미터 가중치(w)와 절편(b)을 찾는 알고리즘을 수행합니다. 한편, 회귀를 하기 위한 선형 모델은 특성이 하나일 때 직선이 되고, 두 개일 땐 평면이 되며, 더 많은 특성을 가진 높은 차원일 땐 초평면이 되는 회귀 모델의 특징을 갖습니다. 또한 회귀를 하기 위한 선형 모델을 다양한데요, train data로부터 가중치 값을 결정하는 방법과 모델의 복잡도를 제어하는 방법에 따라 다양해집니다. 1. 선형 회귀 모델의 장점과 단점은? 그렇다면 선형 회귀 모델의 장점과 단점은 무엇일까요? 먼저, 선형 모델의 장점은 학습 속도가 빠르고, 예측이 빠르다.. 더보기