본문 바로가기

만들기

[에어] Transformer 모델로 오피스 챗봇 만들기 (파이썬/Colab) 에어 프로젝트 #3 Transformer 모델로 오피스 챗봇 만들기 요즘 여러 회사에서 인공지능 비서의 도입이 증가하고 있는데, 인공지능 비서는 주로 챗봇의 형태로 기본적인 대화부터 하루 일과, 해야 할 업무, 스케줄 등을 알려주곤 한다. 또는 특정 업무에 특화되어 단순 반복적인 업무를 대신하는 인공지능 비서가 있는데, 이러한 인공지능 비서는 사용자의 업무 효율을 높이곤 한다. 이번 에어 프로젝트에서는 트랜스포머(Transformer) 모델을 이용하여 간단한 대화가 가능한 인공지능 비서 챗봇을 만들어 보고자 한다. 그동안 지난 에어 프로젝트들에서 질문 텍스트가 어떠한 유형인지 구분하는 챗봇 모델을 만들었다면, 이번 에어 프로젝트에서는 회사생활과 관련된 질의에 대해 적절한 답변을 하는 챗봇 모델을 만들어 .. 더보기
[머신러닝] 파이썬으로 softmax(소프트맥스) 함수 구현하기 word_encoded = tokenizer.texts_to_sequences(sentences) print(word_encoded) softmax(소프트맥스) 함수란 인풋값을 넣으면, 그 값들을 모두 0과 1 사이의 값으로 정규화를 해주는 함수를 말하는데요, 아래와 같은 연산을 가집니다. 이러한 softmax 함수는 확률처럼 모든 아웃풋 값을 더했을 때 1이 총합이라는 특징을 갖는 함수입니다. 따라서 시그모이드 함수의 경우 인풋이 하나일 때 사용되지만, 소프트맥스는 인풋이 여러 개일 때도 사용할 수 있는 함수입니다. 따라서 softmax 함수는 멀티 클래스 분류모델을 만들고자 할 때 이용하는 것이 좋습니다. 한편, 파이썬에서 특정 라이브러리에선 소프트맥스를 구현하는 함수를 제공하는데요, 이를 사용하지 .. 더보기
[머신러닝] 사이킷런(Scikit-learn) 데이터로 ElasticNet 회귀 모델 만들기 - ElasticNet() 이전에 사이킷런 라이브러리와 데이터를 이용하여 Ridge, Lasso 회귀 모델을 만드는 방법에 대해서 살펴보았는데요, 이번에 살펴볼 ElasticNet 회귀 모델 역시 같은 방법으로 코드를 입력하면 된답니다. 한번 아래 코드를 보면서 차근차근 살펴보도록 하겠습니다. 1. ElasticNet 모델이란? ElasticNet은 Ridge와 Lasso를 결합한 형태의 모델로, 가중치의 절대값의 합(L1)과 제곱의 합(L2)을 동시에 제약 조건으로 가지는 모델을 말합니다. 따라서 Ridge와 Lasso 보다 좋은 성능을 낼 수 있다는 장점을 가지는 모델입니다. 한편, 사이킷런에서 제공하는 ElasticNet 함수에서 L1과 L2의 비율을 지정할 수 있는데, 아래에서 살펴보도록 하겠습니다. 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 = .. 더보기
[데이터 분석] 빈 데이터 프레임(dataframe) 만드는 방법 pandas 라이브러리로 데이터프레임을 만들 수 있는데요, 기존의 데이터를 이용하여 데이터프레임으로 나타내는 방법과, 처음부터 빈 데이터프레임을 만들어서 데이터를 추가하는 방식으로 만들 수 있습니다. 이번 글에서는 빈 데이터프레임을 만드는 방법에 대해서 살펴보도록 하겠습니다. 1. 빈 데이터프레임 만들기 데이터 프레임을 만드는 방법은 간단한데요, pd.DataFrame() 함수 안에 인덱스 설정과 칼럼의 이름을 지정해주면 됩니다. 예를 들어, 10개의 행과 'A', 'B', 'C' 라는 칼럼을 가진 데이터프레임 'df' 를 만들어보도록 하겠습니다. import pandas as pd df = pd.DataFrame(index=range(0,10),columns=['A','B','C']) 위와 같이 ind.. 더보기
[데이터분석] 데이터 프레임 - 새로운 행 추가하기 - loc[ ] 데이터 프레임으로 데이터 분석을 할 때, 필요에 의해서 새로운 행을 추가해야 할 수 있는데요, 이때 iloc 또는 loc 함수를 사용하여 새로운 행을 추가할 수 있습니다. 먼저, 다음과 같은 데이터프레임이 있다고 가정해보겠습니다. tempitemcountpricerating 0hotcoffee130004.5 1icejuice540003.0 2iceade250004.0 3hotmilk130002.5 4hottea340003.0 5icewater210004.5 위 데이터프레임에서 새로운 행을 추가하고 싶다면, loc[ ] 함수를 사용하면 되는데요, df.loc['인덱스번호 또는 이름'] = [ 데이터 리스트 ] 와 같이 코드를 입력하면 됩니다. 따라서 만약 맨 마지막에 ['ice', 'coke', 3, 20.. 더보기
[파이썬] 인수 없이 불러오는 함수 만들기 파이썬에서 함수를 만들 때, 대부분의 함수 모두 인수를 받도록 만드는데요, 인수가 필요 없고 그냥 불러오면 실행하는 함수를 만들 수도 있습니다. 아래 코드를 한 번 보도록 하겠습니다. def avg(list1) : avg_num = sum(list1)/len(list1) return avg_num list1 = [1, 2, 3, 4, 5] avg(list1) 위 코드는 평균을 구하는 함수로, 리스트형 데이터를 인수로 받습니다. 따라서 이 함수는 인수를 무조건 입력받아야 실행이 됩니다. 한편, 인수가 필요없는 함수는 다음과 같이 만들 수 있습니다. def new_function() : print("안녕하세요!") new_function() 안녕하세요! 인수가 필요없는 함수 'new_function'을 위와.. 더보기
[파이썬] 평균 구하는 함수 avg() 만들기 파이썬에는 전체 합을 구해주는 함수 'sum()'이 있지만, 평균을 구하는 함수는 없습니다. avg()라는 함수가 있을 것 같지만 파이썬에서는 제공하지 않습니다. 따라서 데이터 분석을 할 때 평균을 구해야 하는 상황이 많다면 일일이 계산을 다 해주어야 하는데요, 함수로 만든다면 좀 더 효율적으로 코딩을 할 수 있답니다. - 평균 구하는 함수 만들기 먼저, 평균을 구하는 방법은 '전체합/데이터 개수'인데요, 전체합은 sum() 함수를 이용하고, 데이터의 개수는 len() 함수를 이용하도록 하겠습니다. def avg(list1) : avg_num = sum(list1)/len(list1) return avg_num 위와 같이 리스트를 인수로 받는 avg() 함수를 만들었는데요, 평균을 잘 구하는지 코드를 실.. 더보기
[파이썬] jupyter notebook에서 폴더 생성하기 - mkdir, makedirs 쥬피터 노트북에서 파일을 저장할 때, 폴더를 새로 생성하고 저장해야될 때가 있는데요, 폴더를 만들어주는 함수가 바로 OS 라이브러리의 mkdir(), makedirs() 함수입니다. 각 함수의 사용방법과 차이는 아래 코드를 보면서 살펴보도록 하겠습니다. 1. mkdir() mkdir() 함수는 폴더를 생성해주는 함수로, os.mkdir("경로+새폴더명") 의 형식으로 입력을 해주면 되는데요, 예를 들어 현재 c드라이브에 'test1'이라는 폴더가 있는데, 여기에 'test2' 라는 폴더를 생성하고 싶을 때 다음과 같이 입력하면 됩니다. import os os.mkdir("c:\\test1\\test2") 위와 같이 입력하고 실행하면, test1 폴더에 test2 폴더가 생성되었음을 확인할 수 있습니다. .. 더보기