본문 바로가기

방법

[머신러닝] 파이썬으로 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.. 더보기
[머신러닝] 사이킷런(Scikit-learn) 데이터로 ElasticNet 회귀 모델 만들기 - ElasticNet() 이전에 사이킷런 라이브러리와 데이터를 이용하여 Ridge, Lasso 회귀 모델을 만드는 방법에 대해서 살펴보았는데요, 이번에 살펴볼 ElasticNet 회귀 모델 역시 같은 방법으로 코드를 입력하면 된답니다. 한번 아래 코드를 보면서 차근차근 살펴보도록 하겠습니다. 1. ElasticNet 모델이란? ElasticNet은 Ridge와 Lasso를 결합한 형태의 모델로, 가중치의 절대값의 합(L1)과 제곱의 합(L2)을 동시에 제약 조건으로 가지는 모델을 말합니다. 따라서 Ridge와 Lasso 보다 좋은 성능을 낼 수 있다는 장점을 가지는 모델입니다. 한편, 사이킷런에서 제공하는 ElasticNet 함수에서 L1과 L2의 비율을 지정할 수 있는데, 아래에서 살펴보도록 하겠습니다. 2. 학습에 사용할 데.. 더보기
[머신러닝] 사이킷런(Scikit-learn) 데이터로 라쏘 회귀 모델 만들기 - Lasso() 지난 글에서는 사이킷런 라이브러리를 이용하여 릿지 회귀 모델을 만들어보았는데요, 이번에는 라쏘(Lasso) 회귀 모델을 만드는 방법에 대해서 살펴보겠습니다. 1. 라쏘 회귀 모델이란? 라쏘(Lasso)는 선형 회귀 모델 중 하나로, 릿지(Ridge) 회귀 모델을 보완하기 위해 사용됩니다. 라쏘 모델은 릿지와 같이 계수를 0에 가깝도록 만드는 L1 규제를 하며, 가중치의 절대값의 합을 최소화하는 계수를 추가하는 방식을 통해 학습을 합니다. 이러한 라쏘는 많은 특성 중 일부분만 분석할 때 쉽게 분석이 가능하다는 장점을 갖고 있습니다. 2. 학습할 데이터 불러오기 라쏘 회귀 모델을 만들기 앞서, 필요한 라이브러리를 설치해주어야 하며, 학습에 사용할 데이터를 불러와야 하는데요, 사이킷런에서 제공하는 보스턴 주택.. 더보기
[머신러닝] 사이킷런(Scikit-learn) 데이터로 릿지 회귀 모델 만들기 - Ridge() 이번 글에서는 사이킷런 라이브러리에서 제공하는 보스턴 주택 데이터(boston data)를 이용하여 릿지 회귀 모델을 만들어 보도록 하겠습니다. 1. 릿지(Ridge) 회귀 모델이란? 릿지 회귀 모델은 회귀를 하기 위한 선형 모델로, 가중치의 절댓값을 최소한으로 만드는 예측 함수를 사용합니다. 즉, 기울기를 작게 만들도록 제약을 거는데요, 과대적합이 되지 않도록 모델을 강제로 제약하는 '규제'를 하는 모델입니다. 2. 사이킷런 데이터 불러와 train data, test data로 나누기 릿지 회귀 모델에 사용할 데이터를 사이킷런 라이브러리에서 불러오고, train_test_split()함수를 이용하여 train data, test data로 나누어보도록 하겠습니다. import mglearn from .. 더보기
[머신러닝] 사이킷런(Scikit-learn) : 간단한 선형모델 만들기 & 가중치, 절편 구하기 사이킷런(Scikit-learn) 라이브러리를 이용하여 간단한 선형모델을 만들어 볼 수 있는데요, 아래 코드를 보면서 차근차근 살펴보도록 하겠습니다. 1. 필요한 라이브러리 설치 먼저, 선형모델을 만들기 위한 라이브러리와 데이터에 사용할 난수를 발생시킬 라이브러리를 설치해줍니다. import mglearn from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split 2. 학습시킬 sample data 만들기 그다음, 학습시킬 sample data를 만들어주어야 하는데요, 위에서 import 한 mglearn 라이브러리를 이용하여 sample data를 만들어주겠습니다. X, y = .. 더보기
[머신러닝] train_test_split : 비율 설정 방법 - test_size 이전 글에서는 train_test_split() 함수를 이용하여 데이터를 train data와 test data로 나눌 때, 무작위로 나눌지 순차적으로 나눌지 설정하는 방법에 대해 살펴보았는데요, 이번에는 train data와 test data로 나눌 때 비율을 지정해주는 방법에 대해서 살펴보도록 하겠습니다. - train_test_split : 비율 설정 방법 train_test_split() 함수를 사용하여 데이터를 train data와 test data로 나눌 때, 기본값은 75 : 25 비율로 나누어지게 됩니다. 하지만, 데이터가 많이 없다면 학습할 데이터를 늘려주어야 하며, 데이터가 매우 많다면 오버피팅 문제를 방지하기 위해 학습할 데이터를 조금 줄여주는 게 좋을 수 있습니다. 따라서 각 상황에.. 더보기
[웹크롤링] 자바 스크립트로 이루어진 페이지, json 형식으로 불러오는 방법은? 동적 페이지와 같이 자바스크립트로 이루어진 페이지를 json으로 불러온 뒤, 크롤링을 해야 경우가 있을 수 있는데요, 이러한 경우 어떻게 해야 할까요? 우선, 자바스크립트로 이루어진 페이지의 url을 찾아야 합니다. 이전 글에서 자바스크립트로 이루어진 페이지의 url을 찾는 방법에 대해 살펴보았는데요, 다시 간단하게 설명하자면, F12를 누른 뒤 [Network] 탭에서 "XHR", 또는 "JS" 버튼을 누르며 보이는 항목들을 클릭하면 됩니다. 그리고, 항목들을 미리보기(Preview) 하면서 해당되는 영역이 맞다면 "Headers" 에서 Request URL 부분을 복사하면 됩니다. 아래 이미지처럼 URL을 찾아서 복사하면 됩니다. 그리고나서, 아래와 같이 코드를 작성했다고 가정할 때, url = "자.. 더보기
[웹크롤링] 자바스크립트 페이지의 url 찾는 방법 자바스크립트로 이루어진 페이지 또는 영역을 크롤링하려면, 해당 페이지의 url을 알아야 하는데요, 자바스크립트 페이지의 url을 알아내는 방법은 F12를 누른 뒤 [Network] 탭에서 "XHR" 또는 "JS" 버튼을 누르며 보이는 항목들을 클릭해보면서 찾아야 합니다. 아래 페이지는 네이버 금융 페이지에서, [Network] 탭의 "XHR" 을 눌렀을 때 보이는 화면입니다. 아래 각 항목을 누르면 어느 영역을 나타내는 항목인지 가늠할 수 있는데요, 원하는 항목을 찾으면 오른쪽 "Headers"에서 "Request URL" 부분을 복사하면 됩니다. 한 URL 을 골라서 주소창에 입력해본 결과 아래와 같은 페이지를 확인할 수 있습니다. 따라서 이와 같이 해당 url을 찾으면 이제 이 url을 자신의 코드에.. 더보기
[웹크롤링] 자바스크립트 비활성 하는 방법 예를 들어, 구글에서 이미지를 크롤링할 때, html 말고도 자바스크립트로 이루어진 이미지가 있을 수 있는데요, 이러한 겨우 자바스크립트를 비활성 해서 이미지를 수집해야 합니다. 한편, 해당 페이지가 자바스크립트로 이루어졌는지 확인하는 경우에도 자바스크립트를 비활성하면 되는데요, 자바스크립트를 비활성하는 방법은 F12를 누른 뒤, [setting(톱니바퀴)] - [Preferences] - [Debugger] 에서 'Disable JavaScript' 를 체크하면 됩니다. 아래 이미지처럼 오른쪽 하단에 체크박스에 체크를 하면 됩니다. 그리고나서, F5를 눌러 페이지를 새로고침 했을 때, 해당 페이지가 나오지 않거나, 일부분이 안 보인다면 그 영역은 자바스크립트로 이루어졌다고 보면 됩니다. 저는 위 이미지.. 더보기